def test_is_singleton_by_default(self): def module(binder): binder.bind(JustAClass) i = Injector(module) just_a_class = i.get_instance(JustAClass) assert just_a_class is not None assert isinstance(just_a_class, JustAClass) just_a_class_now = i.get_instance(JustAClass) assert just_a_class is just_a_class_now
def test_get_instance_using_type_without_binding(self): def module(binder): binder.bind(ThingConsumer) binder.bind_to("thing", THING_VALUE) i = Injector(module) class_consumer = i.get_instance(ClassConsumer) assert isinstance(class_consumer, ClassConsumer)
def test_get_instance_of_class_with_arg(self): def module(binder): binder.bind(ThingConsumer) binder.bind_to("thing", THING_VALUE) i = Injector(module) thing_consumer = i.get_instance(ThingConsumer) assert thing_consumer is not None assert isinstance(thing_consumer, ThingConsumer)
def test_get_instance_with_provider_using_annotation(self): def module(binder): binder.bind_provider(just_a_class_provider) binder.bind_to("otherthing", OTHERTHING_VALUE) i = Injector(module) just_a_class = i.get_instance(JustAClass) assert just_a_class is not None assert isinstance(just_a_class, JustAClass)
def test_get_instance_with_provider(self): def module(binder): binder.bind(ThingConsumer) binder.bind_provider("thing", provider) binder.bind_to("otherthing", OTHERTHING_VALUE) i = Injector(module) thing_consumer = i.get_instance(ThingConsumer) assert thing_consumer is not None assert isinstance(thing_consumer, ThingConsumer)
def test_get_instance_fallback_name(self): def module(binder): binder.bind_to("thing_consumer", ThingConsumer) binder.bind(ClassConsumer) binder.bind_to("thing", THING_VALUE) i = Injector(module) class_consumer = i.get_instance(ClassConsumer) assert class_consumer is not None assert isinstance(class_consumer, ClassConsumer)
def test_get_instance_of_class(self): i = Injector(lambda binder: binder.bind(JustAClass)) instance = i.get_instance(JustAClass) assert instance is not None assert isinstance(instance, JustAClass)
def test_get_simple_instance(self): i = Injector(lambda binder: binder.bind_to("thing", THING_VALUE)) thing = i.get_instance("thing") assert thing == THING_VALUE
def test_class_decorated(self): inj = Injector(use_decorators=True) otherthing = inj.get_instance(OtherThing) assert otherthing.value == 3 assert isinstance(otherthing.thing, Thing) assert isinstance(otherthing, OtherThing)
def test_provider_decorated(self): inj = Injector(use_decorators=True) assert inj.get_instance("value") == 3 assert isinstance(inj.get_instance(Thing), Thing)