示例#1
0
    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
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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)
示例#7
0
 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)
示例#8
0
 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
示例#9
0
 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)
示例#10
0
 def test_provider_decorated(self):
     inj = Injector(use_decorators=True)
     assert inj.get_instance("value") == 3
     assert isinstance(inj.get_instance(Thing), Thing)