From 1df2f60aa7b340b9217d810c14162416c0da72b7 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Sun, 28 Feb 2021 20:08:06 -0500 Subject: [PATCH] Add tests for module and class for string ids --- .../samples/wiringstringidssamples/module.py | 9 +++++++ .../wiring/test_wiring_string_ids_py36.py | 26 ++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/tests/unit/samples/wiringstringidssamples/module.py b/tests/unit/samples/wiringstringidssamples/module.py index 019e290b..b3284e51 100644 --- a/tests/unit/samples/wiringstringidssamples/module.py +++ b/tests/unit/samples/wiringstringidssamples/module.py @@ -19,8 +19,17 @@ from .container import Container from .service import Service +service = Provide['service'] +service_provider = Provider['service'] +undefined = Provide['undefined'] + + class TestClass: + service = Provide['service'] + service_provider = Provider['service'] + undefined = Provide['undefined'] + @inject def __init__(self, service: Service = Provide['service']): self.service = service diff --git a/tests/unit/wiring/test_wiring_string_ids_py36.py b/tests/unit/wiring/test_wiring_string_ids_py36.py index 42002372..0ecc5d7c 100644 --- a/tests/unit/wiring/test_wiring_string_ids_py36.py +++ b/tests/unit/wiring/test_wiring_string_ids_py36.py @@ -4,7 +4,9 @@ import unittest from dependency_injector.wiring import ( wire, Provide, - Closing) + Provider, + Closing, +) from dependency_injector import errors # Runtime import to avoid syntax errors in samples on Python < 3.5 @@ -59,6 +61,11 @@ class WiringTest(unittest.TestCase): service = test_function() self.assertIsInstance(service, Service) + def test_module_attributes_wiring(self): + self.assertIsInstance(module.service, Service) + self.assertIsInstance(module.service_provider(), Service) + self.assertIsInstance(module.undefined, Provide) + def test_class_wiring(self): test_class_object = module.TestClass() self.assertIsInstance(test_class_object.service, Service) @@ -92,6 +99,11 @@ class WiringTest(unittest.TestCase): service = instance.static_method() self.assertIsInstance(service, Service) + def test_class_attribute_wiring(self): + self.assertIsInstance(module.TestClass.service, Service) + self.assertIsInstance(module.TestClass.service_provider(), Service) + self.assertIsInstance(module.TestClass.undefined, Provide) + def test_function_wiring(self): service = module.test_function() self.assertIsInstance(service, Service) @@ -210,6 +222,18 @@ class WiringTest(unittest.TestCase): self.container.unwire() self.assertIsInstance(submodule.test_function(), Provide) + def test_unwire_module_attributes(self): + self.container.unwire() + self.assertIsInstance(module.service, Provide) + self.assertIsInstance(module.service_provider, Provider) + self.assertIsInstance(module.undefined, Provide) + + def test_unwire_class_attributes(self): + self.container.unwire() + self.assertIsInstance(module.TestClass.service, Provide) + self.assertIsInstance(module.TestClass.service_provider, Provider) + self.assertIsInstance(module.TestClass.undefined, Provide) + def test_wire_multiple_containers(self): sub_container = SubContainer() sub_container.wire(