From 384099ddde57df02cdd754f00379c4786a263628 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Sat, 16 Oct 2021 12:35:38 -0400 Subject: [PATCH] Migrate dependencies container provider tests --- tests/unit/providers/test_base_py2_py3.py | 124 ----------------- .../test_dependencies_container_py2_py3.py | 125 ++++++++++++++++++ 2 files changed, 125 insertions(+), 124 deletions(-) delete mode 100644 tests/unit/providers/test_base_py2_py3.py create mode 100644 tests/unit/providers/test_dependencies_container_py2_py3.py diff --git a/tests/unit/providers/test_base_py2_py3.py b/tests/unit/providers/test_base_py2_py3.py deleted file mode 100644 index 1abb8d84..00000000 --- a/tests/unit/providers/test_base_py2_py3.py +++ /dev/null @@ -1,124 +0,0 @@ -"""Dependency injector base providers unit tests.""" - -import unittest - -from dependency_injector import ( - containers, - providers, - errors, -) -from pytest import raises - - -class DependenciesContainerTests(unittest.TestCase): - - class Container(containers.DeclarativeContainer): - - dependency = providers.Provider() - - def setUp(self): - self.provider = providers.DependenciesContainer() - self.container = self.Container() - - def test_getattr(self): - has_dependency = hasattr(self.provider, "dependency") - dependency = self.provider.dependency - - assert isinstance(dependency, providers.Dependency) - assert dependency is self.provider.dependency - assert has_dependency is True - assert dependency.last_overriding is None - - def test_getattr_with_container(self): - self.provider.override(self.container) - - dependency = self.provider.dependency - - assert dependency.overridden == (self.container.dependency,) - assert dependency.last_overriding is self.container.dependency - - def test_providers(self): - dependency1 = self.provider.dependency1 - dependency2 = self.provider.dependency2 - assert self.provider.providers == {"dependency1": dependency1, "dependency2": dependency2} - - def test_override(self): - dependency = self.provider.dependency - self.provider.override(self.container) - - assert dependency.overridden == (self.container.dependency,) - assert dependency.last_overriding is self.container.dependency - - def test_reset_last_overriding(self): - dependency = self.provider.dependency - self.provider.override(self.container) - self.provider.reset_last_overriding() - - assert dependency.last_overriding is None - assert dependency.last_overriding is None - - def test_reset_override(self): - dependency = self.provider.dependency - self.provider.override(self.container) - self.provider.reset_override() - - assert dependency.overridden == tuple() - assert not dependency.overridden - - def test_assign_parent(self): - parent = providers.DependenciesContainer() - provider = providers.DependenciesContainer() - - provider.assign_parent(parent) - - assert provider.parent is parent - - def test_parent_name(self): - container = containers.DynamicContainer() - provider = providers.DependenciesContainer() - container.name = provider - assert provider.parent_name == "name" - - def test_parent_name_with_deep_parenting(self): - provider = providers.DependenciesContainer() - container = providers.DependenciesContainer(name=provider) - _ = providers.DependenciesContainer(container=container) - assert provider.parent_name == "container.name" - - def test_parent_name_is_none(self): - provider = providers.DependenciesContainer() - assert provider.parent_name is None - - def test_parent_deepcopy(self): - container = containers.DynamicContainer() - provider = providers.DependenciesContainer() - container.name = provider - - copied = providers.deepcopy(container) - - assert container.name.parent is container - assert copied.name.parent is copied - - assert container is not copied - assert container.name is not copied.name - assert container.name.parent is not copied.name.parent - - def test_parent_set_on__getattr__(self): - provider = providers.DependenciesContainer() - assert isinstance(provider.name, providers.Dependency) - assert provider.name.parent is provider - - def test_parent_set_on__init__(self): - provider = providers.Dependency() - container = providers.DependenciesContainer(name=provider) - assert container.name is provider - assert container.name.parent is container - - def test_resolve_provider_name(self): - container = providers.DependenciesContainer() - assert container.resolve_provider_name(container.name) == "name" - - def test_resolve_provider_name_no_provider(self): - container = providers.DependenciesContainer() - with raises(errors.Error): - container.resolve_provider_name(providers.Provider()) diff --git a/tests/unit/providers/test_dependencies_container_py2_py3.py b/tests/unit/providers/test_dependencies_container_py2_py3.py new file mode 100644 index 00000000..600aa2f7 --- /dev/null +++ b/tests/unit/providers/test_dependencies_container_py2_py3.py @@ -0,0 +1,125 @@ +"""DependencyContainer provider tests.""" + +from dependency_injector import containers, providers, errors +from pytest import fixture, raises + + +class Container(containers.DeclarativeContainer): + + dependency = providers.Provider() + + +@fixture +def provider(): + return providers.DependenciesContainer() + + +@fixture +def container(): + return Container() + + +def test_getattr(provider): + has_dependency = hasattr(provider, "dependency") + dependency = provider.dependency + + assert isinstance(dependency, providers.Dependency) + assert dependency is provider.dependency + assert has_dependency is True + assert dependency.last_overriding is None + + +def test_getattr_with_container(provider, container): + provider.override(container) + + dependency = provider.dependency + + assert dependency.overridden == (container.dependency,) + assert dependency.last_overriding is container.dependency + + +def test_providers(provider): + dependency1 = provider.dependency1 + dependency2 = provider.dependency2 + assert provider.providers == {"dependency1": dependency1, "dependency2": dependency2} + + +def test_override(provider, container): + dependency = provider.dependency + provider.override(container) + + assert dependency.overridden == (container.dependency,) + assert dependency.last_overriding is container.dependency + + +def test_reset_last_overriding(provider, container): + dependency = provider.dependency + provider.override(container) + provider.reset_last_overriding() + + assert dependency.last_overriding is None + assert dependency.last_overriding is None + + +def test_reset_override(provider, container): + dependency = provider.dependency + provider.override(container) + provider.reset_override() + + assert dependency.overridden == tuple() + assert not dependency.overridden + + +def test_assign_parent(provider): + parent = providers.DependenciesContainer() + provider.assign_parent(parent) + assert provider.parent is parent + + +def test_parent_name(provider): + container = containers.DynamicContainer() + container.name = provider + assert provider.parent_name == "name" + + +def test_parent_name_with_deep_parenting(provider): + container = providers.DependenciesContainer(name=provider) + _ = providers.DependenciesContainer(container=container) + assert provider.parent_name == "container.name" + + +def test_parent_name_is_none(provider): + assert provider.parent_name is None + + +def test_parent_deepcopy(provider, container): + container.name = provider + copied = providers.deepcopy(container) + + assert container.name.parent is container + assert copied.name.parent is copied + + assert container is not copied + assert container.name is not copied.name + assert container.name.parent is not copied.name.parent + + +def test_parent_set_on__getattr__(provider): + assert isinstance(provider.name, providers.Dependency) + assert provider.name.parent is provider + + +def test_parent_set_on__init__(): + provider = providers.Dependency() + container = providers.DependenciesContainer(name=provider) + assert container.name is provider + assert container.name.parent is container + + +def test_resolve_provider_name(provider): + assert provider.resolve_provider_name(provider.name) == "name" + + +def test_resolve_provider_name_no_provider(provider): + with raises(errors.Error): + provider.resolve_provider_name(providers.Provider())