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