Exemple #1
0
    def test_resolver_alias(self):
        counter = Counter()

        def resolver(keyname='provider_called', increment=1):
            counter['resolver_called'] += 1
            def provider():
                counter[keyname] += increment
                return counter
            return provider

        def test(a, b, c, d, e, f):
            self.assertTrue(a is b)
            self.assertTrue(a is c)
            self.assertTrue(a is d)
            self.assertTrue(a is e)
            self.assertTrue(a is f)
            a['counter_used'] += 1

        ij = Injector()
        ij.add_resolver('a', resolver, alias="b")
        ij.add_resolver('c', resolver, alias=("d", "e", "f"))

        ij.call_inject(test)
        self.assertEqual(6, counter['resolver_called'])
        self.assertEqual(6, counter['provider_called'])
        self.assertEqual(1, counter['counter_used'])
Exemple #2
0
    def test_resolver_alias(self):
        counter = Counter()

        def resolver(keyname='provider_called', increment=1):
            counter['resolver_called'] += 1

            def provider():
                counter[keyname] += increment
                return counter

            return provider

        def test(a, b, c, d, e, f):
            self.assertTrue(a is b)
            self.assertTrue(a is c)
            self.assertTrue(a is d)
            self.assertTrue(a is e)
            self.assertTrue(a is f)
            a['counter_used'] += 1

        ij = Injector()
        ij.add_resolver('a', resolver, alias="b")
        ij.add_resolver('c', resolver, alias=("d", "e", "f"))

        ij.call_inject(test)
        self.assertEqual(6, counter['resolver_called'])
        self.assertEqual(6, counter['provider_called'])
        self.assertEqual(1, counter['counter_used'])
Exemple #3
0
    def test_inject_resolver_decorator(self):
        counter = Counter()

        ij = Injector()

        @ij.resolver('c')
        def resolver(keyname='provider_called', increment=1):
            counter['resolver_called'] += 1

            def provider():
                counter[keyname] += increment
                return counter

            return provider

        def test(c, other=inject('c', keyname='special_called', increment=10)):
            self.assertTrue(other is c)
            c['counter_used'] += 1

        ij.call_inject(test)
        self.assertEqual(2, counter['resolver_called'])
        self.assertEqual(1, counter['provider_called'])
        self.assertEqual(10, counter['special_called'])
        self.assertEqual(1, counter['counter_used'])

        ij.call_inject(test)
        self.assertEqual(2, counter['resolver_called']
                         )  # !!! Should be cached and not called again
        self.assertEqual(2, counter['provider_called'])
        self.assertEqual(20, counter['special_called'])
        self.assertEqual(2, counter['counter_used'])
Exemple #4
0
 def test_remove_provider(self):
     ij = Injector()
     ij.add_value('val', 5)
     ij.remove('val')
     def test(val): pass
     with self.assertRaises(InjectError):
         ij.call_inject(test)
Exemple #5
0
    def test_inject_resolver_decorator(self):
        counter = Counter()

        ij = Injector()
        @ij.resolver('c')
        def resolver(keyname='provider_called', increment=1):
            counter['resolver_called'] += 1
            def provider():
                counter[keyname] += increment
                return counter
            return provider

        def test(c, other=inject('c', keyname='special_called', increment=10)):
            self.assertTrue(other is c)
            c['counter_used'] += 1

        ij.call_inject(test)
        self.assertEqual(2, counter['resolver_called'])
        self.assertEqual(1, counter['provider_called'])
        self.assertEqual(10, counter['special_called'])
        self.assertEqual(1, counter['counter_used'])

        ij.call_inject(test)
        self.assertEqual(2, counter['resolver_called'])  # !!! Should be cached and not called again
        self.assertEqual(2, counter['provider_called'])
        self.assertEqual(20, counter['special_called'])
        self.assertEqual(2, counter['counter_used'])
Exemple #6
0
    def test_remove_provider(self):
        ij = Injector()
        ij.add_value('val', 5)
        ij.remove('val')

        def test(val):
            pass

        with self.assertRaises(InjectError):
            ij.call_inject(test)
Exemple #7
0
 def test_inject_value(self):
     ij = Injector()
     value = []
     ij.add_value('val', value)
     def test(val, other=inject('val')):
         self.assertTrue(val is other)
         self.assertTrue(val is value)
         val.append(5)
     ij.call_inject(test)
     self.assertEqual([5], value)
Exemple #8
0
    def test_inject_value(self):
        ij = Injector()
        value = []
        ij.add_value('val', value)

        def test(val, other=inject('val')):
            self.assertTrue(val is other)
            self.assertTrue(val is value)
            val.append(5)

        ij.call_inject(test)
        self.assertEqual([5], value)
Exemple #9
0
    def test_inject_provider_decorator(self):
        counter = Counter()
        ij = Injector()

        @ij.provider('c')
        def provider():
            counter['provider_called'] += 1
            return counter

        def test(c, other=inject('c')):
            self.assertTrue(other is c)
            c['counter_used'] += 1

        ij.call_inject(test)
        self.assertEqual(2, counter['provider_called'])
        self.assertEqual(1, counter['counter_used'])
Exemple #10
0
    def test_inject_provider_decorator(self):
        counter = Counter()
        ij = Injector()

        @ij.provider('c')
        def provider():
            counter['provider_called'] += 1
            return counter

        def test(c, other=inject('c')):
            self.assertTrue(other is c)
            c['counter_used'] += 1

        ij.call_inject(test)
        self.assertEqual(2, counter['provider_called'])
        self.assertEqual(1, counter['counter_used'])