Commit ea70f3964f973e0a8b6929ecc8ce5619e2a73813
Merge pull request #664 from Viktoriia-Kokuienko/master
New below_funders scenario
Showing
10 changed files
with
536 additions
and
5 deletions
... | ... | @@ -73,6 +73,17 @@ Resource resource.robot |
73 | 73 | Run as ${username} Пошук плану по ідентифікатору ${TENDER['TENDER_UAID']} |
74 | 74 | |
75 | 75 | |
76 | +Можливість знайти тендер за кошти донора для усіх користувачів | |
77 | + :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer} | |
78 | + \ Можливість знайти тендер за кошти донора для користувача ${username} | |
79 | + | |
80 | + | |
81 | +Можливість знайти тендер за кошти донора для користувача ${username} | |
82 | + Дочекатись синхронізації з майданчиком ${username} | |
83 | + ${funder_id}= Set Variable ${USERS.users['${tender_owner}'].initial_data.data['funders'][0]['identifier']['id']} | |
84 | + Run as ${username} Пошук тендера за кошти донора ${funder_id} | |
85 | + | |
86 | + | |
76 | 87 | Можливість знайти тендер по ідентифікатору ${tender_id} та зберегти його в ${save_location} для користувача ${username} |
77 | 88 | Дочекатись синхронізації з майданчиком ${username} |
78 | 89 | Run as ${username} Пошук тендера по ідентифікатору ${tender_id} ${save_location} |
... | ... | @@ -82,6 +93,9 @@ Resource resource.robot |
82 | 93 | Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value} |
83 | 94 | |
84 | 95 | |
96 | +Перевірити неможливість зміни поля ${field_name} тендера на значення ${field_value} для користувача ${username} | |
97 | + Require Failure ${username} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value} | |
98 | + | |
85 | 99 | Можливість змінити поле ${field_name} плану на ${field_value} |
86 | 100 | Run As ${tender_owner} Внести зміни в план ${TENDER['TENDER_UAID']} ${field_name} ${field_value} |
87 | 101 | |
... | ... | @@ -128,6 +142,19 @@ Resource resource.robot |
128 | 142 | Run As ${tender_owner} Видалити предмет закупівлі плану ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].item_data.item_id} |
129 | 143 | |
130 | 144 | |
145 | +Можливість видалити поле ${field_name} з донора ${funders_index} | |
146 | + Run As ${tender_owner} Видалити поле з донора ${TENDER['TENDER_UAID']} ${funders_index} ${field_name} | |
147 | + | |
148 | + | |
149 | +Можливість видалити донора ${funders_index} | |
150 | + Run As ${tender_owner} Видалити донора ${TENDER['TENDER_UAID']} ${funders_index} | |
151 | + | |
152 | + | |
153 | +Можливість додати донора | |
154 | + ${funders_data}= create_fake_funder | |
155 | + Run As ${tender_owner} Додати донора ${TENDER['TENDER_UAID']} ${funders_data} | |
156 | + | |
157 | + | |
131 | 158 | Звірити відображення поля ${field} документа ${doc_id} із ${left} для користувача ${username} |
132 | 159 | ${right}= Run As ${username} Отримати інформацію із документа ${TENDER['TENDER_UAID']} ${doc_id} ${field} |
133 | 160 | Порівняти об'єкти ${left} ${right} |
... | ... | @@ -250,6 +277,20 @@ Resource resource.robot |
250 | 277 | Звірити координати доставки тендера ${viewer} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${item_id} |
251 | 278 | |
252 | 279 | |
280 | +Звірити відображення поля ${field} усіх донорів для усіх користувачів | |
281 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | |
282 | + \ Звірити відображення поля ${field} усіх донорів для користувача ${username} | |
283 | + | |
284 | + | |
285 | +Звірити відображення поля ${field} усіх донорів для користувача ${username} | |
286 | + :FOR ${funders_index} IN RANGE ${FUNDERS} | |
287 | + \ Звірити відображення поля ${field} ${funders_index} донора для користувача ${username} | |
288 | + | |
289 | + | |
290 | +Звірити відображення поля ${field} ${funders_index} донора для користувача ${username} | |
291 | + Звірити поле донора ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field} ${funders_index} | |
292 | + | |
293 | + | |
253 | 294 | Отримати дані із поля ${field} тендера для усіх користувачів |
254 | 295 | :FOR ${username} IN ${viewer} ${provider} ${provider1} ${tender_owner} |
255 | 296 | \ Отримати дані із поля ${field} тендера для користувача ${username} | ... | ... |
... | ... | @@ -196,6 +196,14 @@ Library openprocurement_client.utils |
196 | 196 | [return] ${tender} |
197 | 197 | |
198 | 198 | |
199 | +Пошук тендера за кошти донора | |
200 | + [Arguments] ${username} ${funder_id}=${None} ${save_key}=tenders_with_funder | |
201 | + ${tenders}= get_tenders_by_funder_id ${USERS.users['${username}'].client} ${funder_id} | |
202 | + Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender} | |
203 | + Log ${tenders} | |
204 | + [return] ${tenders.keys()} | |
205 | + | |
206 | + | |
199 | 207 | Отримати тендер другого етапу та зберегти його |
200 | 208 | [Arguments] ${username} ${tender_id} |
201 | 209 | ${response}= Call Method ${USERS.users['${username}'].client} patch_credentials ${tender_id} ${USERS.users['${username}'].access_token} |
... | ... | @@ -248,12 +256,14 @@ Library openprocurement_client.utils |
248 | 256 | Внести зміни в тендер |
249 | 257 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
250 | 258 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
259 | + ${prev_value}= Отримати дані із тендера ${username} ${tender_uaid} ${fieldname} | |
251 | 260 | Set_To_Object ${tender.data} ${fieldname} ${fieldvalue} |
252 | 261 | ${procurementMethodType}= Get From Object ${tender.data} procurementMethodType |
253 | 262 | Run Keyword If '${procurementMethodType}' == 'aboveThresholdUA' or '${procurementMethodType}' == 'aboveThresholdEU' |
254 | 263 | ... Remove From Dictionary ${tender.data} enquiryPeriod |
255 | 264 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
256 | 265 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
266 | + Run Keyword And Expect Error * Порівняти об'єкти ${prev_value} ${tender.data.${fieldname}} | |
257 | 267 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} |
258 | 268 | |
259 | 269 | |
... | ... | @@ -265,7 +275,6 @@ Library openprocurement_client.utils |
265 | 275 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_plan ${tender} |
266 | 276 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} |
267 | 277 | |
268 | - | |
269 | 278 | ############################################################################## |
270 | 279 | # Item operations |
271 | 280 | ############################################################################## |
... | ... | @@ -297,6 +306,7 @@ Library openprocurement_client.utils |
297 | 306 | Remove From List ${tender.data['items']} ${item_index} |
298 | 307 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
299 | 308 | |
309 | + | |
300 | 310 | Видалити предмет закупівлі плану |
301 | 311 | [Arguments] ${username} ${tender_uaid} ${item_id} ${lot_id}=${Empty} |
302 | 312 | ${tender}= openprocurement_client.Пошук плану по ідентифікатору ${username} ${tender_uaid} |
... | ... | @@ -304,6 +314,33 @@ Library openprocurement_client.utils |
304 | 314 | Remove From List ${tender.data['items']} ${item_index} |
305 | 315 | Call Method ${USERS.users['${username}'].client} patch_plan ${tender} |
306 | 316 | |
317 | + | |
318 | +Видалити поле з донора | |
319 | + [Arguments] ${username} ${tender_uaid} ${funders_index} ${field_name} | |
320 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | |
321 | + Delete From Dictionary ${tender.data['funders'][${funders_index}]} ${field_name} | |
322 | + Log ${tender.data['funders'][${funders_index}]} | |
323 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | |
324 | + Dictionary Should Not Contain Path ${reply.data['funders'][${funders_index}]} ${field_name} | |
325 | + | |
326 | + | |
327 | +Видалити донора | |
328 | + [Arguments] ${username} ${tender_uaid} ${funders_index} | |
329 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | |
330 | + Remove From List ${tender.data.funders} ${funders_index} | |
331 | + Log ${tender} | |
332 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | |
333 | + Log ${reply} | |
334 | + | |
335 | + | |
336 | +Додати донора | |
337 | + [Arguments] ${username} ${tender_uaid} ${funders_data} | |
338 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | |
339 | + Set To Dictionary ${tender.data} funders=@{EMPTY} | |
340 | + Append To List ${tender.data.funders} ${funders_data} | |
341 | + Log ${tender} | |
342 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | |
343 | + | |
307 | 344 | ############################################################################## |
308 | 345 | # Lot operations |
309 | 346 | ############################################################################## | ... | ... |
... | ... | @@ -118,6 +118,31 @@ def get_document_by_id(data, doc_id): |
118 | 118 | raise Exception('Document with id {} not found'.format(doc_id)) |
119 | 119 | |
120 | 120 | |
121 | +def get_tenders_by_funder_id(client, | |
122 | + funder_id=None, | |
123 | + descending=True, | |
124 | + tender_id_field='tenderID', | |
125 | + opt_fields=('funders',)): | |
126 | + params = {'offset': '', | |
127 | + 'opt_fields': ','.join((tender_id_field,) + opt_fields), | |
128 | + 'descending': descending} | |
129 | + tender_list = True | |
130 | + client._update_params(params) | |
131 | + tenders_with_funder = {} | |
132 | + while tender_list and not tenders_with_funder: | |
133 | + tender_list = client.get_tenders() | |
134 | + for tender in tender_list: | |
135 | + if 'funders' in tender: | |
136 | + tenders_with_funder[tender[tender_id_field]] = [el['identifier']['id'] for el in tender['funders']] | |
137 | + # In case we are looking for a specific funder | |
138 | + if funder_id: | |
139 | + tenders_with_funder = {k: v for k, v in tenders_with_funder.items() if funder_id in v} | |
140 | + if not tenders_with_funder: | |
141 | + raise IdNotFound | |
142 | + else: | |
143 | + return tenders_with_funder | |
144 | + | |
145 | + | |
121 | 146 | def download_file_from_url(url, path_to_save_file): |
122 | 147 | f = open(path_to_save_file, 'wb') |
123 | 148 | f.write(urllib.urlopen(url).read()) | ... | ... |
... | ... | @@ -33,10 +33,22 @@ def create_fake_sentence(): |
33 | 33 | return fake.sentence(nb_words=10, variable_nb_words=True) |
34 | 34 | |
35 | 35 | |
36 | +def create_fake_funder(): | |
37 | + return fake.funders_data() | |
38 | + | |
39 | + | |
40 | +def get_fake_funder_scheme(): | |
41 | + return fake.funder_scheme() | |
42 | + | |
43 | + | |
36 | 44 | def create_fake_amount(award_amount): |
37 | 45 | return round(random.uniform(1, award_amount), 2) |
38 | 46 | |
39 | 47 | |
48 | +def create_fake_number(min_number, max_number): | |
49 | + return random.randint(int(min_number), int(max_number)) | |
50 | + | |
51 | + | |
40 | 52 | def create_fake_title(): |
41 | 53 | return u"[ТЕСТУВАННЯ] {}".format(fake.title()) |
42 | 54 | |
... | ... | @@ -93,6 +105,7 @@ def create_fake_doc(): |
93 | 105 | def test_tender_data(params, |
94 | 106 | periods=("enquiry", "tender"), |
95 | 107 | submissionMethodDetails=None, |
108 | + funders=None, | |
96 | 109 | accelerator=None): |
97 | 110 | submissionMethodDetails = submissionMethodDetails \ |
98 | 111 | if submissionMethodDetails else "quick" |
... | ... | @@ -175,6 +188,8 @@ def test_tender_data(params, |
175 | 188 | data['features'].append(new_feature) |
176 | 189 | if not data['features']: |
177 | 190 | del data['features'] |
191 | + if funders is not None: | |
192 | + data['funders'] = [fake.funders_data() for _ in range(int(funders))] | |
178 | 193 | data['status'] = 'draft' |
179 | 194 | return munchify(data) |
180 | 195 | ... | ... |
... | ... | @@ -215,7 +215,8 @@ Get Broker Property By Username |
215 | 215 | ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers} |
216 | 216 | ${submissionMethodDetails}= Get Variable Value ${submissionMethodDetails} |
217 | 217 | ${accelerator}= Get Variable Value ${accelerator} |
218 | - ${tender_data}= prepare_test_tender_data ${period_intervals} ${tender_parameters} ${submissionMethodDetails} ${accelerator} | |
218 | + ${funders}= Get Variable Value ${FUNDERS} | |
219 | + ${tender_data}= prepare_test_tender_data ${period_intervals} ${tender_parameters} ${submissionMethodDetails} ${accelerator} ${funders} | |
219 | 220 | ${TENDER}= Create Dictionary |
220 | 221 | Set Global Variable ${TENDER} |
221 | 222 | Log ${tender_data} |
... | ... | @@ -502,6 +503,19 @@ Log differences between dicts |
502 | 503 | Порівняти об'єкти ${left} ${right} |
503 | 504 | |
504 | 505 | |
506 | +Звірити поле донора | |
507 | + [Arguments] ${username} ${tender_uaid} ${tender_data} ${field} ${funders_index} | |
508 | + ${left}= get_from_object ${tender_data.data.funders[${funders_index}]} ${field} | |
509 | + Log ${left} | |
510 | + Звірити поле донора із значенням ${username} ${tender_uaid} ${left} ${field} ${funders_index} | |
511 | + | |
512 | + | |
513 | +Звірити поле донора із значенням | |
514 | + [Arguments] ${username} ${tender_uaid} ${left} ${field} ${funders_index} ${object_id}=${Empty} | |
515 | + ${right}= Отримати дані із тендера ${username} ${tender_uaid} funders[${funders_index}].${field} ${object_id} | |
516 | + Порівняти об'єкти ${left} ${right} | |
517 | + | |
518 | + | |
505 | 519 | Звірити відображення типу запланованого тендера для ${username} |
506 | 520 | ${type}= Отримати дані із плану ${username} ${TENDER['TENDER_UAID']} tender.procurementMethodType |
507 | 521 | Звірити відображення поля tender.procurementMethodType плану для користувача ${username} |
... | ... | @@ -786,10 +800,17 @@ Require Failure |
786 | 800 | |
787 | 801 | |
788 | 802 | Дочекатись дати закінчення періоду уточнень |
789 | - [Arguments] ${username} | |
803 | + [Arguments] ${username} ${tender_uaid} | |
790 | 804 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.enquiryPeriod.endDate} |
791 | 805 | Оновити LAST_MODIFICATION_DATE |
792 | 806 | Дочекатись синхронізації з майданчиком ${username} |
807 | + Wait until keyword succeeds | |
808 | + ... 10 min 15 sec | |
809 | + ... 15 sec | |
810 | + ... Звірити статус тендера | |
811 | + ... ${username} | |
812 | + ... ${tender_uaid} | |
813 | + ... active.tendering | |
793 | 814 | |
794 | 815 | |
795 | 816 | Дочекатись дати закінчення періоду відповідей на запитання | ... | ... |
... | ... | @@ -21,6 +21,8 @@ class OP_Provider(BaseProvider): |
21 | 21 | _fake_data = load_data_from_file("op_faker_data.json") |
22 | 22 | word_list = _fake_data.words |
23 | 23 | procuringEntities = _fake_data.procuringEntities |
24 | + funders = _fake_data.funders | |
25 | + funders_scheme_list = _fake_data.funders_scheme | |
24 | 26 | addresses = _fake_data.addresses |
25 | 27 | classifications = _fake_data.classifications |
26 | 28 | cpvs = _fake_data.cpvs |
... | ... | @@ -91,6 +93,14 @@ class OP_Provider(BaseProvider): |
91 | 93 | return deepcopy(self.random_element(self.procuringEntities)) |
92 | 94 | |
93 | 95 | @classmethod |
96 | + def funders_data(self): | |
97 | + return self.random_element(self.funders) | |
98 | + | |
99 | + @classmethod | |
100 | + def funder_scheme(self): | |
101 | + return self.random_element(self.funders_scheme_list) | |
102 | + | |
103 | + @classmethod | |
94 | 104 | def cpv(self): |
95 | 105 | return self.random_element(self.cpvs) |
96 | 106 | ... | ... |
... | ... | @@ -507,6 +507,155 @@ |
507 | 507 | "спускати", |
508 | 508 | "весілчанин" |
509 | 509 | ], |
510 | + "funders": [ | |
511 | + { | |
512 | + "additionalIdentifiers": [ ], | |
513 | + "contactPoint": { | |
514 | + "telephone": "+380444906671", | |
515 | + "url": "http://www.worldbank.org/uk/country/ukraine", | |
516 | + "faxNumber": "+380444906670", | |
517 | + "name": "Darya Gulei", | |
518 | + "email": "ukraine@worldbank.org" | |
519 | + }, | |
520 | + "identifier": { | |
521 | + "scheme": "XM-DAC", | |
522 | + "id": "44000", | |
523 | + "legalName": "International Bank for Reconstruction and Development (IBRD)" | |
524 | + }, | |
525 | + "name": "World Bank", | |
526 | + "address": { | |
527 | + "postalCode": "20433", | |
528 | + "countryName": "USA", | |
529 | + "streetAddress": "1818 H Street, NW", | |
530 | + "region": "DC", | |
531 | + "locality": "Washington" | |
532 | + } | |
533 | + } | |
534 | + ], | |
535 | + "funders_scheme": [ | |
536 | + "AE-ACCI", | |
537 | + "AE-ADCD", | |
538 | + "AE-AFZ", | |
539 | + "AE-DCCI", | |
540 | + "AE-DFSA", | |
541 | + "AE-DIFC", | |
542 | + "AE-FFZ", | |
543 | + "AT-FN", | |
544 | + "AE-FUJCCI", | |
545 | + "AE-HFZA", | |
546 | + "AE-RAKIA", | |
547 | + "AE-SAIF", | |
548 | + "AE-SCCI", | |
549 | + "AE-UAQCCI", | |
550 | + "AF-CBR", | |
551 | + "AF-MOE", | |
552 | + "AU-ABN", | |
553 | + "AU-ACNC", | |
554 | + "BD-NAB", | |
555 | + "BE-BCE_KBO", | |
556 | + "BE-GTCF", | |
557 | + "BG-EIK", | |
558 | + "BY-UNP", | |
559 | + "CA-CRA_ACR", | |
560 | + "CH-ZEFIX", | |
561 | + "CN-SAIC", | |
562 | + "CO-CCB", | |
563 | + "CY-DRCOR", | |
564 | + "CZ-ICO", | |
565 | + "DE-CRP", | |
566 | + "DK-CVR", | |
567 | + "EE-RIK", | |
568 | + "ES-DIR3", | |
569 | + "ES-RMS", | |
570 | + "ET-MFA", | |
571 | + "FI-PRO", | |
572 | + "FR-INSEE", | |
573 | + "FR-RCS", | |
574 | + "GB-CHC", | |
575 | + "GB-COH", | |
576 | + "GB-EDU", | |
577 | + "GB-GOV", | |
578 | + "GB-GOVUK", | |
579 | + "GB-NIC", | |
580 | + "GB-REV", | |
581 | + "GB-SC", | |
582 | + "GB-UKPRN", | |
583 | + "GG-RCE", | |
584 | + "GH-DSW", | |
585 | + "HU-VAT", | |
586 | + "ID-KDN", | |
587 | + "ID-KHH", | |
588 | + "ID-KLN", | |
589 | + "ID-PRO", | |
590 | + "IE-CHY", | |
591 | + "IE-CRO", | |
592 | + "IL-ROC", | |
593 | + "IM-CR", | |
594 | + "IM-GR", | |
595 | + "IN-MCA", | |
596 | + "IT-RI", | |
597 | + "JE-CR", | |
598 | + "JE-OAC", | |
599 | + "JP-JCN", | |
600 | + "KE-NCB", | |
601 | + "KE-RCO", | |
602 | + "KE-RSO", | |
603 | + "KZ-BIN", | |
604 | + "LS-LCN", | |
605 | + "LT-PVM", | |
606 | + "LT-RC", | |
607 | + "LV-RE", | |
608 | + "MD-IDNO", | |
609 | + "MM-MHA", | |
610 | + "MW-CNM", | |
611 | + "MW-MRA", | |
612 | + "MW-NBM", | |
613 | + "MW-RG", | |
614 | + "MY-SSM", | |
615 | + "MZ-MOJ", | |
616 | + "NG-CAC", | |
617 | + "NL-KVK", | |
618 | + "NO-BRC", | |
619 | + "NP-CRO", | |
620 | + "NP-SWC", | |
621 | + "PK-PCP", | |
622 | + "PK-VSWA", | |
623 | + "PL-REGON", | |
624 | + "PL-NIP", | |
625 | + "PL-KRS", | |
626 | + "PT-NIPPC", | |
627 | + "RO-CUI", | |
628 | + "RS-APR", | |
629 | + "RU-INN", | |
630 | + "RU-OGRN", | |
631 | + "SE-BLV", | |
632 | + "SG-ACRA", | |
633 | + "SI-PRS", | |
634 | + "SI-TIN", | |
635 | + "SK-ZRSR", | |
636 | + "TR-MERSIS", | |
637 | + "TR-VAT", | |
638 | + "TZ-BRLA", | |
639 | + "UA-EDR", | |
640 | + "UG-NGB", | |
641 | + "UG-RSB", | |
642 | + "US-DOS", | |
643 | + "US-EIN", | |
644 | + "US-USAGOV", | |
645 | + "UZ-KTUT", | |
646 | + "XI-IATI", | |
647 | + "XI-PB", | |
648 | + "XM-DAC", | |
649 | + "XM-EORI", | |
650 | + "XM-OCHA", | |
651 | + "ZA-CIP", | |
652 | + "ZA-NPO", | |
653 | + "ZA-PBO", | |
654 | + "ZM-NRB", | |
655 | + "ZM-PCR", | |
656 | + "ZW-PVO", | |
657 | + "ZW-ROD" | |
658 | + ], | |
510 | 659 | "procuringEntities": [ |
511 | 660 | { |
512 | 661 | "contactPoint": { | ... | ... |
... | ... | @@ -37,6 +37,15 @@ ${ITEM_MEAT} ${True} |
37 | 37 | ... critical |
38 | 38 | Можливість знайти тендер по ідентифікатору для усіх користувачів |
39 | 39 | |
40 | + | |
41 | +Можливість знайти тендер за кошти донора по ідентифікатору донора | |
42 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера | |
43 | + ... viewer tender_owner provider provider1 | |
44 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
45 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
46 | + ... find_tender_by_funder_id | |
47 | + Можливість знайти тендер за кошти донора для усіх користувачів | |
48 | + | |
40 | 49 | ############################################################################################## |
41 | 50 | # Відображення основних даних тендера |
42 | 51 | ############################################################################################## |
... | ... | @@ -421,6 +430,99 @@ ${ITEM_MEAT} ${True} |
421 | 430 | Звірити відображення поля featureOf усіх нецінових показників для користувача ${viewer} |
422 | 431 | |
423 | 432 | ############################################################################################## |
433 | +# Відображення основних даних донора | |
434 | +############################################################################################## | |
435 | + | |
436 | +Відображення назви донора | |
437 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
438 | + ... viewer tender_owner provider provider1 | |
439 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
440 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
441 | + ... funders_view | |
442 | + Звірити відображення поля name усіх донорів для усіх користувачів | |
443 | + | |
444 | + | |
445 | +Відображення назви країни донора | |
446 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
447 | + ... viewer tender_owner provider provider1 | |
448 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
449 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
450 | + ... funders_view | |
451 | + Звірити відображення поля address.countryName усіх донорів для усіх користувачів | |
452 | + | |
453 | + | |
454 | +Відображення назви міста донора | |
455 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
456 | + ... viewer tender_owner provider provider1 | |
457 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
458 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
459 | + ... funders_view | |
460 | + Звірити відображення поля address.locality усіх донорів для усіх користувачів | |
461 | + | |
462 | + | |
463 | +Відображення поштового коду адреси донора | |
464 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
465 | + ... viewer tender_owner provider provider1 | |
466 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
467 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
468 | + ... funders_view | |
469 | + Звірити відображення поля address.postalCode усіх донорів для усіх користувачів | |
470 | + | |
471 | + | |
472 | +Відображення регіону адреси донора | |
473 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
474 | + ... viewer tender_owner provider provider1 | |
475 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
476 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
477 | + ... funders_view | |
478 | + Звірити відображення поля address.region усіх донорів для усіх користувачів | |
479 | + | |
480 | + | |
481 | +Відображення вулиці адреси донора | |
482 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
483 | + ... viewer tender_owner provider provider1 | |
484 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
485 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
486 | + ... funders_view | |
487 | + Звірити відображення поля address.streetAddress усіх донорів для усіх користувачів | |
488 | + | |
489 | + | |
490 | +Відображення url веб-сторінки контактної особи | |
491 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
492 | + ... viewer tender_owner provider provider1 | |
493 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
494 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
495 | + ... funders_view | |
496 | + Звірити відображення поля contactPoint.url усіх донорів для усіх користувачів | |
497 | + | |
498 | + | |
499 | +Відображення id ідентифікатора | |
500 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
501 | + ... viewer tender_owner provider provider1 | |
502 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
503 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
504 | + ... funders_view | |
505 | + Звірити відображення поля identifier.id усіх донорів для усіх користувачів | |
506 | + | |
507 | + | |
508 | +Відображення юридичної назви ідентифікатора | |
509 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
510 | + ... viewer tender_owner provider provider1 | |
511 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
512 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
513 | + ... funders_view | |
514 | + Звірити відображення поля identifier.legalName усіх донорів для усіх користувачів | |
515 | + | |
516 | + | |
517 | +Відображення схеми ідентифікатора | |
518 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення донора тендера | |
519 | + ... viewer tender_owner provider provider1 | |
520 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
521 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | |
522 | + ... funders_view | |
523 | + Звірити відображення поля identifier.scheme усіх донорів для усіх користувачів | |
524 | + | |
525 | +############################################################################################## | |
424 | 526 | # Редагування тендера |
425 | 527 | ############################################################################################## |
426 | 528 | |
... | ... | @@ -777,6 +879,72 @@ ${ITEM_MEAT} ${True} |
777 | 879 | ... critical |
778 | 880 | Можливість видалити -1 неціновий показник |
779 | 881 | |
882 | + | |
883 | +Можливість видалити донора | |
884 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | |
885 | + ... tender_owner | |
886 | + ... ${USERS.users['${tender_owner}'].broker} | |
887 | + ... delete_funder | |
888 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
889 | + Можливість видалити донора 0 | |
890 | + | |
891 | + | |
892 | +Можливість додати донора | |
893 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | |
894 | + ... tender_owner | |
895 | + ... ${USERS.users['${tender_owner}'].broker} | |
896 | + ... add_funder | |
897 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | |
898 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
899 | + Можливість додати донора | |
900 | + | |
901 | + | |
902 | +Неможливість видалити ім'я донора | |
903 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | |
904 | + ... tender_owner | |
905 | + ... ${USERS.users['${tender_owner}'].broker} | |
906 | + ... delete_funder_field | |
907 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
908 | + Run Keyword And Expect Error * Можливість видалити поле name з донора 0 | |
909 | + | |
910 | + | |
911 | +Неможливість видалити ім'я контактної особи донора | |
912 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | |
913 | + ... tender_owner | |
914 | + ... ${USERS.users['${tender_owner}'].broker} | |
915 | + ... delete_funder_field | |
916 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
917 | + Run Keyword And Expect Error * Можливість видалити поле contactPoint.name з донора 0 | |
918 | + | |
919 | + | |
920 | +Неможливість видалити назву країни з адреси донора | |
921 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | |
922 | + ... tender_owner | |
923 | + ... ${USERS.users['${tender_owner}'].broker} | |
924 | + ... delete_funder_field | |
925 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
926 | + Run Keyword And Expect Error * Можливість видалити поле address.countryName з донора 0 | |
927 | + | |
928 | + | |
929 | +Неможливість змінити id ідентифікатора донора | |
930 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | |
931 | + ... tender_owner | |
932 | + ... ${USERS.users['${tender_owner}'].broker} | |
933 | + ... change_funder_during_enquiry_period | |
934 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
935 | + ${new_id}= create_fake_number 10000 99999 | |
936 | + Перевірити неможливість зміни поля funders[0].identifier.id тендера на значення ${new_id} для користувача ${tender_owner} | |
937 | + | |
938 | + | |
939 | +Неможливість змінити схему ідентифікатора донора | |
940 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | |
941 | + ... tender_owner | |
942 | + ... ${USERS.users['${tender_owner}'].broker} | |
943 | + ... change_funder_during_enquiry_period | |
944 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
945 | + ${new_scheme}= get_fake_funder_scheme | |
946 | + Перевірити неможливість зміни поля funders[0].identifier.scheme тендера на значення ${new_scheme} для користувача ${tender_owner} | |
947 | + | |
780 | 948 | ############################################################################################## |
781 | 949 | # QUESTIONS |
782 | 950 | ############################################################################################## |
... | ... | @@ -969,6 +1137,17 @@ ${ITEM_MEAT} ${True} |
969 | 1137 | Можливість змінити поле description 0 лоту на ${new_description} |
970 | 1138 | Remove From Dictionary ${USERS.users['${tender_owner}'].tender_data.data.lots[0]} description |
971 | 1139 | |
1140 | + | |
1141 | +Неможливість змінити дані про донора після завершення періоду уточнень | |
1142 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | |
1143 | + ... tender_owner | |
1144 | + ... ${USERS.users['${tender_owner}'].broker} | |
1145 | + ... change_funder_after_enquiry_period | |
1146 | + [Setup] Дочекатись дати закінчення періоду уточнень ${tender_owner} ${TENDER['TENDER_UAID']} | |
1147 | + ${new_legalName}= create_fake_title | |
1148 | + Перевірити неможливість зміни поля funders[0].identifier.legalName тендера на значення ${new_legalName} для користувача ${tender_owner} | |
1149 | + Remove From Dictionary ${USERS.users['${tender_owner}'].tender_data.data.funders[0].identifier} legalName | |
1150 | + | |
972 | 1151 | ############################################################################################## |
973 | 1152 | # TENDER COMPLAINTS |
974 | 1153 | ############################################################################################## | ... | ... |
... | ... | @@ -4,7 +4,7 @@ from .local_time import get_now, TZ |
4 | 4 | from copy import deepcopy |
5 | 5 | from datetime import timedelta |
6 | 6 | from dateutil.parser import parse |
7 | -from dpath.util import new as xpathnew | |
7 | +from dpath.util import delete as xpathdelete, get as xpathget, new as xpathnew | |
8 | 8 | from haversine import haversine |
9 | 9 | from json import load, loads |
10 | 10 | from jsonpath_rw import parse as parse_path |
... | ... | @@ -20,7 +20,10 @@ from .initial_data import ( |
20 | 20 | create_fake_doc, |
21 | 21 | create_fake_sentence, |
22 | 22 | create_fake_amount, |
23 | + create_fake_number, | |
23 | 24 | create_fake_date, |
25 | + create_fake_funder, | |
26 | + get_fake_funder_scheme, | |
24 | 27 | fake, |
25 | 28 | subtraction, |
26 | 29 | field_with_id, |
... | ... | @@ -62,7 +65,9 @@ from restkit import request |
62 | 65 | import os |
63 | 66 | import re |
64 | 67 | |
68 | + | |
65 | 69 | NUM_TYPES = (int, long, float) |
70 | +STR_TYPES = (str, unicode) | |
66 | 71 | |
67 | 72 | |
68 | 73 | def get_current_tzdate(): |
... | ... | @@ -294,7 +299,8 @@ def compute_intrs(brokers_data, used_brokers): |
294 | 299 | def prepare_test_tender_data(procedure_intervals, |
295 | 300 | tender_parameters, |
296 | 301 | submissionMethodDetails, |
297 | - accelerator): | |
302 | + accelerator, | |
303 | + funders): | |
298 | 304 | # Get actual intervals by mode name |
299 | 305 | mode = tender_parameters['mode'] |
300 | 306 | if mode in procedure_intervals: |
... | ... | @@ -332,6 +338,7 @@ def prepare_test_tender_data(procedure_intervals, |
332 | 338 | return munchify({'data': test_tender_data( |
333 | 339 | tender_parameters, |
334 | 340 | submissionMethodDetails=submissionMethodDetails, |
341 | + funders=funders, | |
335 | 342 | accelerator=accelerator)}) |
336 | 343 | # The previous line needs an explicit keyword argument because, |
337 | 344 | # unlike previous functions, this one has three arguments. |
... | ... | @@ -584,3 +591,17 @@ def convert_amount_string_to_float(amount_string): |
584 | 591 | def compare_rationale_types(type1, type2): |
585 | 592 | return set(type1) == set(type2) |
586 | 593 | |
594 | + | |
595 | +def delete_from_dictionary(variable, path): | |
596 | + if not type(path) in STR_TYPES: | |
597 | + raise TypeError('path must be one of: ' + | |
598 | + str([x.__name__ for x in STR_TYPES])) | |
599 | + return xpathdelete(variable, path, separator='.') | |
600 | + | |
601 | + | |
602 | +def dictionary_should_not_contain_path(dictionary, path): | |
603 | + try: | |
604 | + xpathget(dictionary, path, separator='.') | |
605 | + except KeyError: | |
606 | + return | |
607 | + raise RuntimeError("Dictionary contains path '%s'." % path) | ... | ... |
robot_tests_arguments/below_funders.txt
0 → 100644
1 | +-v MODE:belowThreshold | |
2 | + | |
3 | +-v NUMBER_OF_ITEMS:1 | |
4 | +-v NUMBER_OF_LOTS:1 | |
5 | +-v FUNDERS:1 | |
6 | + | |
7 | +-v TENDER_MEAT:False | |
8 | +-v ITEM_MEAT:False | |
9 | +-v LOT_MEAT:False | |
10 | + | |
11 | + | |
12 | +-i create_tender | |
13 | +-i find_tender | |
14 | +-i find_tender_by_funder_id | |
15 | +-i tender_view | |
16 | +-i lot_view | |
17 | +-i funders_view | |
18 | + | |
19 | +-i delete_funder_field | |
20 | +-i delete_funder | |
21 | +-i add_funder | |
22 | +-i change_funder_during_enquiry_period | |
23 | +-i change_funder_after_enquiry_period | |
24 | + | |
25 | +-i make_bid_by_provider | |
26 | +-i make_bid_by_provider1 | |
27 | +-i modify_bid_by_provider1 | |
28 | + | |
29 | +-i auction | |
30 | + | |
31 | +-i qualification_approve_first_award | |
32 | + | |
33 | +-i contract_sign | |
\ No newline at end of file | ... | ... |
Please
register
or
login
to post a comment