Commit 2d8fee520cb9954e656a6cd97bbe845ab9b52867
Committed by
GitHub
Merge pull request #55 from openprocurement/master
Agreement
Showing
10 changed files
with
804 additions
and
7 deletions
@@ -48,9 +48,10 @@ Resource base_keywords.robot | @@ -48,9 +48,10 @@ Resource base_keywords.robot | ||
48 | Run As ${username} Змінити документацію в ставці ${TENDER['TENDER_UAID']} ${privat_doc} ${USERS.users['${username}']['bid_document']['doc_id']} | 48 | Run As ${username} Змінити документацію в ставці ${TENDER['TENDER_UAID']} ${privat_doc} ${USERS.users['${username}']['bid_document']['doc_id']} |
49 | 49 | ||
50 | 50 | ||
51 | -Можливість завантажити ${doc_type} документ до пропозиції учасником ${username} | 51 | +Можливість завантажити документ до пропозиції учасником |
52 | + [Arguments] ${username} ${doc_name} ${doc_type}=${NONE} | ||
52 | ${file_path} ${file_name} ${file_content}= create_fake_doc | 53 | ${file_path} ${file_name} ${file_content}= create_fake_doc |
53 | - ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${file_path} ${TENDER['TENDER_UAID']} ${doc_type} | 54 | + ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${file_path} ${TENDER['TENDER_UAID']} ${doc_name} ${doc_type} |
54 | Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} | 55 | Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} |
55 | Remove File ${file_path} | 56 | Remove File ${file_path} |
56 | 57 |
op_robot_tests/tests_files/agreement.robot
0 → 100644
1 | +*** Settings *** | ||
2 | +Resource base_keywords.robot | ||
3 | +Suite Setup Test Suite Setup | ||
4 | +Suite Teardown Test Suite Teardown | ||
5 | + | ||
6 | +*** Variables *** | ||
7 | +@{USED_ROLES} tender_owner viewer | ||
8 | + | ||
9 | +*** Test Cases *** | ||
10 | +Можливість знайти закупівлю по ідентифікатору | ||
11 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера | ||
12 | + ... viewer tender_owner | ||
13 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
14 | + ... find_tender | ||
15 | + ... critical | ||
16 | + Завантажити дані про тендер | ||
17 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
18 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
19 | + | ||
20 | + | ||
21 | +Відображення ідентифікатора угоди | ||
22 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
23 | + ... viewer tender_owner | ||
24 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
25 | + ... tender_view | ||
26 | + ... critical | ||
27 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
28 | + \ Отримати дані із поля agreements[0].agreementID тендера для користувача ${username} | ||
29 | + ${AGREEMENT_UAID}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data.agreements[0].agreementID} | ||
30 | + Set Suite Variable ${AGREEMENT_UAID} | ||
31 | + | ||
32 | + | ||
33 | +Можливість знайти угоду по ідентифікатору | ||
34 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук угоди | ||
35 | + ... viewer tender_owner | ||
36 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
37 | + ... find_agreement | ||
38 | + ... critical | ||
39 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
40 | + \ Run As ${username} Пошук угоди по ідентифікатору ${AGREEMENT_UAID} | ||
41 | + | ||
42 | + | ||
43 | +Відображення ідентифікатора контракту в угоді | ||
44 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди | ||
45 | + ... viewer tender_owner | ||
46 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
47 | + ... agreement_view | ||
48 | + ... critical | ||
49 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
50 | + \ Отримати дані із угоди ${username} ${AGREEMENT_UAID} contracts[0].id | ||
51 | + | ||
52 | + | ||
53 | +Відображення ідентифікатора предмету в угоді | ||
54 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди | ||
55 | + ... viewer tender_owner | ||
56 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
57 | + ... agreement_view | ||
58 | + ... critical | ||
59 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
60 | + \ Отримати дані із угоди ${username} ${AGREEMENT_UAID} items[0].id | ||
61 | + | ||
62 | + | ||
63 | +Можливість отримати доступ до угоди | ||
64 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Отримання прав доступу до угоди | ||
65 | + ... tender_owner | ||
66 | + ... ${USERS.users['${tender_owner}'].broker} | ||
67 | + ... find_agreement | ||
68 | + ... critical | ||
69 | + Run As ${tender_owner} Отримати доступ до угоди ${AGREEMENT_UAID} | ||
70 | + | ||
71 | + | ||
72 | +Можливість завантажити документацію в угоду | ||
73 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Завантаження документації в угоду | ||
74 | + ... tender_owner | ||
75 | + ... ${USERS.users['${tender_owner}'].broker} | ||
76 | + ... add_agreement_doc | ||
77 | + ... non-critical | ||
78 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
79 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
80 | + Можливість завантажити документ для рамкової угоди користувачем ${tender_owner} | ||
81 | + | ||
82 | + | ||
83 | +Можливість внести зміну до угоди taxRate | ||
84 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
85 | + ... tender_owner | ||
86 | + ... ${USERS.users['${tender_owner}'].broker} | ||
87 | + ... submit_change | ||
88 | + ... critical | ||
89 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
90 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
91 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} taxRate | ||
92 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
93 | + | ||
94 | + | ||
95 | +Відображення типу зміни taxRate | ||
96 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
97 | + ... viewer | ||
98 | + ... ${USERS.users['${viewer}'].broker} | ||
99 | + ... change_view | ||
100 | + ... non-critical | ||
101 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
102 | + Звірити поле угоди із значенням | ||
103 | + ... ${viewer} | ||
104 | + ... ${AGREEMENT_UAID} | ||
105 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
106 | + ... changes[0].rationaleType | ||
107 | + | ||
108 | + | ||
109 | +Відображення обгрунтування зміни taxRate | ||
110 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
111 | + ... viewer | ||
112 | + ... ${USERS.users['${viewer}'].broker} | ||
113 | + ... change_view | ||
114 | + ... non-critical | ||
115 | + Звірити поле угоди із значенням | ||
116 | + ... ${viewer} | ||
117 | + ... ${AGREEMENT_UAID} | ||
118 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
119 | + ... changes[0].rationale | ||
120 | + | ||
121 | + | ||
122 | +Можливість оновити властивості угоди для внесених змін taxRate | ||
123 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
124 | + ... tender_owner | ||
125 | + ... ${USERS.users['${tender_owner}'].broker} | ||
126 | + ... modification | ||
127 | + ... critical | ||
128 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
129 | + ${change_data}= Підготувати дані для оновлення властивості угоди ${tender_owner} addend ${0.9} | ||
130 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
131 | + | ||
132 | + | ||
133 | +Відображення ідентифікатора предмету у властивостях taxRate | ||
134 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
135 | + ... viewer | ||
136 | + ... ${USERS.users['${viewer}'].broker} | ||
137 | + ... modification_view | ||
138 | + ... non-critical | ||
139 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
140 | + Звірити поле угоди із значенням | ||
141 | + ... ${viewer} | ||
142 | + ... ${AGREEMENT_UAID} | ||
143 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
144 | + ... changes[0].modifications[0].itemId | ||
145 | + | ||
146 | + | ||
147 | +Відображення addend у властивостях taxRate | ||
148 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
149 | + ... viewer | ||
150 | + ... ${USERS.users['${viewer}'].broker} | ||
151 | + ... modification_view | ||
152 | + ... non-critical | ||
153 | + Звірити поле угоди із значенням | ||
154 | + ... ${viewer} | ||
155 | + ... ${AGREEMENT_UAID} | ||
156 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['addend']} | ||
157 | + ... changes[0].modifications[0].addend | ||
158 | + | ||
159 | + | ||
160 | +Можливість завантажити документацію в зміну | ||
161 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Завантаження документації в угоду | ||
162 | + ... tender_owner | ||
163 | + ... ${USERS.users['${tender_owner}'].broker} | ||
164 | + ... add_agreement_doc | ||
165 | + ... non-critical | ||
166 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
167 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
168 | + Можливість завантажити документ для зміни у рамковій угоді користувачем ${tender_owner} | ||
169 | + | ||
170 | + | ||
171 | +Можливість застосувати зміну договору taxRate | ||
172 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
173 | + ... tender_owner | ||
174 | + ... ${USERS.users['${tender_owner}'].broker} | ||
175 | + ... apply_change | ||
176 | + ... critical | ||
177 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
178 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
179 | + ${dateSigned}= create_fake_date | ||
180 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} active | ||
181 | + | ||
182 | + | ||
183 | +Відображення статусу active зміни taxRate | ||
184 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
185 | + ... viewer | ||
186 | + ... ${USERS.users['${viewer}'].broker} | ||
187 | + ... change_view | ||
188 | + ... critical | ||
189 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
190 | + Звірити поле угоди із значенням | ||
191 | + ... ${viewer} | ||
192 | + ... ${AGREEMENT_UAID} | ||
193 | + ... active | ||
194 | + ... changes[0].status | ||
195 | + | ||
196 | + | ||
197 | +Можливість внести зміну до угоди itemPriceVariation | ||
198 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
199 | + ... tender_owner | ||
200 | + ... ${USERS.users['${tender_owner}'].broker} | ||
201 | + ... submit_change | ||
202 | + ... critical | ||
203 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
204 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} itemPriceVariation | ||
205 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
206 | + | ||
207 | + | ||
208 | +Відображення типу зміни itemPriceVariation | ||
209 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
210 | + ... viewer | ||
211 | + ... ${USERS.users['${viewer}'].broker} | ||
212 | + ... change_view | ||
213 | + ... non-critical | ||
214 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
215 | + Звірити поле угоди із значенням | ||
216 | + ... ${viewer} | ||
217 | + ... ${AGREEMENT_UAID} | ||
218 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
219 | + ... changes[1].rationaleType | ||
220 | + | ||
221 | + | ||
222 | +Відображення обгрунтування зміни itemPriceVariation | ||
223 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
224 | + ... viewer | ||
225 | + ... ${USERS.users['${viewer}'].broker} | ||
226 | + ... change_view | ||
227 | + ... non-critical | ||
228 | + Звірити поле угоди із значенням | ||
229 | + ... ${viewer} | ||
230 | + ... ${AGREEMENT_UAID} | ||
231 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
232 | + ... changes[1].rationale | ||
233 | + | ||
234 | + | ||
235 | +Можливість оновити властивості угоди для внесених змін itemPriceVariation | ||
236 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
237 | + ... tender_owner | ||
238 | + ... ${USERS.users['${tender_owner}'].broker} | ||
239 | + ... modification | ||
240 | + ... critical | ||
241 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
242 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
243 | + ${change_data}= Підготувати дані для оновлення властивості угоди ${tender_owner} factor ${1.1} | ||
244 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
245 | + | ||
246 | + | ||
247 | +Відображення ідентифікатора предмету у властивостях itemPriceVariation | ||
248 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
249 | + ... viewer | ||
250 | + ... ${USERS.users['${viewer}'].broker} | ||
251 | + ... modification_view | ||
252 | + ... non-critical | ||
253 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
254 | + Звірити поле угоди із значенням | ||
255 | + ... ${viewer} | ||
256 | + ... ${AGREEMENT_UAID} | ||
257 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
258 | + ... changes[1].modifications[0].itemId | ||
259 | + | ||
260 | + | ||
261 | +Відображення factor у властивостях itemPriceVariation | ||
262 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
263 | + ... viewer | ||
264 | + ... ${USERS.users['${viewer}'].broker} | ||
265 | + ... modification_view | ||
266 | + ... non-critical | ||
267 | + Звірити поле угоди із значенням | ||
268 | + ... ${viewer} | ||
269 | + ... ${AGREEMENT_UAID} | ||
270 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['factor']} | ||
271 | + ... changes[1].modifications[0].factor | ||
272 | + | ||
273 | + | ||
274 | +Можливість скасувати зміну договору itemPriceVariation | ||
275 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
276 | + ... tender_owner | ||
277 | + ... ${USERS.users['${tender_owner}'].broker} | ||
278 | + ... apply_change | ||
279 | + ... critical | ||
280 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
281 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
282 | + ${dateSigned}= create_fake_date | ||
283 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} cancelled | ||
284 | + | ||
285 | + | ||
286 | +Відображення статусу cancelled зміни itemPriceVariation | ||
287 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
288 | + ... viewer | ||
289 | + ... ${USERS.users['${viewer}'].broker} | ||
290 | + ... change_view | ||
291 | + ... critical | ||
292 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
293 | + Звірити поле угоди із значенням | ||
294 | + ... ${viewer} | ||
295 | + ... ${AGREEMENT_UAID} | ||
296 | + ... cancelled | ||
297 | + ... changes[1].status | ||
298 | + | ||
299 | + | ||
300 | +Можливість внести зміну до угоди thirdParty | ||
301 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
302 | + ... tender_owner | ||
303 | + ... ${USERS.users['${tender_owner}'].broker} | ||
304 | + ... submit_change | ||
305 | + ... critical | ||
306 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
307 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
308 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} thirdParty | ||
309 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
310 | + | ||
311 | + | ||
312 | +Відображення типу зміни thirdParty | ||
313 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
314 | + ... viewer | ||
315 | + ... ${USERS.users['${viewer}'].broker} | ||
316 | + ... change_view | ||
317 | + ... non-critical | ||
318 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
319 | + Звірити поле угоди із значенням | ||
320 | + ... ${viewer} | ||
321 | + ... ${AGREEMENT_UAID} | ||
322 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
323 | + ... changes[2].rationaleType | ||
324 | + | ||
325 | + | ||
326 | +Відображення обгрунтування зміни thirdParty | ||
327 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
328 | + ... viewer | ||
329 | + ... ${USERS.users['${viewer}'].broker} | ||
330 | + ... change_view | ||
331 | + ... non-critical | ||
332 | + Звірити поле угоди із значенням | ||
333 | + ... ${viewer} | ||
334 | + ... ${AGREEMENT_UAID} | ||
335 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
336 | + ... changes[2].rationale | ||
337 | + | ||
338 | + | ||
339 | +Можливість оновити властивості угоди для внесених змін thirdParty | ||
340 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
341 | + ... tender_owner | ||
342 | + ... ${USERS.users['${tender_owner}'].broker} | ||
343 | + ... modification | ||
344 | + ... critical | ||
345 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
346 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
347 | + Log ${USERS.users['${tender_owner}'].agreement_data} | ||
348 | + ${change_data}= Підготувати дані для оновлення властивості угоди ${tender_owner} factor ${0.97} | ||
349 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
350 | + | ||
351 | + | ||
352 | +Відображення ідентифікатора предмету у властивостях thirdParty | ||
353 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
354 | + ... viewer | ||
355 | + ... ${USERS.users['${viewer}'].broker} | ||
356 | + ... modification_view | ||
357 | + ... non-critical | ||
358 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
359 | + Звірити поле угоди із значенням | ||
360 | + ... ${viewer} | ||
361 | + ... ${AGREEMENT_UAID} | ||
362 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
363 | + ... changes[2].modifications[0].itemId | ||
364 | + | ||
365 | + | ||
366 | +Відображення factor у властивостях thirdParty | ||
367 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
368 | + ... viewer | ||
369 | + ... ${USERS.users['${viewer}'].broker} | ||
370 | + ... modification_view | ||
371 | + ... non-critical | ||
372 | + Звірити поле угоди із значенням | ||
373 | + ... ${viewer} | ||
374 | + ... ${AGREEMENT_UAID} | ||
375 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['factor']} | ||
376 | + ... changes[2].modifications[0].factor | ||
377 | + | ||
378 | + | ||
379 | +Можливість застосувати зміну договору thirdParty | ||
380 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
381 | + ... tender_owner | ||
382 | + ... ${USERS.users['${tender_owner}'].broker} | ||
383 | + ... apply_change | ||
384 | + ... critical | ||
385 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
386 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
387 | + ${dateSigned}= create_fake_date | ||
388 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} active | ||
389 | + | ||
390 | + | ||
391 | +Відображення статусу active зміни thirdParty | ||
392 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
393 | + ... viewer | ||
394 | + ... ${USERS.users['${viewer}'].broker} | ||
395 | + ... change_view | ||
396 | + ... critical | ||
397 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
398 | + Звірити поле угоди із значенням | ||
399 | + ... ${viewer} | ||
400 | + ... ${AGREEMENT_UAID} | ||
401 | + ... active | ||
402 | + ... changes[2].status | ||
403 | + | ||
404 | + | ||
405 | +Можливість внести зміну до угоди partyWithdrawal | ||
406 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
407 | + ... tender_owner | ||
408 | + ... ${USERS.users['${tender_owner}'].broker} | ||
409 | + ... submit_change | ||
410 | + ... critical | ||
411 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
412 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
413 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} partyWithdrawal | ||
414 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
415 | + | ||
416 | + | ||
417 | +Відображення типу зміни partyWithdrawal | ||
418 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
419 | + ... viewer | ||
420 | + ... ${USERS.users['${viewer}'].broker} | ||
421 | + ... change_view | ||
422 | + ... non-critical | ||
423 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
424 | + Звірити поле угоди із значенням | ||
425 | + ... ${viewer} | ||
426 | + ... ${AGREEMENT_UAID} | ||
427 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
428 | + ... changes[3].rationaleType | ||
429 | + | ||
430 | + | ||
431 | +Відображення обгрунтування зміни partyWithdrawal | ||
432 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
433 | + ... viewer | ||
434 | + ... ${USERS.users['${viewer}'].broker} | ||
435 | + ... change_view | ||
436 | + ... non-critical | ||
437 | + Звірити поле угоди із значенням | ||
438 | + ... ${viewer} | ||
439 | + ... ${AGREEMENT_UAID} | ||
440 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
441 | + ... changes[3].rationale | ||
442 | + | ||
443 | + | ||
444 | +Можливість оновити властивості угоди для внесених змін partyWithdrawal | ||
445 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
446 | + ... tender_owner | ||
447 | + ... ${USERS.users['${tender_owner}'].broker} | ||
448 | + ... modification | ||
449 | + ... critical | ||
450 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
451 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
452 | + ${change_data}= Підготувати дані для оновлення властивості угоди | ||
453 | + ... ${tender_owner} | ||
454 | + ... contractId | ||
455 | + ... ${USERS.users['${tender_owner}'].agreement_data.data['contracts'][0]['id']} | ||
456 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
457 | + | ||
458 | + | ||
459 | +Відображення ідентифікатора предмету у властивостях partyWithdrawal | ||
460 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
461 | + ... viewer | ||
462 | + ... ${USERS.users['${viewer}'].broker} | ||
463 | + ... modification_view | ||
464 | + ... non-critical | ||
465 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
466 | + Звірити поле угоди із значенням | ||
467 | + ... ${viewer} | ||
468 | + ... ${AGREEMENT_UAID} | ||
469 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
470 | + ... changes[3].modifications[0].itemId | ||
471 | + | ||
472 | + | ||
473 | +Відображення contractId у властивостях partyWithdrawal | ||
474 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
475 | + ... viewer | ||
476 | + ... ${USERS.users['${viewer}'].broker} | ||
477 | + ... modification_view | ||
478 | + ... non-critical | ||
479 | + Звірити поле угоди із значенням | ||
480 | + ... ${viewer} | ||
481 | + ... ${AGREEMENT_UAID} | ||
482 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['contractId']} | ||
483 | + ... changes[3].modifications[0].contractId | ||
484 | + | ||
485 | + | ||
486 | +Можливість скасувати зміну договору partyWithdrawal | ||
487 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
488 | + ... tender_owner | ||
489 | + ... ${USERS.users['${tender_owner}'].broker} | ||
490 | + ... apply_change | ||
491 | + ... critical | ||
492 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
493 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
494 | + ${dateSigned}= create_fake_date | ||
495 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} cancelled | ||
496 | + | ||
497 | + | ||
498 | +Відображення статусу cancelled зміни partyWithdrawal | ||
499 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
500 | + ... viewer | ||
501 | + ... ${USERS.users['${viewer}'].broker} | ||
502 | + ... change_view | ||
503 | + ... critical | ||
504 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
505 | + Звірити поле угоди із значенням | ||
506 | + ... ${viewer} | ||
507 | + ... ${AGREEMENT_UAID} | ||
508 | + ... cancelled | ||
509 | + ... changes[3].status | ||
510 | + | ||
511 | + | ||
512 | +Можливість завершити угоду | ||
513 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Завершення угоди | ||
514 | + ... tender_owner | ||
515 | + ... ${USERS.users['${tender_owner}'].broker} | ||
516 | + ... agreement_termination | ||
517 | + ... critical | ||
518 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
519 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
520 | + Run As ${tender_owner} Завершити угоду ${AGREEMENT_UAID} | ||
521 | + | ||
522 | + | ||
523 | +Звірити статус завершеної угоди | ||
524 | + [Tags] ${USERS.users['${viewer}'].broker}: Завершення угоди | ||
525 | + ... viewer | ||
526 | + ... ${USERS.users['${viewer}'].broker} | ||
527 | + ... agreement_termination | ||
528 | + ... critical | ||
529 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
530 | + Remove From Dictionary ${USERS.users['${viewer}'].agreement_data.data} status | ||
531 | + Звірити поле угоди із значенням | ||
532 | + ... ${viewer} | ||
533 | + ... ${AGREEMENT_UAID} | ||
534 | + ... terminated | ||
535 | + ... status |
@@ -1365,6 +1365,33 @@ Resource resource.robot | @@ -1365,6 +1365,33 @@ Resource resource.robot | ||
1365 | Remove File ${file_path} | 1365 | Remove File ${file_path} |
1366 | 1366 | ||
1367 | 1367 | ||
1368 | +Можливість завантажити документ для рамкової угоди користувачем ${username} | ||
1369 | + ${file_path} ${file_name} ${file_content}= create_fake_doc | ||
1370 | + ${doc_id}= get_id_from_string ${file_name} | ||
1371 | + ${doc}= Create Dictionary | ||
1372 | + ... id=${doc_id} | ||
1373 | + ... name=${file_name} | ||
1374 | + ... content=${file_content} | ||
1375 | + Set to dictionary ${USERS.users['${username}']} contract_doc=${doc} | ||
1376 | + Run As ${username} Завантажити документ в рамкову угоду ${file_path} ${USERS.users['${username}'].tender_data.data.agreements[0].agreementID} | ||
1377 | + Remove File ${file_path} | ||
1378 | + | ||
1379 | + | ||
1380 | +Можливість завантажити документ для зміни у рамковій угоді користувачем ${username} | ||
1381 | + ${file_path} ${file_name} ${file_content}= create_fake_doc | ||
1382 | + ${doc_id}= get_id_from_string ${file_name} | ||
1383 | + ${doc}= Create Dictionary | ||
1384 | + ... id=${doc_id} | ||
1385 | + ... name=${file_name} | ||
1386 | + ... content=${file_content} | ||
1387 | + Set to dictionary ${USERS.users['${username}']} contract_doc=${doc} | ||
1388 | + Run As ${username} Завантажити документ для зміни у рамковій угоді | ||
1389 | + ... ${file_path} | ||
1390 | + ... ${USERS.users['${username}'].tender_data.data.agreements[0].agreementID} | ||
1391 | + ... ${USERS.users['${username}'].agreement_data.data['items'][0]['id']} | ||
1392 | + Remove File ${file_path} | ||
1393 | + | ||
1394 | + | ||
1368 | Можливість укласти угоду для закупівлі | 1395 | Можливість укласти угоду для закупівлі |
1369 | Run as ${tender_owner} | 1396 | Run as ${tender_owner} |
1370 | ... Підтвердити підписання контракту | 1397 | ... Підтвердити підписання контракту |
@@ -43,6 +43,19 @@ Library openprocurement_client.utils | @@ -43,6 +43,19 @@ Library openprocurement_client.utils | ||
43 | [return] ${monitoring_id} | 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 | [Arguments] ${username} | 60 | [Arguments] ${username} |
48 | [Documentation] Відкрити браузер, створити об’єкти api wrapper і | 61 | [Documentation] Відкрити браузер, створити об’єкти api wrapper і |
@@ -62,7 +75,9 @@ Library openprocurement_client.utils | @@ -62,7 +75,9 @@ Library openprocurement_client.utils | ||
62 | ... prepare_plan_api_wrapper ${USERS.users['${username}'].api_key} PLANS ${API_HOST_URL} ${API_VERSION} | 75 | ... prepare_plan_api_wrapper ${USERS.users['${username}'].api_key} PLANS ${API_HOST_URL} ${API_VERSION} |
63 | ... ELSE prepare_api_wrapper ${USERS.users['${username}'].api_key} ${RESOURCE} ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper} | 76 | ... ELSE prepare_api_wrapper ${USERS.users['${username}'].api_key} ${RESOURCE} ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper} |
64 | ${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} | 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 | Set To Dictionary ${USERS.users['${username}']} client=${api_wrapper} | 79 | Set To Dictionary ${USERS.users['${username}']} client=${api_wrapper} |
80 | + Set To Dictionary ${USERS.users['${username}']} agreement_client=${agreement_wrapper} | ||
66 | Set To Dictionary ${USERS.users['${username}']} dasu_client=${dasu_api_wraper} | 81 | Set To Dictionary ${USERS.users['${username}']} dasu_client=${dasu_api_wraper} |
67 | Set To Dictionary ${USERS.users['${username}']} access_token=${EMPTY} | 82 | Set To Dictionary ${USERS.users['${username}']} access_token=${EMPTY} |
68 | ${id_map}= Create Dictionary | 83 | ${id_map}= Create Dictionary |
@@ -75,6 +90,8 @@ Library openprocurement_client.utils | @@ -75,6 +90,8 @@ Library openprocurement_client.utils | ||
75 | ${contract_api_wrapper}= prepare_contract_api_wrapper ${USERS.users['${username}'].api_key} CONTRACTS ${api_host_url} ${api_version} ${ds_api_wraper} | 90 | ${contract_api_wrapper}= prepare_contract_api_wrapper ${USERS.users['${username}'].api_key} CONTRACTS ${api_host_url} ${api_version} ${ds_api_wraper} |
76 | Set To Dictionary ${USERS.users['${username}']} contracting_client=${contract_api_wrapper} | 91 | Set To Dictionary ${USERS.users['${username}']} contracting_client=${contract_api_wrapper} |
77 | Set To Dictionary ${USERS.users['${username}']} contract_access_token=${EMPTY} | 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 | ${contracts_id_map}= Create Dictionary | 95 | ${contracts_id_map}= Create Dictionary |
79 | Set To Dictionary ${USERS.users['${username}']} contracts_id_map=${contracts_id_map} | 96 | Set To Dictionary ${USERS.users['${username}']} contracts_id_map=${contracts_id_map} |
80 | Log Variables | 97 | Log Variables |
@@ -258,6 +275,16 @@ Library openprocurement_client.utils | @@ -258,6 +275,16 @@ Library openprocurement_client.utils | ||
258 | [return] ${monitoring} | 275 | [return] ${monitoring} |
259 | 276 | ||
260 | 277 | ||
278 | +Пошук угоди по ідентифікатору | ||
279 | + [Arguments] ${username} ${agreement_uaid} ${save_key}=agreement_data | ||
280 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
281 | + ${agreement}= Call Method ${USERS.users['${username}'].agreement_client} get_agreement ${internalid} | ||
282 | + Set To Dictionary ${USERS.users['${username}']} ${save_key}=${agreement} | ||
283 | + ${agreement}= munch_dict arg=${agreement} | ||
284 | + Log ${agreement} | ||
285 | + [return] ${agreement} | ||
286 | + | ||
287 | + | ||
261 | Отримати доступ до об'єкта моніторингу | 288 | Отримати доступ до об'єкта моніторингу |
262 | [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring | 289 | [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring |
263 | ${token}= Set Variable ${USERS.users['${username}'].access_token} | 290 | ${token}= Set Variable ${USERS.users['${username}'].access_token} |
@@ -1295,7 +1322,7 @@ Library openprocurement_client.utils | @@ -1295,7 +1322,7 @@ Library openprocurement_client.utils | ||
1295 | 1322 | ||
1296 | 1323 | ||
1297 | Завантажити документ в ставку | 1324 | Завантажити документ в ставку |
1298 | - [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents | 1325 | + [Arguments] ${username} ${path} ${tender_uaid} ${doc_name}=documents ${doc_type}=${None} |
1299 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} | 1326 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} |
1300 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 1327 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
1301 | ${tender}= set_access_key ${tender} ${USERS.users['${username}']['access_token']} | 1328 | ${tender}= set_access_key ${tender} ${USERS.users['${username}']['access_token']} |
@@ -1303,7 +1330,9 @@ Library openprocurement_client.utils | @@ -1303,7 +1330,9 @@ Library openprocurement_client.utils | ||
1303 | ... ${path} | 1330 | ... ${path} |
1304 | ... ${tender.data.id} | 1331 | ... ${tender.data.id} |
1305 | ... ${bid_id} | 1332 | ... ${bid_id} |
1333 | + ... doc_type=${doc_type} | ||
1306 | ... access_token=${tender.access.token} | 1334 | ... access_token=${tender.access.token} |
1335 | + ... subitem_name=${doc_name} | ||
1307 | ${uploaded_file} = Create Dictionary | 1336 | ${uploaded_file} = Create Dictionary |
1308 | ... filepath=${path} | 1337 | ... filepath=${path} |
1309 | ... upload_response=${response} | 1338 | ... upload_response=${response} |
@@ -2039,3 +2068,102 @@ Library openprocurement_client.utils | @@ -2039,3 +2068,102 @@ Library openprocurement_client.utils | ||
2039 | ${document}= get_document_by_id ${tender.data} ${doc_id} | 2068 | ${document}= get_document_by_id ${tender.data} ${doc_id} |
2040 | ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title} | 2069 | ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title} |
2041 | [return] ${filename} | 2070 | [return] ${filename} |
2071 | + | ||
2072 | + | ||
2073 | +Отримати доступ до угоди | ||
2074 | + [Arguments] ${username} ${agreement_uaid} | ||
2075 | + ${token}= Set Variable ${USERS.users['${username}'].access_token} | ||
2076 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
2077 | + ${agreement}= Call Method ${USERS.users['${username}'].agreement_client} patch_credentials ${internalid} ${token} | ||
2078 | + Set To Dictionary ${USERS.users['${username}']} agreement_access_token=${agreement.access.token} | ||
2079 | + ${agreement}= munch_dict arg=${agreement} | ||
2080 | + [return] ${agreement} | ||
2081 | + | ||
2082 | + | ||
2083 | +Внести зміну в угоду | ||
2084 | + [Arguments] ${username} ${agreement_uaid} ${change_data} | ||
2085 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
2086 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} create_change | ||
2087 | + ... ${internalid} | ||
2088 | + ... ${change_data} | ||
2089 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
2090 | + Log ${reply} | ||
2091 | + | ||
2092 | + | ||
2093 | +Застосувати зміну для угоди | ||
2094 | + [Arguments] ${username} ${agreement_uaid} ${dateSigned} ${status} | ||
2095 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
2096 | + ${data}= Create Dictionary status=${status} dateSigned=${dateSigned} | ||
2097 | + ${data}= Create Dictionary data=${data} | ||
2098 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_change | ||
2099 | + ... ${agreement.data.id} | ||
2100 | + ... ${data} | ||
2101 | + ... ${agreement.data.changes[-1].id} | ||
2102 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
2103 | + Log ${reply} | ||
2104 | + | ||
2105 | + | ||
2106 | +Оновити властивості угоди | ||
2107 | + [Arguments] ${username} ${agreement_uaid} ${data} | ||
2108 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
2109 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_change | ||
2110 | + ... ${agreement.data.id} | ||
2111 | + ... ${data} | ||
2112 | + ... ${agreement.data.changes[-1].id} | ||
2113 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
2114 | + Log ${reply} | ||
2115 | + | ||
2116 | + | ||
2117 | +Завантажити документ в рамкову угоду | ||
2118 | + [Arguments] ${username} ${filepath} ${agreement_uaid} | ||
2119 | + Log ${username} | ||
2120 | + Log ${agreement_uaid} | ||
2121 | + Log ${filepath} | ||
2122 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
2123 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} upload_document | ||
2124 | + ... ${filepath} | ||
2125 | + ... ${agreement.data.id} | ||
2126 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
2127 | + Log Object Data ${reply} reply | ||
2128 | + [return] ${reply} | ||
2129 | + | ||
2130 | + | ||
2131 | +Завантажити документ для зміни у рамковій угоді | ||
2132 | + [Arguments] ${username} ${filepath} ${agreement_uaid} ${item_id} | ||
2133 | + Log ${username} | ||
2134 | + Log ${agreement_uaid} | ||
2135 | + Log ${filepath} | ||
2136 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
2137 | + ${document}= openprocurement_client.Завантажити документ в рамкову угоду ${username} ${filepath} ${agreement_uaid} | ||
2138 | + Set to dictionary ${document.data} documentOf=change | ||
2139 | + Set to dictionary ${document.data} relatedItem=${item_id} | ||
2140 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_document | ||
2141 | + ... ${agreement.data.id} | ||
2142 | + ... ${document} | ||
2143 | + ... ${document.data.id} | ||
2144 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
2145 | + [return] ${reply} | ||
2146 | + | ||
2147 | + | ||
2148 | +Завершити угоду | ||
2149 | + [Arguments] ${username} ${agreement_uaid} | ||
2150 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
2151 | + ${data}= Create Dictionary status=terminated | ||
2152 | + ${data}= Create Dictionary data=${data} | ||
2153 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_agreement | ||
2154 | + ... ${internalid} | ||
2155 | + ... ${data} | ||
2156 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
2157 | + | ||
2158 | + | ||
2159 | +Отримати інформацію із угоди | ||
2160 | + [Arguments] ${username} ${agreement_uaid} ${field_name} | ||
2161 | + openprocurement_client.Пошук угоди по ідентифікатору | ||
2162 | + ... ${username} | ||
2163 | + ... ${agreement_uaid} | ||
2164 | + ${status} ${field_value}= Run Keyword And Ignore Error | ||
2165 | + ... Get From Object | ||
2166 | + ... ${USERS.users['${username}'].agreement_data.data} | ||
2167 | + ... ${field_name} | ||
2168 | + Run Keyword If '${status}' == 'PASS' Return From Keyword ${field_value} | ||
2169 | + Fail Field not found: ${field_name} |
1 | from openprocurement_client.resources.tenders import Client | 1 | from openprocurement_client.resources.tenders import Client |
2 | from openprocurement_client.resources.edr import EDRClient | 2 | from openprocurement_client.resources.edr import EDRClient |
3 | +from openprocurement_client.resources.agreements import AgreementClient | ||
3 | from openprocurement_client.dasu_client import DasuClient | 4 | from openprocurement_client.dasu_client import DasuClient |
4 | from openprocurement_client.resources.document_service import DocumentServiceClient | 5 | from openprocurement_client.resources.document_service import DocumentServiceClient |
5 | from openprocurement_client.resources.plans import PlansClient | 6 | from openprocurement_client.resources.plans import PlansClient |
@@ -34,6 +35,13 @@ class StableDsClient(DocumentServiceClient): | @@ -34,6 +35,13 @@ class StableDsClient(DocumentServiceClient): | ||
34 | return super(StableDsClient, self).request(*args, **kwargs) | 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 | def prepare_api_wrapper(key, resource, host_url, api_version, ds_client=None): | 45 | def prepare_api_wrapper(key, resource, host_url, api_version, ds_client=None): |
38 | return StableClient(key, resource, host_url, api_version, | 46 | return StableClient(key, resource, host_url, api_version, |
39 | ds_client=ds_client) | 47 | ds_client=ds_client) |
@@ -43,6 +51,11 @@ def prepare_ds_api_wrapper(ds_host_url, auth_ds): | @@ -43,6 +51,11 @@ def prepare_ds_api_wrapper(ds_host_url, auth_ds): | ||
43 | return StableDsClient(ds_host_url, auth_ds) | 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 | class ContractingStableClient(ContractingClient): | 59 | class ContractingStableClient(ContractingClient): |
47 | @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed) | 60 | @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed) |
48 | def request(self, *args, **kwargs): | 61 | def request(self, *args, **kwargs): |
@@ -650,6 +650,32 @@ def test_change_data(): | @@ -650,6 +650,32 @@ def test_change_data(): | ||
650 | }) | 650 | }) |
651 | 651 | ||
652 | 652 | ||
653 | +def test_agreement_change_data(rationaleType): | ||
654 | + return munchify( | ||
655 | + { | ||
656 | + "data": | ||
657 | + { | ||
658 | + "rationale": fake.description(), | ||
659 | + "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True), | ||
660 | + "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True), | ||
661 | + "rationaleType": rationaleType, | ||
662 | + } | ||
663 | + }) | ||
664 | + | ||
665 | + | ||
666 | +def test_modification_data(item_id, field_name, field_value): | ||
667 | + data = { | ||
668 | + "modifications": [ | ||
669 | + { | ||
670 | + "itemId": item_id, | ||
671 | + field_name: field_value | ||
672 | + } | ||
673 | + ] | ||
674 | + } | ||
675 | + return munchify({'data':data}) | ||
676 | + | ||
677 | + | ||
678 | + | ||
653 | def get_hash(file_contents): | 679 | def get_hash(file_contents): |
654 | return ("md5:"+hashlib.md5(file_contents).hexdigest()) | 680 | return ("md5:"+hashlib.md5(file_contents).hexdigest()) |
655 | 681 |
@@ -340,6 +340,25 @@ Get Broker Property By Username | @@ -340,6 +340,25 @@ Get Broker Property By Username | ||
340 | [Return] ${change_data} | 340 | [Return] ${change_data} |
341 | 341 | ||
342 | 342 | ||
343 | +Підготувати дані про зміну до угоди | ||
344 | + [Arguments] ${username} ${rationaleType} | ||
345 | + ${change_data}= test_agreement_change_data ${rationaleType} | ||
346 | + Set To Dictionary ${USERS.users['${username}']} change_data=${change_data} | ||
347 | + Log ${change_data} | ||
348 | + [Return] ${change_data} | ||
349 | + | ||
350 | + | ||
351 | +Підготувати дані для оновлення властивості угоди | ||
352 | + [Arguments] ${username} ${field_name} ${field_value} | ||
353 | + ${modification_data}= test_modification_data | ||
354 | + ... ${USERS.users['${username}'].agreement_data.data['items'][0]['id']} | ||
355 | + ... ${field_name} | ||
356 | + ... ${field_value} | ||
357 | + Set To Dictionary ${USERS.users['${username}']} modification_data=${modification_data} | ||
358 | + Log ${modification_data} | ||
359 | + [Return] ${modification_data} | ||
360 | + | ||
361 | + | ||
343 | Адаптувати дані для оголошення тендера | 362 | Адаптувати дані для оголошення тендера |
344 | [Arguments] ${tender_data} | 363 | [Arguments] ${tender_data} |
345 | # munchify is used to make deep copy of ${tender_data} | 364 | # munchify is used to make deep copy of ${tender_data} |
@@ -530,6 +549,12 @@ Log differences between dicts | @@ -530,6 +549,12 @@ Log differences between dicts | ||
530 | Порівняти об'єкти ${left} ${right} | 549 | Порівняти об'єкти ${left} ${right} |
531 | 550 | ||
532 | 551 | ||
552 | +Звірити поле угоди із значенням | ||
553 | + [Arguments] ${username} ${agreement_uaid} ${left} ${field} | ||
554 | + ${right}= Run As ${username} Отримати інформацію із угоди ${agreement_uaid} ${field} | ||
555 | + Порівняти об'єкти ${left} ${right} | ||
556 | + | ||
557 | + | ||
533 | Звірити поле зміни до договору | 558 | Звірити поле зміни до договору |
534 | [Arguments] ${username} ${contract_uaid} ${change_data} ${field} | 559 | [Arguments] ${username} ${contract_uaid} ${change_data} ${field} |
535 | ${left}= get_from_object ${change_data.data} ${field} | 560 | ${left}= get_from_object ${change_data.data} ${field} |
@@ -690,6 +715,24 @@ Log differences between dicts | @@ -690,6 +715,24 @@ Log differences between dicts | ||
690 | [return] ${field_value} | 715 | [return] ${field_value} |
691 | 716 | ||
692 | 717 | ||
718 | +Отримати дані із угоди | ||
719 | + [Arguments] ${username} ${agreement_uaid} ${field_name} | ||
720 | + ${status} ${field_value}= Run keyword and ignore error | ||
721 | + ... get_from_object | ||
722 | + ... ${USERS.users['${username}'].agreement_data.data} | ||
723 | + ... ${field_name} | ||
724 | + # If field in cache, return its value | ||
725 | + Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value} | ||
726 | + # Else call broker to find field | ||
727 | + ${field_value}= Run As ${username} Отримати інформацію із угоди ${agreement_uaid} ${field_name} | ||
728 | + # And caching its value before return | ||
729 | + Set_To_Object ${USERS.users['${username}'].agreement_data.data} ${field_name} ${field_value} | ||
730 | + ${data}= munch_dict arg=${USERS.users['${username}'].agreement_data.data} | ||
731 | + Set To Dictionary ${USERS.users['${username}'].agreement_data} data=${data} | ||
732 | + Log ${USERS.users['${username}'].agreement_data.data} | ||
733 | + [return] ${field_value} | ||
734 | + | ||
735 | + | ||
693 | Отримати дані із об'єкта моніторингу | 736 | Отримати дані із об'єкта моніторингу |
694 | [Arguments] ${username} ${monitoring_uaid} ${field_name} ${object_id}=${Empty} | 737 | [Arguments] ${username} ${monitoring_uaid} ${field_name} ${object_id}=${Empty} |
695 | ${status} ${field_value}= Run keyword and ignore error | 738 | ${status} ${field_value}= Run keyword and ignore error |
@@ -1779,7 +1779,17 @@ ${MOZ_INTEGRATION} ${False} | @@ -1779,7 +1779,17 @@ ${MOZ_INTEGRATION} ${False} | ||
1779 | ... openeu_add_financial_bid_doc_by_provider | 1779 | ... openeu_add_financial_bid_doc_by_provider |
1780 | ... critical | 1780 | ... critical |
1781 | [Teardown] Оновити LAST_MODIFICATION_DATE | 1781 | [Teardown] Оновити LAST_MODIFICATION_DATE |
1782 | - Можливість завантажити financial_documents документ до пропозиції учасником ${provider} | 1782 | + Можливість завантажити документ до пропозиції учасником ${provider} financial_documents |
1783 | + | ||
1784 | + | ||
1785 | +Можливість завантажити фінансовий документ winningBid до пропозиції першим учасником | ||
1786 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
1787 | + ... provider | ||
1788 | + ... ${USERS.users['${provider}'].broker} | ||
1789 | + ... add_winningBid_doc_by_provider | ||
1790 | + ... critical | ||
1791 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
1792 | + Можливість завантажити документ до пропозиції учасником ${provider} financial_documents winningBid | ||
1783 | 1793 | ||
1784 | 1794 | ||
1785 | Можливість завантажити кваліфікаційний документ до пропозиції першим учасником | 1795 | Можливість завантажити кваліфікаційний документ до пропозиції першим учасником |
@@ -1789,7 +1799,7 @@ ${MOZ_INTEGRATION} ${False} | @@ -1789,7 +1799,7 @@ ${MOZ_INTEGRATION} ${False} | ||
1789 | ... openeu_add_qualification_bid_doc_by_provider | 1799 | ... openeu_add_qualification_bid_doc_by_provider |
1790 | ... critical | 1800 | ... critical |
1791 | [Teardown] Оновити LAST_MODIFICATION_DATE | 1801 | [Teardown] Оновити LAST_MODIFICATION_DATE |
1792 | - Можливість завантажити qualification_documents документ до пропозиції учасником ${provider} | 1802 | + Можливість завантажити документ до пропозиції учасником ${provider} qualification_documents |
1793 | 1803 | ||
1794 | 1804 | ||
1795 | Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником | 1805 | Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником |
@@ -1799,7 +1809,7 @@ ${MOZ_INTEGRATION} ${False} | @@ -1799,7 +1809,7 @@ ${MOZ_INTEGRATION} ${False} | ||
1799 | ... openeu_add_eligibility_bid_doc_by_provider | 1809 | ... openeu_add_eligibility_bid_doc_by_provider |
1800 | ... critical | 1810 | ... critical |
1801 | [Teardown] Оновити LAST_MODIFICATION_DATE | 1811 | [Teardown] Оновити LAST_MODIFICATION_DATE |
1802 | - Можливість завантажити eligibility_documents документ до пропозиції учасником ${provider} | 1812 | + Можливість завантажити документ до пропозиції учасником ${provider} eligibility_documents |
1803 | 1813 | ||
1804 | 1814 | ||
1805 | Неможливість задати запитання на тендер після завершення періоду уточнень | 1815 | Неможливість задати запитання на тендер після завершення періоду уточнень |
@@ -62,6 +62,8 @@ from .initial_data import ( | @@ -62,6 +62,8 @@ from .initial_data import ( | ||
62 | test_status_data, | 62 | test_status_data, |
63 | test_elimination_report, | 63 | test_elimination_report, |
64 | test_tender_data_esco, | 64 | test_tender_data_esco, |
65 | + test_modification_data, | ||
66 | + test_agreement_change_data, | ||
65 | create_fake_title, | 67 | create_fake_title, |
66 | create_fake_value_amount, | 68 | create_fake_value_amount, |
67 | test_change_document_data, | 69 | test_change_document_data, |
@@ -12,6 +12,7 @@ | @@ -12,6 +12,7 @@ | ||
12 | -i find_tender | 12 | -i find_tender |
13 | 13 | ||
14 | -i tender_view | 14 | -i tender_view |
15 | +-i tender_view_value | ||
15 | -i tender_view_unit_code | 16 | -i tender_view_unit_code |
16 | -i tender_view_coordinates | 17 | -i tender_view_coordinates |
17 | -i tender_view_framework | 18 | -i tender_view_framework |
@@ -58,6 +59,7 @@ | @@ -58,6 +59,7 @@ | ||
58 | -i openeu_add_financial_bid_doc_by_provider | 59 | -i openeu_add_financial_bid_doc_by_provider |
59 | -i openeu_add_qualification_bid_doc_by_provider | 60 | -i openeu_add_qualification_bid_doc_by_provider |
60 | -i openeu_add_eligibility_bid_doc_by_provider | 61 | -i openeu_add_eligibility_bid_doc_by_provider |
62 | +-i add_winningBid_doc_by_provider | ||
61 | 63 | ||
62 | -i pre-qualification_add_doc_to_tender | 64 | -i pre-qualification_add_doc_to_tender |
63 | -i pre-qualification_add_doc_to_lot | 65 | -i pre-qualification_add_doc_to_lot |
@@ -76,6 +78,7 @@ | @@ -76,6 +78,7 @@ | ||
76 | -i pre-qualification_approve_qualifications | 78 | -i pre-qualification_approve_qualifications |
77 | 79 | ||
78 | -i auction_url | 80 | -i auction_url |
81 | +-i auction | ||
79 | 82 | ||
80 | -i qualification_add_doc_to_first_award | 83 | -i qualification_add_doc_to_first_award |
81 | -i qualification_approve_first_award | 84 | -i qualification_approve_first_award |
@@ -92,4 +95,13 @@ | @@ -92,4 +95,13 @@ | ||
92 | -i contract_stand_still | 95 | -i contract_stand_still |
93 | -i awarding_approve_first_award | 96 | -i awarding_approve_first_award |
94 | -i modify_agreement | 97 | -i modify_agreement |
95 | --i agreement_registration | ||
98 | +-i agreement_registration | ||
99 | + | ||
100 | + | ||
101 | +-i find_agreement | ||
102 | +-i add_agreement_doc | ||
103 | +-i submit_change | ||
104 | +-i change_view | ||
105 | +-i modification | ||
106 | +-i modification_view | ||
107 | +-i apply_change |
Please
register
or
login
to post a comment