コード例 #1
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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']
コード例 #2
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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
コード例 #3
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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)
コード例 #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()
コード例 #5
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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')
コード例 #6
0
 def _set_object(self, object_: 'ABCCustomObjectModel') -> None:
     registry = Registry(self.REGISTRY_NAME)
     registry.set(object_)
コード例 #7
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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)
コード例 #8
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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)
コード例 #9
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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__]
コード例 #10
0
ファイル: registry_tests.py プロジェクト: HagasSaan/notifier
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