Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
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)
Ejemplo n.º 3
0
    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())
Ejemplo n.º 4
0
    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())