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
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