Beispiel #1
0
def test_create_two_different_registers() -> None:
    Registry.clean()
    reg1 = Registry('reg1')
    reg1.set(RegisterTestClass)
    reg2 = Registry('reg2')
    reg2.set(RegisterTestClass)
    assert list(Registry.get_registers()) == ['reg1', 'reg2']
Beispiel #2
0
def test_add_class_not_notifies_listeners_with_special_flag(
    f_registry: Registry,
    mocker: MockFixture,
) -> None:
    listener = mocker.MagicMock()
    f_registry.subscribe(listener)
    f_registry.set(RegisterTestClass, notify_listeners=False)
    assert not listener.notify.called
Beispiel #3
0
def test_add_class_notifies_listeners(
    f_registry: Registry,
    mocker: MockFixture,
) -> None:
    listeners = [mocker.MagicMock() for _ in range(2)]
    [f_registry.subscribe(listener) for listener in listeners]
    f_registry.set(RegisterTestClass)
    assert all(listener.notify.called for listener in listeners)
Beispiel #4
0
 def upload_all_custom_objects_from_db_to_registry(cls) -> None:
     registry = Registry(cls.REGISTRY_NAME)
     for object_ in cls.objects.all():
         registry.set(
             object_,
             raise_if_exists=False,
             notify_listeners=False,
         )
     registry.notify_all()
Beispiel #5
0
def test_get_class_which_not_added_raises_error(
    f_registry: Registry, ) -> None:
    f_registry.set(RegisterTestClass)
    with pytest.raises(
            ItemNotExists,
            match=(f'Avaliable keys: {RegisterTestClass.__name__}\n'
                   f'Requested key: unexpected_key'),
    ):
        f_registry.get('unexpected_key')
Beispiel #6
0
 def _set_object(self, object_: 'ABCCustomObjectModel') -> None:
     registry = Registry(self.REGISTRY_NAME)
     registry.set(object_)
Beispiel #7
0
def test_add_class_to_registry_twice_not_raises_error_with_special_flag(
    f_registry: Registry, ) -> None:
    f_registry.set(RegisterTestClass)
    f_registry.set(RegisterTestClass, raise_if_exists=False)
Beispiel #8
0
def test_add_class_to_registry_twice_raises_error(
    f_registry: Registry, ) -> None:
    f_registry.set(RegisterTestClass)
    with pytest.raises(ItemAlreadyExists):
        f_registry.set(RegisterTestClass)
Beispiel #9
0
def test_add_class_to_registry(f_registry: Registry, ) -> None:
    f_registry.set(RegisterTestClass)
    assert f_registry.get(RegisterTestClass.__name__) == RegisterTestClass
    assert list(f_registry.keys) == [RegisterTestClass.__name__]
Beispiel #10
0
def test_creating_same_registers_returns_same_register() -> None:
    reg = Registry('Registry')
    assert len(reg.keys) == 0
    reg.set(RegisterTestClass)
    reg1 = Registry('Registry')
    assert RegisterTestClass.__name__ in reg1.keys