Commit a5bef35d5d43cea0cac46683e257623f67e409da
Merge pull request #46 from Leits/openua
Add test for openUA tenders
Showing
4 changed files
with
285 additions
and
1 deletions
... | ... | @@ -77,6 +77,9 @@ Library openprocurement_client_helper.py |
77 | 77 | [Arguments] ${username} ${tender_uid} ${fieldname} ${fieldvalue} |
78 | 78 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} |
79 | 79 | Set_To_Object ${tender.data} ${fieldname} ${fieldvalue} |
80 | + ${procurementMethodType}= Get From Object ${tender.data} procurementMethodType | |
81 | + Run Keyword If '${procurementMethodType}' == 'aboveThresholdUA' | |
82 | + ... Remove From Dictionary ${tender.data} enquiryPeriod | |
80 | 83 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
81 | 84 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
82 | 85 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} | ... | ... |
... | ... | @@ -579,3 +579,16 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af" |
579 | 579 | lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} |
580 | 580 | lot_complaint.update(complaint.data) |
581 | 581 | return munchify({"data": lot_complaint}) |
582 | + | |
583 | + | |
584 | +def test_tender_data_openua(intervals, accelerator=0): | |
585 | + t_data = test_tender_data(intervals) | |
586 | + now = get_now() | |
587 | + t_data['procurementMethodType'] = 'aboveThresholdUA' | |
588 | + t_data['procurementMethodDetails'] = 'quick, accelerator={}'.format(accelerator) | |
589 | + t_data["tenderPeriod"] = { | |
590 | + "startDate": (now).isoformat(), | |
591 | + "endDate": (now + timedelta(minutes=15)).isoformat() | |
592 | + } | |
593 | + del t_data["enquiryPeriod"] | |
594 | + return t_data | ... | ... |
op_robot_tests/tests_files/openUA.robot
0 → 100644
1 | +*** Settings *** | |
2 | +Resource keywords.robot | |
3 | +Resource resource.robot | |
4 | +Suite Setup TestSuiteSetup | |
5 | +Suite Teardown Close all browsers | |
6 | + | |
7 | +*** Variables *** | |
8 | +${mode} openua | |
9 | + | |
10 | +${role} viewer | |
11 | +${broker} Quinta | |
12 | + | |
13 | + | |
14 | +*** Test Cases *** | |
15 | +Можливість оголосити понадпороговий однопредметний тендер | |
16 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | |
17 | + ... tender_owner | |
18 | + ... ${USERS.users['${tender_owner}'].broker} | |
19 | + ... minimal | |
20 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера) | |
21 | + ${tender_data}= Підготовка початкових даних | |
22 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | |
23 | + ${LAST_MODIFICATION_DATE}= Get Current TZdate | |
24 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | |
25 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | |
26 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | |
27 | + Log ${TENDER} | |
28 | + | |
29 | +Пошук позапорогового однопредметного тендера по ідентифікатору | |
30 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | |
31 | + ... viewer tender_owner provider provider1 | |
32 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
33 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
34 | + ... minimal | |
35 | + ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | |
36 | + :FOR ${username} IN @{usernames} | |
37 | + \ Дочекатись синхронізації з майданчиком ${username} | |
38 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
39 | + | |
40 | +Відображення типу закупівлі оголошеного тендер | |
41 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | |
42 | + ... viewer | |
43 | + ... ${USERS.users['${viewer}'].broker} | |
44 | + Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procurementMethodType | |
45 | + | |
46 | +Відображення початку періоду прийому пропозицій оголошеного тендера | |
47 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | |
48 | + ... viewer | |
49 | + ... ${USERS.users['${viewer}'].broker} | |
50 | + ... minimal | |
51 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | |
52 | + :FOR ${username} IN @{usernames} | |
53 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | |
54 | + | |
55 | +Відображення закінчення періоду прийому пропозицій оголошеного тендера | |
56 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | |
57 | + ... viewer | |
58 | + ... ${USERS.users['${viewer}'].broker} | |
59 | + ... minimal | |
60 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | |
61 | + :FOR ${username} IN @{usernames} | |
62 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | |
63 | + | |
64 | +Можливість подати вимогу на умови більше ніж за 10 днів до завершення періоду подання пропозицій | |
65 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | |
66 | + ... provider | |
67 | + ... ${USERS.users['${provider}'].broker} | |
68 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | |
69 | + ${claim}= Get From List ${COMPLAINTS} 0 | |
70 | + Set To Dictionary ${claim.data} status claim | |
71 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${claim} | |
72 | + ${complaints}= Create Dictionary | |
73 | + Set To Dictionary ${complaints} claim0 ${claim} | |
74 | + Set To Dictionary ${USERS.users['${provider}']} complaints ${complaints} | |
75 | + | |
76 | +Можливість скасувати вимогу на умови | |
77 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | |
78 | + ... provider | |
79 | + ... ${USERS.users['${provider}'].broker} | |
80 | + ${claim}= Get From Dictionary ${USERS.users['${provider}'].complaints} claim0 | |
81 | + Set To Dictionary ${claim.data} status cancelled | |
82 | + Set To Dictionary ${claim.data} cancellationReason test_draft_cancellation | |
83 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${claim} | |
84 | + | |
85 | + | |
86 | +Подати цінову пропозицію першим учасником після оголошення тендеру | |
87 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | |
88 | + ... provider | |
89 | + ... ${USERS.users['${provider}'].broker} | |
90 | + ${bid}= test bid data | |
91 | + Log ${bid} | |
92 | + ${bidresponses}= Create Dictionary | |
93 | + Set To Dictionary ${bidresponses} bid ${bid} | |
94 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | |
95 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | |
96 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | |
97 | + log ${resp} | |
98 | + | |
99 | +Подати цінову пропозицію другим учасником | |
100 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | |
101 | + ... provider1 | |
102 | + ... ${USERS.users['${provider1}'].broker} | |
103 | + ${bid}= test bid data | |
104 | + Log ${bid} | |
105 | + ${bidresponses}= Create Dictionary | |
106 | + Set To Dictionary ${bidresponses} bid ${bid} | |
107 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | |
108 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | |
109 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | |
110 | + log ${resp} | |
111 | + | |
112 | +Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій | |
113 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | |
114 | + ... tender_owner | |
115 | + ... ${USERS.users['${tender_owner}'].broker} | |
116 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | |
117 | + | |
118 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю | |
119 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | |
120 | + ... provider provider1 | |
121 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
122 | + ${usernames}= Create List ${provider} ${provider1} | |
123 | + :FOR ${username} IN @{usernames} | |
124 | + \ Дочекатись синхронізації з майданчиком ${username} | |
125 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
126 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | |
127 | + \ Should Be Equal ${bid.data.status} invalid | |
128 | + \ Log ${bid} | |
129 | + | |
130 | + | |
131 | +Оновити статус цінової пропозиції першого учасника | |
132 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | |
133 | + ... provider | |
134 | + ... ${USERS.users['${provider}'].broker} | |
135 | + ${activestatusresp}= create_data_dict data.status active | |
136 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${activestatusresp} | |
137 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | |
138 | + log ${activestatusresp} | |
139 | + | |
140 | +Cкасувати цінову пропозицію другого учасника | |
141 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | |
142 | + ... provider1 | |
143 | + ... ${USERS.users['${provider1}'].broker} | |
144 | + ${bid}= Get Variable Value ${USERS.users['${provider1}'].bidresponses['resp']} | |
145 | + ${bidresponses}= Викликати для учасника ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | |
146 | + | |
147 | +Повторно подати цінову пропозицію другим учасником після першої зміни | |
148 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | |
149 | + ... provider1 | |
150 | + ... ${USERS.users['${provider1}'].broker} | |
151 | + ${bid}= test bid data | |
152 | + Log ${bid} | |
153 | + ${bidresponses}= Create Dictionary | |
154 | + Set To Dictionary ${bidresponses} bid ${bid} | |
155 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | |
156 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | |
157 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | |
158 | + log ${resp} | |
159 | + | |
160 | +Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій | |
161 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | |
162 | + ... tender_owner | |
163 | + ... ${USERS.users['${tender_owner}'].broker} | |
164 | + ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6 | |
165 | + Дочекатись дати ${no_edit_time} | |
166 | + Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} description description | |
167 | + | |
168 | +Неможливість подати вимогу на умови менше ніж за 10 днів до завершення періоду подання пропозицій | |
169 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | |
170 | + ... provider | |
171 | + ... ${USERS.users['${provider}'].broker} | |
172 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | |
173 | + ${claim}= Get From List ${COMPLAINTS} 0 | |
174 | + Set To Dictionary ${claim.data} status claim | |
175 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${claim} | |
176 | + | |
177 | + | |
178 | +Продовжити період редагування подання пропозиції на 7 днів | |
179 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | |
180 | + ... tender_owner | |
181 | + ... ${USERS.users['${tender_owner}'].broker} | |
182 | + ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7 | |
183 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} tenderPeriod.endDate ${endDate} | |
184 | + | |
185 | + | |
186 | +Можливість подати скаргу на умови більше ніж за 4 дні до завершення періоду подання пропозицій | |
187 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | |
188 | + ... provider | |
189 | + ... ${USERS.users['${provider}'].broker} | |
190 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | |
191 | + Дочекатись синхронізації з майданчиком ${provider} | |
192 | + ${complaint}= Get From List ${COMPLAINTS} 0 | |
193 | + Set To Dictionary ${complaint.data} status pending | |
194 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${complaint} | |
195 | + Set To Dictionary ${USERS.users['${provider}'].complaints} complaint ${complaint} | |
196 | + | |
197 | + | |
198 | +Можливість скасувати скаргу на умови | |
199 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | |
200 | + ... provider | |
201 | + ... ${USERS.users['${provider}'].broker} | |
202 | + ${complaint}= Get From Dictionary ${USERS.users['${provider}'].complaints} complaint | |
203 | + Set To Dictionary ${complaint.data} status cancelled | |
204 | + Set To Dictionary ${complaint.data} cancellationReason test_draft_cancellation | |
205 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${complaint} | |
206 | + | |
207 | + | |
208 | + | |
209 | +Можливість редагувати однопредметний тендер після продовження періоду подання пропозицій | |
210 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | |
211 | + ... tender_owner | |
212 | + ... ${USERS.users['${tender_owner}'].broker} | |
213 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | |
214 | + | |
215 | + | |
216 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю після другої зміни | |
217 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | |
218 | + ... provider provider1 | |
219 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
220 | + ${usernames}= Create List ${provider} ${provider1} | |
221 | + :FOR ${username} IN @{usernames} | |
222 | + \ Дочекатись синхронізації з майданчиком ${username} | |
223 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
224 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | |
225 | + \ Should Be Equal ${bid.data.status} invalid | |
226 | + \ Log ${bid} | |
227 | + | |
228 | + | |
229 | +Можливість оновити статус цінової пропозиції першого учасника після другої зміни | |
230 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | |
231 | + ... provider | |
232 | + ... ${USERS.users['${provider}'].broker} | |
233 | + ${activestatusresp}= create_data_dict data.status active | |
234 | + Log ${USERS.users['${provider}'].bidresponses['resp'].data.status} | |
235 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${activestatusresp} | |
236 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | |
237 | + log ${activestatusresp} | |
238 | + | |
239 | + | |
240 | +Повторно подати цінову пропозицію другим учасником після другої зміни | |
241 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | |
242 | + ... provider1 | |
243 | + ... ${USERS.users['${provider1}'].broker} | |
244 | + ${bid}= test bid data | |
245 | + Log ${bid} | |
246 | + ${bidresponses}= Create Dictionary | |
247 | + Set To Dictionary ${bidresponses} bid ${bid} | |
248 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | |
249 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | |
250 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | |
251 | + log ${resp} | |
252 | + | |
253 | + | |
254 | +Неможливість подати скаргу на умови менше ніж за 4 дні до завершення періоду подання пропозицій | |
255 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | |
256 | + ... provider | |
257 | + ... ${USERS.users['${provider}'].broker} | |
258 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | |
259 | + Log ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate} | |
260 | + Дочекатись Дати ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate} | |
261 | + Дочекатись синхронізації з майданчиком ${provider} | |
262 | + ${complaint}= Get From List ${COMPLAINTS} 0 | |
263 | + Set To Dictionary ${complaint.data} status pending | |
264 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} | ... | ... |
... | ... | @@ -21,7 +21,7 @@ from .initial_data import ( |
21 | 21 | test_lots_bid_data, test_meat_tender_data, test_question_answer_data, |
22 | 22 | test_question_data, test_supplier_data, test_tender_data, |
23 | 23 | test_tender_data_limited, test_tender_data_multiple_items, |
24 | - test_tender_data_multiple_lots | |
24 | + test_tender_data_multiple_lots, test_tender_data_openua | |
25 | 25 | ) |
26 | 26 | from .local_time import get_now, TZ |
27 | 27 | import os |
... | ... | @@ -33,6 +33,10 @@ def get_current_tzdate(): |
33 | 33 | return get_now().strftime('%Y-%m-%d %H:%M:%S.%f') |
34 | 34 | |
35 | 35 | |
36 | +def add_minutes_to_date(date, minutes): | |
37 | + return (parse_date(date) + timedelta(minutes=int(minutes))).isoformat() | |
38 | + | |
39 | + | |
36 | 40 | def get_file_contents(path): |
37 | 41 | with open(path, 'r') as f: |
38 | 42 | return unicode(f.read()) or u'' | ... | ... |
Please
register
or
login
to post a comment