fix(test): retry test_event_producer

This commit is contained in:
Rushabh Mehta 2020-08-12 14:22:21 +05:30
parent 8cf288a657
commit bb074aa90d

View file

@ -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')