Commit d66102a14cc1106f1155733b6ce6a422ee5b5947
1 parent
c065d55f
add keywords for openprocurement client
Showing
2 changed files
with
139 additions
and
0 deletions
... | ... | @@ -43,6 +43,19 @@ Library openprocurement_client.utils |
43 | 43 | [return] ${monitoring_id} |
44 | 44 | |
45 | 45 | |
46 | +Отримати internal id угоди по UAid | |
47 | + [Arguments] ${username} ${agreement_uaid} | |
48 | + Log ${username} | |
49 | + Log ${agreement_uaid} | |
50 | + Log Many ${USERS.users['${username}'].id_map} | |
51 | + ${status}= Run Keyword And Return Status Dictionary Should Contain Key ${USERS.users['${username}'].id_map} ${agreement_uaid} | |
52 | + Run Keyword And Return If ${status} Get From Dictionary ${USERS.users['${username}'].id_map} ${agreement_uaid} | |
53 | + Call Method ${USERS.users['${username}'].agreement_client} get_agreements | |
54 | + ${agreement_id}= Wait Until Keyword Succeeds 5x 30 sec get_agreement_id_by_uaid ${agreement_uaid} ${USERS.users['${username}'].agreement_client} | |
55 | + Set To Dictionary ${USERS.users['${username}'].id_map} ${agreement_uaid} ${agreement_id} | |
56 | + [return] ${agreement_id} | |
57 | + | |
58 | + | |
46 | 59 | Підготувати клієнт для користувача |
47 | 60 | [Arguments] ${username} |
48 | 61 | [Documentation] Відкрити браузер, створити об’єкти api wrapper і |
... | ... | @@ -62,7 +75,9 @@ Library openprocurement_client.utils |
62 | 75 | ... prepare_plan_api_wrapper ${USERS.users['${username}'].api_key} PLANS ${API_HOST_URL} ${API_VERSION} |
63 | 76 | ... ELSE prepare_api_wrapper ${USERS.users['${username}'].api_key} ${RESOURCE} ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper} |
64 | 77 | ${dasu_api_wraper}= prepare_dasu_api_wrapper ${USERS.users['${username}'].dasu_api_key} ${DASU_RESOURCE} ${DASU_API_HOST_URL} ${DASU_API_VERSION} ${ds_api_wraper} |
78 | + ${agreement_wrapper}= prepare_agreement_api_wrapper ${USERS.users['${username}'].api_key} AGREEMENTS ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper} | |
65 | 79 | Set To Dictionary ${USERS.users['${username}']} client=${api_wrapper} |
80 | + Set To Dictionary ${USERS.users['${username}']} agreement_client=${agreement_wrapper} | |
66 | 81 | Set To Dictionary ${USERS.users['${username}']} dasu_client=${dasu_api_wraper} |
67 | 82 | Set To Dictionary ${USERS.users['${username}']} access_token=${EMPTY} |
68 | 83 | ${id_map}= Create Dictionary |
... | ... | @@ -75,6 +90,8 @@ Library openprocurement_client.utils |
75 | 90 | ${contract_api_wrapper}= prepare_contract_api_wrapper ${USERS.users['${username}'].api_key} CONTRACTS ${api_host_url} ${api_version} ${ds_api_wraper} |
76 | 91 | Set To Dictionary ${USERS.users['${username}']} contracting_client=${contract_api_wrapper} |
77 | 92 | Set To Dictionary ${USERS.users['${username}']} contract_access_token=${EMPTY} |
93 | + Set To Dictionary ${USERS.users['${username}']} agreement_access_token=${EMPTY} | |
94 | + ${contracts_id_map}= Create Dictionary | |
78 | 95 | ${contracts_id_map}= Create Dictionary |
79 | 96 | Set To Dictionary ${USERS.users['${username}']} contracts_id_map=${contracts_id_map} |
80 | 97 | Log Variables |
... | ... | @@ -246,6 +263,16 @@ Library openprocurement_client.utils |
246 | 263 | [return] ${monitoring} |
247 | 264 | |
248 | 265 | |
266 | +Пошук угоди по ідентифікатору | |
267 | + [Arguments] ${username} ${agreement_uaid} ${save_key}=agreement_data | |
268 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | |
269 | + ${agreement}= Call Method ${USERS.users['${username}'].agreement_client} get_agreement ${internalid} | |
270 | + Set To Dictionary ${USERS.users['${username}']} ${save_key}=${agreement} | |
271 | + ${agreement}= munch_dict arg=${agreement} | |
272 | + Log ${agreement} | |
273 | + [return] ${agreement} | |
274 | + | |
275 | + | |
249 | 276 | Отримати доступ до об'єкта моніторингу |
250 | 277 | [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring |
251 | 278 | ${token}= Set Variable ${USERS.users['${username}'].access_token} |
... | ... | @@ -2010,3 +2037,102 @@ Library openprocurement_client.utils |
2010 | 2037 | ${document}= get_document_by_id ${tender.data} ${doc_id} |
2011 | 2038 | ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title} |
2012 | 2039 | [return] ${filename} |
2040 | + | |
2041 | + | |
2042 | +Отримати доступ до угоди | |
2043 | + [Arguments] ${username} ${agreement_uaid} | |
2044 | + ${token}= Set Variable ${USERS.users['${username}'].access_token} | |
2045 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | |
2046 | + ${agreement}= Call Method ${USERS.users['${username}'].agreement_client} patch_credentials ${internalid} ${token} | |
2047 | + Set To Dictionary ${USERS.users['${username}']} agreement_access_token=${agreement.access.token} | |
2048 | + ${agreement}= munch_dict arg=${agreement} | |
2049 | + [return] ${agreement} | |
2050 | + | |
2051 | + | |
2052 | +Внести зміну в угоду | |
2053 | + [Arguments] ${username} ${agreement_uaid} ${change_data} | |
2054 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | |
2055 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} create_change | |
2056 | + ... ${internalid} | |
2057 | + ... ${change_data} | |
2058 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | |
2059 | + Log ${reply} | |
2060 | + | |
2061 | + | |
2062 | +Застосувати зміну для угоди | |
2063 | + [Arguments] ${username} ${agreement_uaid} ${dateSigned} ${status} | |
2064 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | |
2065 | + ${data}= Create Dictionary status=${status} dateSigned=${dateSigned} | |
2066 | + ${data}= Create Dictionary data=${data} | |
2067 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_change | |
2068 | + ... ${agreement.data.id} | |
2069 | + ... ${data} | |
2070 | + ... ${agreement.data.changes[-1].id} | |
2071 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | |
2072 | + Log ${reply} | |
2073 | + | |
2074 | + | |
2075 | +Оновити властивості угоди | |
2076 | + [Arguments] ${username} ${agreement_uaid} ${data} | |
2077 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | |
2078 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_change | |
2079 | + ... ${agreement.data.id} | |
2080 | + ... ${data} | |
2081 | + ... ${agreement.data.changes[-1].id} | |
2082 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | |
2083 | + Log ${reply} | |
2084 | + | |
2085 | + | |
2086 | +Завантажити документ в рамкову угоду | |
2087 | + [Arguments] ${username} ${filepath} ${agreement_uaid} | |
2088 | + Log ${username} | |
2089 | + Log ${agreement_uaid} | |
2090 | + Log ${filepath} | |
2091 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | |
2092 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} upload_document | |
2093 | + ... ${filepath} | |
2094 | + ... ${agreement.data.id} | |
2095 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | |
2096 | + Log Object Data ${reply} reply | |
2097 | + [return] ${reply} | |
2098 | + | |
2099 | + | |
2100 | +Завантажити документ для зміни у рамковій угоді | |
2101 | + [Arguments] ${username} ${filepath} ${agreement_uaid} ${item_id} | |
2102 | + Log ${username} | |
2103 | + Log ${agreement_uaid} | |
2104 | + Log ${filepath} | |
2105 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | |
2106 | + ${document}= openprocurement_client.Завантажити документ в рамкову угоду ${username} ${filepath} ${agreement_uaid} | |
2107 | + Set to dictionary ${document.data} documentOf=change | |
2108 | + Set to dictionary ${document.data} relatedItem=${item_id} | |
2109 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_document | |
2110 | + ... ${agreement.data.id} | |
2111 | + ... ${document} | |
2112 | + ... ${document.data.id} | |
2113 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | |
2114 | + [return] ${reply} | |
2115 | + | |
2116 | + | |
2117 | +Завершити угоду | |
2118 | + [Arguments] ${username} ${agreement_uaid} | |
2119 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | |
2120 | + ${data}= Create Dictionary status=terminated | |
2121 | + ${data}= Create Dictionary data=${data} | |
2122 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_agreement | |
2123 | + ... ${internalid} | |
2124 | + ... ${data} | |
2125 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | |
2126 | + | |
2127 | + | |
2128 | +Отримати інформацію із угоди | |
2129 | + [Arguments] ${username} ${agreement_uaid} ${field_name} | |
2130 | + openprocurement_client.Пошук угоди по ідентифікатору | |
2131 | + ... ${username} | |
2132 | + ... ${agreement_uaid} | |
2133 | + ${status} ${field_value}= Run Keyword And Ignore Error | |
2134 | + ... Get From Object | |
2135 | + ... ${USERS.users['${username}'].agreement_data.data} | |
2136 | + ... ${field_name} | |
2137 | + Run Keyword If '${status}' == 'PASS' Return From Keyword ${field_value} | |
2138 | + Fail Field not found: ${field_name} | |
\ No newline at end of file | ... | ... |
1 | 1 | from openprocurement_client.resources.tenders import Client |
2 | 2 | from openprocurement_client.resources.edr import EDRClient |
3 | +from openprocurement_client.resources.agreements import AgreementClient | |
3 | 4 | from openprocurement_client.dasu_client import DasuClient |
4 | 5 | from openprocurement_client.resources.document_service import DocumentServiceClient |
5 | 6 | from openprocurement_client.resources.plans import PlansClient |
... | ... | @@ -34,6 +35,13 @@ class StableDsClient(DocumentServiceClient): |
34 | 35 | return super(StableDsClient, self).request(*args, **kwargs) |
35 | 36 | |
36 | 37 | |
38 | +class StableAgreementClient(AgreementClient): | |
39 | + @retry(stop_max_attempt_number=100, wait_random_min=500, | |
40 | + wait_random_max=4000, retry_on_exception=retry_if_request_failed) | |
41 | + def request(self, *args, **kwargs): | |
42 | + return super(StableAgreementClient, self).request(*args, **kwargs) | |
43 | + | |
44 | + | |
37 | 45 | def prepare_api_wrapper(key, resource, host_url, api_version, ds_client=None): |
38 | 46 | return StableClient(key, resource, host_url, api_version, |
39 | 47 | ds_client=ds_client) |
... | ... | @@ -43,6 +51,11 @@ def prepare_ds_api_wrapper(ds_host_url, auth_ds): |
43 | 51 | return StableDsClient(ds_host_url, auth_ds) |
44 | 52 | |
45 | 53 | |
54 | +def prepare_agreement_api_wrapper(key, resource, host_url, api_version, ds_client=None): | |
55 | + return StableAgreementClient(key, resource, host_url, api_version, | |
56 | + ds_client=ds_client) | |
57 | + | |
58 | + | |
46 | 59 | class ContractingStableClient(ContractingClient): |
47 | 60 | @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed) |
48 | 61 | def request(self, *args, **kwargs): | ... | ... |
Please
register
or
login
to post a comment