From 9fd1c058e67f20ca0942b9a764f6ddad1da80bb7 Mon Sep 17 00:00:00 2001 From: boukeversteegh Date: Thu, 4 Jun 2020 22:47:30 +0200 Subject: [PATCH] Create unit tests for importing --- betterproto/tests/test_get_ref_type.py | 94 ++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/betterproto/tests/test_get_ref_type.py b/betterproto/tests/test_get_ref_type.py index 9635356..25b48bc 100644 --- a/betterproto/tests/test_get_ref_type.py +++ b/betterproto/tests/test_get_ref_type.py @@ -80,3 +80,97 @@ def test_importing_google_wrappers_without_unwrapping( name = get_ref_type(package="", imports=set(), type_name=google_type, unwrap=False) assert name == expected_name + + +def test_import_child_package_from_package(): + imports = set() + name = get_ref_type( + package="package", imports=imports, type_name="package.child.Message" + ) + + assert imports == {"from . import child"} + assert name == "child.Message" + + +def test_import_child_package_from_root(): + imports = set() + name = get_ref_type(package="", imports=imports, type_name="child.Message") + + assert imports == {"from . import child"} + assert name == "child.Message" + + +def test_import_camel_cased(): + imports = set() + name = get_ref_type( + package="", imports=imports, type_name="child_package.example_message" + ) + + assert imports == {"from . import child_package"} + assert name == "child_package.ExampleMessage" + + +def test_import_nested_child_from_root(): + imports = set() + name = get_ref_type(package="", imports=imports, type_name="nested.child.Message") + + assert imports == {"from .nested import child as nested_child"} + assert name == "nested_child.Message" + + +def test_import_deeply_nested_child_from_root(): + imports = set() + name = get_ref_type( + package="", imports=imports, type_name="deeply.nested.child.Message" + ) + + assert imports == {"from .deeply.nested import child as deeply_nested_child"} + assert name == "deeply_nested_child.Message" + + +def test_import_parent_package_from_child(): + imports = set() + name = get_ref_type( + package="package.child", imports=imports, type_name="package.Message" + ) + + assert imports == {"from .. import Message"} + assert name == "Message" + + +def test_import_parent_package_from_deeply_nested_child(): + imports = set() + name = get_ref_type( + package="package.deeply.nested.child", + imports=imports, + type_name="package.deeply.nested.Message", + ) + + assert imports == {"from .. import Message"} + assert name == "Message" + + +def test_import_root_package_from_child(): + imports = set() + name = get_ref_type(package="package.child", imports=imports, type_name="Message") + + assert imports == {"from ... import Message"} + assert name == "Message" + + +def test_import_root_package_from_deeply_nested_child(): + imports = set() + name = get_ref_type( + package="package.deeply.nested.child", imports=imports, type_name="Message" + ) + + assert imports == {"from ..... import Message"} + assert name == "Message" + + +def test_import_root_sibling(): + imports = set() + name = get_ref_type(package="", imports=imports, type_name="Message") + + assert imports == set() + assert name == "Message"