mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-22 01:26:51 +03:00
Update wiring to support modules provided as packages
This commit is contained in:
parent
b4ddf61939
commit
7bdcc33eda
|
@ -552,6 +552,8 @@ def _unbind_injections(fn: Callable[..., Any]) -> None:
|
|||
|
||||
def _fetch_modules(package):
|
||||
modules = [package]
|
||||
if not hasattr(package, '__path__') or not hasattr(package, '__name__'):
|
||||
return modules
|
||||
for module_info in pkgutil.walk_packages(
|
||||
path=package.__path__,
|
||||
prefix=package.__name__ + '.',
|
||||
|
|
|
@ -310,6 +310,18 @@ class WiringTest(unittest.TestCase):
|
|||
self.assertIsInstance(service, Service)
|
||||
|
||||
|
||||
class ModuleAsPackagingTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.container = Container(config={'a': {'b': {'c': 10}}})
|
||||
self.addCleanup(self.container.unwire)
|
||||
|
||||
def test_module_as_package_wiring(self):
|
||||
# See: https://github.com/ets-labs/python-dependency-injector/issues/481
|
||||
self.container.wire(packages=[module])
|
||||
self.assertIsInstance(module.service, Service)
|
||||
|
||||
|
||||
class WiringAndQueue(unittest.TestCase):
|
||||
|
||||
def test_wire_queue(self) -> None:
|
||||
|
|
Loading…
Reference in New Issue
Block a user