mirror of
https://github.com/django-components/django-components.git
synced 2025-08-07 15:58:00 +00:00
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
import unittest
|
|
|
|
from django_components import component
|
|
|
|
from .django_test_setup import * # NOQA
|
|
|
|
|
|
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")
|