Esempio n. 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'])
Esempio n. 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'])
Esempio n. 3
0
    def test_inject_resolver(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(c, other=inject('c', keyname='special_called', increment=10)):
            self.assertTrue(other is c)
            c['counter_used'] += 1

        ij = Injector()
        ij.add_resolver('c', resolver)

        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'])
Esempio n. 4
0
    def test_inject_resolver(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(c, other=inject('c', keyname='special_called', increment=10)):
            self.assertTrue(other is c)
            c['counter_used'] += 1

        ij = Injector()
        ij.add_resolver('c', resolver)

        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'])