mirror of
https://github.com/django-components/django-components.git
synced 2025-08-19 05:30:17 +00:00

The registry is a dictionary, so comparing items() has a couple of problems: 1. The order of a dictionary is unstable, so it may not turn out as expected. 2. items() returns a list in Python 2, but a dict_items in Python 3, which makes the comparison fail.
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
import unittest
|
|
from django_components import component
|
|
|
|
class MockComponent(object):
|
|
pass
|
|
|
|
class ComponentRegistryTest(unittest.TestCase):
|
|
def setUp(self):
|
|
self.registry = component.ComponentRegistry()
|
|
|
|
def test_simple_register(self):
|
|
self.registry.register(name="testcomponent", component=MockComponent)
|
|
self.assertEqual(
|
|
self.registry._registry,
|
|
{"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._registry,
|
|
{"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._registry, {})
|
|
|
|
def test_raises_on_failed_unregister(self):
|
|
with self.assertRaises(component.NotRegistered):
|
|
self.registry.unregister(name="testcomponent")
|