def test_get_value_cache(self): def serv(): self.stored_value = self.stored_value ** 2 return self.stored_value sl = ServiceLocator() sl.set('test-service', serv) val = sl.get('test-service') self.assertEqual(val, 25) val2 = sl.get('test-service') self.assertEqual(val2, 25) val3 = sl.get('test-service') self.assertEqual(val3, 25)
def test_multiple_aliases_stack(self): sl = ServiceLocator() sl.set('service-1', lambda: "test-value") sl.create_alias('test', 'service-1') sl.create_alias('test2', 'test') sl.create_alias('checking', 'test2') sl.create_alias('para-pam', 'checking') sl.create_alias('pom-pom', 'test2') self.assertEqual(sl.get('test'),'test-value') self.assertEqual(sl.get('test2'),'test-value') self.assertEqual(sl.get('checking'),'test-value') self.assertEqual(sl.get('para-pam'),'test-value') self.assertEqual(sl.get('pom-pom'),'test-value') self.assertEqual(sl.get('service-1'),'test-value')
def test_get_exists(self): def serv(): return "1-2-3" sl = ServiceLocator() sl.set('test-service', serv) val = sl.get('test-service') self.assertEqual(val, '1-2-3')
def test_set_double_override(self): def simple_service(): return "text" def simple_service2(): return "text2" sl = ServiceLocator() sl.set('simple-service', simple_service) #shouldn't generate any error sl.set('simple-service', simple_service2, can_override=True) #simple-service should point to simple_service2 now self.assertEqual(sl.get('simple-service'), 'text2')
def test_get_not_exists(self): sl = ServiceLocator() with self.assertRaises(KeyError): sl.get('non-exists-service')
def test_create_alias(self): sl = ServiceLocator() sl.set('service-1', lambda: "test-value") sl.create_alias('test', 'service-1') self.assertEqual(sl.get('test'),'test-value')