Пример #1
0
 def test_get_registered_class_returns_registered_class(self):
     # for backwards compatibility. You can (and should) just access
     # your registry like a normal dictionary.
     lc = Registry()
     TestClass = self.get_test_class("ABC")
     lc.register(TestClass)
     self.assertEqual(lc.get_registered_class("ABC"), TestClass)
Пример #2
0
 def test_unregister_removes_item_from_collection(self):
     key = "ABC"
     lc = Registry()
     TestClass = self.get_test_class(key)
     lc[key] = TestClass
     lc.unregister(TestClass)
     self.assertNotIn(key, lc)
Пример #3
0
    def test_raises_already_registered_when_key_has_already_been_registered(self):
        test_class_one = self.get_test_class("ABC")
        test_class_two = type('TestClassTwo', (object, ), {'key': "ABC"})
        lc = Registry()
        lc.register(test_class_one)

        with self.assertRaises(AlreadyRegistered) as e:
            lc.register(test_class_two)
        self.assertEqual("Key 'ABC' has already been registered as 'TestClass'.", str(e.exception))
Пример #4
0
 def test_registry_allows_customizable_key_name(self):
     lc = Registry(key_name='obj_code')
     TestClass = type('TestClass', (object, ), {'obj_code': "code1"})
     lc.register(TestClass)
     self.assertEqual(lc["code1"], TestClass)
Пример #5
0
    def test_unregister_returns_none_when_class_isnt_already_registered(self):
        # as opposed to blowing up on a KeyError
        lc = Registry()
        TestClass = self.get_test_class("ABC")

        self.assertEqual(None, lc.unregister(TestClass))
Пример #6
0
 def test_register_adds_item_to_collection(self):
     lc = Registry()
     TestClass = self.get_test_class("ABC")
     lc.register(TestClass)
     self.assertEqual(lc["ABC"], TestClass)