diff --git a/src/dependency_injector/wiring.py b/src/dependency_injector/wiring.py index 94c97ccb..0eb1a6ac 100644 --- a/src/dependency_injector/wiring.py +++ b/src/dependency_injector/wiring.py @@ -550,7 +550,7 @@ def _is_method(member): def _is_marker(member): - return isinstance(member, Provide) or isinstance(member, Provider) + return isinstance(member, _Marker) def _get_patched(fn, reference_injections, reference_closing): diff --git a/tests/unit/samples/wiringsamples/module_invalid_attr_injection.py b/tests/unit/samples/wiringsamples/module_invalid_attr_injection.py new file mode 100644 index 00000000..20f20846 --- /dev/null +++ b/tests/unit/samples/wiringsamples/module_invalid_attr_injection.py @@ -0,0 +1,8 @@ +"""Test module for wiring with invalid type of marker for attribute injection.""" + +from dependency_injector.wiring import Closing + +from .container import Container + + +service = Closing[Container.service] diff --git a/tests/unit/wiring/test_wiring_py36.py b/tests/unit/wiring/test_wiring_py36.py index 51a71c1c..91e7df5e 100644 --- a/tests/unit/wiring/test_wiring_py36.py +++ b/tests/unit/wiring/test_wiring_py36.py @@ -70,6 +70,15 @@ class WiringTest(unittest.TestCase): self.assertIsInstance(module.service_provider(), Service) self.assertIsInstance(module.undefined, Provide) + def test_module_attribute_wiring_with_invalid_marker(self): + from wiringsamples import module_invalid_attr_injection + with self.assertRaises(Exception) as context: + self.container.wire(modules=[module_invalid_attr_injection]) + self.assertEqual( + str(context.exception), + 'Unknown type of marker {0}'.format(module_invalid_attr_injection.service), + ) + def test_class_wiring(self): test_class_object = module.TestClass() self.assertIsInstance(test_class_object.service, Service)