django-components/tests/test_registry.py
Emil Stenström c0c5a94908 Rename duplicate ComponentRegistryTest.
Also move registry test to registry.
2021-03-10 12:25:28 +01:00

52 lines
1.8 KiB
Python

import unittest
from .django_test_setup import * # NOQA
from django_components import component
class MockComponent(object):
pass
class ComponentRegistryTest(unittest.TestCase):
def setUp(self):
self.registry = component.ComponentRegistry()
def test_register_class_decorator(self):
@component.register("decorated_component")
class TestComponent(component.Component):
pass
self.assertEqual(component.registry.get("decorated_component"), TestComponent)
def test_simple_register(self):
self.registry.register(name="testcomponent", component=MockComponent)
self.assertEqual(
self.registry.all(),
{"testcomponent": MockComponent}
)
def test_register_two_components(self):
self.registry.register(name="testcomponent", component=MockComponent)
self.registry.register(name="testcomponent2", component=MockComponent)
self.assertEqual(
self.registry.all(),
{
"testcomponent": MockComponent,
"testcomponent2": MockComponent,
}
)
def test_prevent_registering_twice(self):
self.registry.register(name="testcomponent", component=MockComponent)
with self.assertRaises(component.AlreadyRegistered):
self.registry.register(name="testcomponent", component=MockComponent)
def test_simple_unregister(self):
self.registry.register(name="testcomponent", component=MockComponent)
self.registry.unregister(name="testcomponent")
self.assertEqual(self.registry.all(), {})
def test_raises_on_failed_unregister(self):
with self.assertRaises(component.NotRegistered):
self.registry.unregister(name="testcomponent")