From c15fc27f006d8d2a30bab19e0054ac3538f9c28a Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Wed, 25 Aug 2021 09:36:24 -0400 Subject: [PATCH] Add example --- .../factory_aggregate_non_string_keys.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 examples/providers/factory_aggregate_non_string_keys.py diff --git a/examples/providers/factory_aggregate_non_string_keys.py b/examples/providers/factory_aggregate_non_string_keys.py new file mode 100644 index 00000000..6415b17a --- /dev/null +++ b/examples/providers/factory_aggregate_non_string_keys.py @@ -0,0 +1,45 @@ +"""`FactoryAggregate` provider with non-string keys example.""" + +from dependency_injector import containers, providers + + +class Command: + ... + + +class CommandA(Command): + ... + + +class CommandB(Command): + ... + + +class Handler: + ... + + +class HandlerA(Handler): + ... + + +class HandlerB(Handler): + ... + + +class Container(containers.DeclarativeContainer): + + handler_factory = providers.FactoryAggregate({ + CommandA: providers.Factory(HandlerA), + CommandB: providers.Factory(HandlerB), + }) + + +if __name__ == "__main__": + container = Container() + + handler_a = container.handler_factory(CommandA) + handler_b = container.handler_factory(CommandB) + + assert isinstance(handler_a, HandlerA) + assert isinstance(handler_b, HandlerB)