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,6 +77,9 @@ Library openprocurement_client_helper.py | ||
77 | [Arguments] ${username} ${tender_uid} ${fieldname} ${fieldvalue} | 77 | [Arguments] ${username} ${tender_uid} ${fieldname} ${fieldvalue} |
78 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | 78 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} |
79 | Set_To_Object ${tender.data} ${fieldname} ${fieldvalue} | 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 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 83 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
81 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 84 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
82 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} | 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,3 +579,16 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af" | ||
579 | lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | 579 | lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} |
580 | lot_complaint.update(complaint.data) | 580 | lot_complaint.update(complaint.data) |
581 | return munchify({"data": lot_complaint}) | 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,7 +21,7 @@ from .initial_data import ( | ||
21 | test_lots_bid_data, test_meat_tender_data, test_question_answer_data, | 21 | test_lots_bid_data, test_meat_tender_data, test_question_answer_data, |
22 | test_question_data, test_supplier_data, test_tender_data, | 22 | test_question_data, test_supplier_data, test_tender_data, |
23 | test_tender_data_limited, test_tender_data_multiple_items, | 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 | from .local_time import get_now, TZ | 26 | from .local_time import get_now, TZ |
27 | import os | 27 | import os |
@@ -33,6 +33,10 @@ def get_current_tzdate(): | @@ -33,6 +33,10 @@ def get_current_tzdate(): | ||
33 | return get_now().strftime('%Y-%m-%d %H:%M:%S.%f') | 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 | def get_file_contents(path): | 40 | def get_file_contents(path): |
37 | with open(path, 'r') as f: | 41 | with open(path, 'r') as f: |
38 | return unicode(f.read()) or u'' | 42 | return unicode(f.read()) or u'' |
Please
register
or
login
to post a comment