Esempio n. 1
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
Esempio n. 2
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)
Esempio n. 3
0
def test_save_object_add_it_to_registry(mocker: MockFixture, ) -> None:
    registry = Registry(ABCCustomObjectModel.REGISTRY_NAME)
    f_listeners = [mocker.MagicMock() for _ in range(2)]
    [registry.subscribe(listener) for listener in f_listeners]
    f_save = mocker.patch.object(Model, 'save')

    custom_object = ABCCustomObjectModel()
    custom_object.save()

    f_save.assert_called_once()
    assert str(custom_object) in registry.keys
    [listener.notify.assert_called_once() for listener in f_listeners]
Esempio n. 4
0
def test_upload_all_custom_objects_from_db_to_registry(
    mocker: MockFixture, ) -> None:
    f_objects_manager = mocker.MagicMock()
    ABCCustomObjectModel.objects = f_objects_manager
    f_custom_objects = [
        ABCCustomObjectModel(name=f'custom_object_{i}') for i in range(2)
    ]
    f_objects_manager.all.return_value = f_custom_objects
    registry = Registry(ABCCustomObjectModel.REGISTRY_NAME)
    f_listeners = [mocker.MagicMock() for _ in range(2)]
    [registry.subscribe(listener) for listener in f_listeners]

    ABCCustomObjectModel.upload_all_custom_objects_from_db_to_registry()

    assert all(
        str(custom_object) in registry.keys
        for custom_object in f_custom_objects)
    [listener.notify.assert_called_once() for listener in f_listeners]