-
Notifications
You must be signed in to change notification settings - Fork 95
Open
Description
A failing test case:
def test_multibind_respects_the_singleton_decorator() -> None:
@singleton
class SingletonPlugin(Plugin):
pass
def configure(binder: Binder) -> None:
binder.bind(Plugin, to=SingletonPlugin)
binder.multibind(List[Plugin], to=SingletonPlugin)
binder.multibind(List[Plugin], to=[SingletonPlugin])
binder.multibind(Dict[str, Plugin], to={'singleton1': SingletonPlugin, 'singleton2': SingletonPlugin})
injector = Injector([configure])
plugin_singleton = injector.get(Plugin)
plugins_list = injector.get(List[Plugin])
plugins_dict = injector.get(Dict[str, Plugin])
assert plugin_singleton is injector.get(Plugin)
assert plugins_list[0] is plugins_list[1] # Fails
assert plugins_dict['singleton1'] is plugins_dict['singleton2'] # FailsMetadata
Metadata
Assignees
Labels
No labels