Commit 40c977213dca2c26c7e135b6c7a4bb38830eb6f0

Authored by selurvedu
1 parent af4b0d78

op_client: Fix a performance issue

A lot of requests were performed without real need.
The issue was caused by false negative result of
`Dictionary should contain key`. Unlike `get_from_object()`,
it can't check whether a nested field is present or not.
@@ -64,16 +64,30 @@ Library openprocurement_client_helper.py @@ -64,16 +64,30 @@ Library openprocurement_client_helper.py
64 64
65 65
66 Отримати інформацію із тендера 66 Отримати інформацію із тендера
67 - [Arguments] ${username} ${fieldname} 67 + [Arguments] ${username} ${field_name}
68 Log ${username} 68 Log ${username}
69 - Log ${fieldname}  
70 - ${status}= Run Keyword And Return Status Dictionary Should Contain Key ${USERS.users['${username}'].tender_data.data} ${fieldname}  
71 - Run Keyword Unless  
72 - ... ${status}  
73 - ... openprocurement_client.Пошук тендера по ідентифікатору ${username} ${TENDER['TENDER_UAID']}  
74 - ${field_value}= Get_From_Object ${USERS.users['${username}'].tender_data.data} ${fieldname}  
75 - Log ${field_value}  
76 - [return] ${field_value} 69 + Log ${field_name}
  70 +
  71 + ${status} ${field_value}= Run keyword and ignore error
  72 + ... Get from object
  73 + ... ${USERS.users['${username}'].tender_data.data}
  74 + ... ${field_name}
  75 + # If field is found, return its value
  76 + Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value}
  77 +
  78 + # Else refresh cached data and try again
  79 + openprocurement_client.Пошук тендера по ідентифікатору
  80 + ... ${username}
  81 + ... ${TENDER['TENDER_UAID']}
  82 +
  83 + ${status} ${field_value}= Run keyword and ignore error
  84 + ... Get from object
  85 + ... ${USERS.users['${username}'].tender_data.data}
  86 + ... ${field_name}
  87 + Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value}
  88 +
  89 + # If field is still absent, trigger a failure
  90 + Fail Field not found: ${field_name}
77 91
78 92
79 Внести зміни в тендер 93 Внести зміни в тендер
Please register or login to post a comment