def test_orm_event_queue_overflow(capturelog): capturelog.setLevel(logging.ERROR, logger='onegov.search') class Tweet(Searchable): def __init__(self, id): self.id = id @property def es_suggestion(self): return self.id es_id = 'id' es_type_name = 'tweet' es_language = 'en' es_public = True es_properties = {} mappings = TypeMappingRegistry() mappings.register_type('tweet', {}) translator = ORMEventTranslator(mappings, max_queue_size=3) translator.on_insert('foobar', Tweet(1)) translator.on_update('foobar', Tweet(2)) translator.on_delete('foobar', Tweet(3)) assert len(capturelog.records()) == 0 translator.on_insert('foobar', Tweet(4)) assert len(capturelog.records()) == 1 assert capturelog.records()[0].message == \ 'The orm event translator queue is full!'
def test_orm_event_translator_delete(): class Page(Searchable): def __init__(self, id): self.id = id es_id = 'id' es_type_name = 'page' mappings = TypeMappingRegistry() mappings.register_type('page', {}) translator = ORMEventTranslator(mappings) translator.on_delete('foobar', Page(123)) assert translator.queue.get() == { 'action': 'delete', 'schema': 'foobar', 'type_name': 'page', 'id': 123 } assert translator.queue.empty()