async def test_successes_are_removed_from_the_indexing_state( resource, settings, registry, memories, indexers, caplog, event_type, handlers): caplog.set_level(logging.DEBUG) body = {'metadata': {'namespace': 'ns1', 'name': 'name1'}} memory = await memories.recall(raw_body=body) memory.indexing_memory.indexing_state = State( {'unrelated': HandlerState(success=True)}) handlers.index_mock.side_effect = 123 await process_resource_event( lifecycle=all_at_once, registry=registry, settings=settings, resource=resource, indexers=indexers, memories=memories, memobase=Memo(), raw_event={ 'type': event_type, 'object': body }, event_queue=asyncio.Queue(), resource_indexed=Toggle(), # used! only to enable indexing. ) assert handlers.index_mock.call_count == 1 assert memory.indexing_memory.indexing_state is None
async def test_temporary_failures_with_expired_delays_are_reindexed( resource, settings, registry, memories, indexers, index, caplog, event_type, handlers): caplog.set_level(logging.DEBUG) body = {'metadata': {'namespace': 'ns1', 'name': 'name1'}} delayed = datetime.datetime(2020, 12, 31, 23, 59, 59, 0) memory = await memories.recall(raw_body=body) memory.indexing_memory.indexing_state = State( {'index_fn': HandlerState(delayed=delayed)}) await process_resource_event( lifecycle=all_at_once, registry=registry, settings=settings, resource=resource, indexers=indexers, memories=memories, memobase=Memo(), raw_event={ 'type': event_type, 'object': body }, event_queue=asyncio.Queue(), resource_indexed=Toggle(), # used! only to enable indexing. ) assert handlers.index_mock.call_count == 1
async def test_permanent_failures_are_not_reindexed(resource, settings, registry, memories, indexers, index, caplog, event_type, handlers): caplog.set_level(logging.DEBUG) body = {'metadata': {'namespace': 'ns1', 'name': 'name1'}} memory = await memories.recall(raw_body=body) memory.indexing_memory.indexing_state = State( {'index_fn': HandlerState(failure=True)}) await process_resource_event( lifecycle=all_at_once, registry=registry, settings=settings, resource=resource, indexers=indexers, memories=memories, memobase=Memo(), raw_event={ 'type': event_type, 'object': body }, event_queue=asyncio.Queue(), resource_indexed=Toggle(), # used! only to enable indexing. ) assert handlers.index_mock.call_count == 0