def test_basic_registry(self): from appregister import SortedRegistry from appregister.base import InvalidOperation, AlreadyRegistered from test_appregister.models import Question class MyRegistry(SortedRegistry): base = Question registry = MyRegistry() # Test the registry allows a valid registration and block an invalid. class MyTestSubClass(Question): pass registry.register(MyTestSubClass) with self.assertRaises(AlreadyRegistered): registry.register(MyTestSubClass) class MyObject(object): pass with self.assertRaises(InvalidOperation): registry.register(MyObject) self.assertIn(MyTestSubClass, registry) registry.unregister(MyTestSubClass) self.assertNotIn(MyTestSubClass, registry) self.assertEqual(len(registry), 0)
def test_unregister_without_register(self): """ Try to unregister a class that was never registered """ from test_appregister.models import Question, registry class MyQuestion4(Question): pass with self.assertRaises(KeyError): registry.unregister(MyQuestion4)
def test_unregister(self): """ Test the unregister process by registering, unregistering and registering again """ from test_appregister.models import Question, registry class MyQuestion3(Question): pass registry.register(MyQuestion3) self.assertIn(MyQuestion3, registry.all()) registry.unregister(MyQuestion3) self.assertNotIn(MyQuestion3, registry.all()) registry.register(MyQuestion3) self.assertIn(MyQuestion3, registry.all())
def test_basic_registry(self): from appregister import NamedRegistry from appregister.base import InvalidOperation, AlreadyRegistered from test_appregister.models import Question class MyRegistry(NamedRegistry): base = Question registry = MyRegistry() # Test the registry allows a valid registration and block an invalid. class MyTestSubClass(Question): pass registry.register('first', MyTestSubClass) with self.assertRaises(AlreadyRegistered): registry.register('first', MyTestSubClass) registry.register('second', MyTestSubClass) class MyObject(object): pass with self.assertRaises(InvalidOperation): registry.register('invalid', MyObject) registry.unregister('first') with self.assertRaises(KeyError): registry['first'] self.assertEqual(registry['second'], MyTestSubClass) self.assertEqual(len(registry), 1) for i in registry: self.assertIn(i, registry.keys())