From bb074aa90de5dd01cb053ed3af6fca8473f9af1d Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 12 Aug 2020 14:22:21 +0530 Subject: [PATCH] fix(test): retry test_event_producer --- .../event_producer/test_event_producer.py | 68 +++++++++++-------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/frappe/event_streaming/doctype/event_producer/test_event_producer.py b/frappe/event_streaming/doctype/event_producer/test_event_producer.py index 0d414f5d63..9f7b7d8d34 100644 --- a/frappe/event_streaming/doctype/event_producer/test_event_producer.py +++ b/frappe/event_streaming/doctype/event_producer/test_event_producer.py @@ -205,35 +205,12 @@ class TestEventProducer(unittest.TestCase): def test_inner_mapping(self): producer = get_remote_site() - event_producer = frappe.get_doc('Event Producer', producer_url) - event_producer.producer_doctypes = [] - inner_mapping = [ - { - 'local_fieldname':'role_name', - 'remote_fieldname':'title' - } - ] - inner_map = get_mapping('Role to Note Dependency Creation', 'Role', 'Note', inner_mapping) - mapping = [ - { - 'local_fieldname':'description', - 'remote_fieldname':'content', - }, - { - 'local_fieldname': 'role', - 'remote_fieldname': 'title', - 'mapping_type': 'Document', - 'mapping': inner_map, - 'remote_value_filters': json.dumps({'title': 'title'}) - } - ] - event_producer.append('producer_doctypes', { - 'ref_doctype': 'ToDo', - 'use_same_name': 1, - 'has_mapping': 1, - 'mapping': get_mapping('ToDo to Note Mapping', 'ToDo', 'Note', mapping) - }) - event_producer.save() + + try: + setup_event_producer_for_inner_mapping() + except frappe.TimestampMismatchError: + # retry - event_producer keeps updating via log so try again + setup_event_producer_for_inner_mapping() producer_note = frappe._dict(doctype='Note', title='Inner Mapping Tester', content='Test Inner Mapping') delete_on_remote_if_exists(producer, 'Note', {'title': producer_note.title}) @@ -248,6 +225,39 @@ class TestEventProducer(unittest.TestCase): reset_configuration(producer_url) +def setup_event_producer_for_inner_mapping(): + event_producer = frappe.get_doc('Event Producer', producer_url) + event_producer.producer_doctypes = [] + inner_mapping = [ + { + 'local_fieldname':'role_name', + 'remote_fieldname':'title' + } + ] + inner_map = get_mapping('Role to Note Dependency Creation', 'Role', 'Note', inner_mapping) + mapping = [ + { + 'local_fieldname':'description', + 'remote_fieldname':'content', + }, + { + 'local_fieldname': 'role', + 'remote_fieldname': 'title', + 'mapping_type': 'Document', + 'mapping': inner_map, + 'remote_value_filters': json.dumps({'title': 'title'}) + } + ] + event_producer.append('producer_doctypes', { + 'ref_doctype': 'ToDo', + 'use_same_name': 1, + 'has_mapping': 1, + 'mapping': get_mapping('ToDo to Note Mapping', 'ToDo', 'Note', mapping) + }) + event_producer.save() + return event_producer + + def insert_into_producer(producer, description): #create and insert todo on remote site todo = dict(doctype='ToDo', description=description, assigned_by='Administrator')