示例#1
0
def test_event_log_storage_watch(event_storage_factory_cm_fn):
    def evt(name):
        return DagsterEventRecord(
            None,
            name,
            'debug',
            '',
            'foo',
            time.time(),
            dagster_event=DagsterEvent(
                DagsterEventType.ENGINE_EVENT.value,
                'nonce',
                event_specific_data=EngineEventData.in_process(999),
            ),
        )

    with event_storage_factory_cm_fn() as storage:
        watched = []
        watcher = lambda x: watched.append(x)  # pylint: disable=unnecessary-lambda

        storage = InMemoryEventLogStorage()
        assert len(storage.get_logs_for_run('foo')) == 0

        storage.store_event(evt('Message1'))
        assert len(storage.get_logs_for_run('foo')) == 1
        assert len(watched) == 0

        storage.watch('foo', None, watcher)
        storage.store_event(evt('Message2'))
        assert len(storage.get_logs_for_run('foo')) == 2
        assert len(watched) == 1

        storage.end_watch('foo', lambda event: None)
        storage.store_event(evt('Message3'))
        assert len(storage.get_logs_for_run('foo')) == 3
        assert len(watched) == 2

        storage.end_watch('bar', lambda event: None)
        storage.store_event(evt('Message4'))
        assert len(storage.get_logs_for_run('foo')) == 4
        assert len(watched) == 3

        time.sleep(
            0.5
        )  # this value scientifically selected from a range of attractive values
        storage.end_watch('foo', watcher)
        time.sleep(0.5)
        storage.store_event(evt('Message5'))
        assert len(storage.get_logs_for_run('foo')) == 5
        assert len(watched) == 3

        storage.delete_events('foo')
        assert len(storage.get_logs_for_run('foo')) == 0
        assert len(watched) == 3
示例#2
0
def test_in_memory_event_log_storage_store_events_and_wipe():
    storage = InMemoryEventLogStorage()
    assert len(storage.get_logs_for_run('foo')) == 0
    storage.store_event(
        DagsterEventRecord(
            None,
            'Message2',
            'debug',
            '',
            'foo',
            time.time(),
            dagster_event=DagsterEvent(
                DagsterEventType.ENGINE_EVENT.value,
                'nonce',
                event_specific_data=EngineEventData.in_process(999),
            ),
        ))
    assert len(storage.get_logs_for_run('foo')) == 1
    storage.wipe()
    assert len(storage.get_logs_for_run('foo')) == 0