Commit f89d6ef3705d57533ae174d1665af91db4c13467
Merge pull request #137 from Leits/lots
Update lots test
Showing
10 changed files
with
262 additions
and
311 deletions
| @@ -143,8 +143,8 @@ Library openprocurement_client_helper.py | @@ -143,8 +143,8 @@ Library openprocurement_client_helper.py | ||
| 143 | Подати цінову пропозицію | 143 | Подати цінову пропозицію |
| 144 | [Arguments] ${username} ${tender_uaid} ${bid} | 144 | [Arguments] ${username} ${tender_uaid} ${bid} |
| 145 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 145 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 146 | - ${lots}= Get Variable Value ${tender.data.lots} | ||
| 147 | - ${bid}= Run Keyword If ${lots} test_lots_bid_data | 146 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
| 147 | + ${bid}= Run Keyword If ${lots} test_bid_data multiLot | ||
| 148 | ... ELSE Set Variable ${bid} | 148 | ... ELSE Set Variable ${bid} |
| 149 | Run Keyword If ${lots} | 149 | Run Keyword If ${lots} |
| 150 | ... Run Keywords | 150 | ... Run Keywords |
| @@ -160,7 +160,7 @@ Library openprocurement_client_helper.py | @@ -160,7 +160,7 @@ Library openprocurement_client_helper.py | ||
| 160 | Змінити цінову пропозицію | 160 | Змінити цінову пропозицію |
| 161 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | 161 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
| 162 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 162 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 163 | - ${lots}= Get Variable Value ${tender.data.lots} | 163 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
| 164 | ${fieldname}= Run Keyword If ${lots} Set Variable lotValues.0.${fieldname} | 164 | ${fieldname}= Run Keyword If ${lots} Set Variable lotValues.0.${fieldname} |
| 165 | ... ELSE Set Variable ${fieldname} | 165 | ... ELSE Set Variable ${fieldname} |
| 166 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | 166 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} |
| @@ -238,7 +238,7 @@ Library openprocurement_client_helper.py | @@ -238,7 +238,7 @@ Library openprocurement_client_helper.py | ||
| 238 | Отримати посилання на аукціон для глядача | 238 | Отримати посилання на аукціон для глядача |
| 239 | [Arguments] ${username} ${tender_uaid} | 239 | [Arguments] ${username} ${tender_uaid} |
| 240 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 240 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 241 | - ${lots}= Get Variable Value ${tender.data.lots} | 241 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
| 242 | ${auctionUrl}= Run Keyword If ${lots} Set Variable ${tender.data.lots[0].auctionUrl} | 242 | ${auctionUrl}= Run Keyword If ${lots} Set Variable ${tender.data.lots[0].auctionUrl} |
| 243 | ... ELSE Set Variable ${tender.data.auctionUrl} | 243 | ... ELSE Set Variable ${tender.data.auctionUrl} |
| 244 | [return] ${auctionUrl} | 244 | [return] ${auctionUrl} |
| @@ -247,7 +247,7 @@ Library openprocurement_client_helper.py | @@ -247,7 +247,7 @@ Library openprocurement_client_helper.py | ||
| 247 | Отримати посилання на аукціон для учасника | 247 | Отримати посилання на аукціон для учасника |
| 248 | [Arguments] ${username} ${tender_uaid} | 248 | [Arguments] ${username} ${tender_uaid} |
| 249 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | 249 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} |
| 250 | - ${lots}= Get Variable Value ${bid.data.lotValues} | 250 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${bid.data.lotValues} |
| 251 | ${participationUrl}= Run Keyword If ${lots} Set Variable ${bid.data.lotValues[0].participationUrl} | 251 | ${participationUrl}= Run Keyword If ${lots} Set Variable ${bid.data.lotValues[0].participationUrl} |
| 252 | ... ELSE Set Variable ${bid.data.participationUrl} | 252 | ... ELSE Set Variable ${bid.data.participationUrl} |
| 253 | [return] ${participationUrl} | 253 | [return] ${participationUrl} |
| @@ -275,50 +275,77 @@ Library openprocurement_client_helper.py | @@ -275,50 +275,77 @@ Library openprocurement_client_helper.py | ||
| 275 | ############################################################################## | 275 | ############################################################################## |
| 276 | 276 | ||
| 277 | Створити лот | 277 | Створити лот |
| 278 | - [Arguments] ${username} ${tender} ${lot} | ||
| 279 | - Log ${username} | ||
| 280 | - Log ${tender} | ||
| 281 | - Log ${lot} | ||
| 282 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 283 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} create_lot ${tender} ${lot} | ||
| 284 | - Log ${tender_lot} | ||
| 285 | - [return] ${tender_lot} | ||
| 286 | - #TODO: | ||
| 287 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
| 288 | - #${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 278 | + [Arguments] ${username} ${tender_uaid} ${lot} |
| 279 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 280 | + ${reply}= Call Method ${USERS.users['${username}'].client} create_lot ${tender} ${lot} | ||
| 281 | + [return] ${reply} | ||
| 282 | + | ||
| 283 | + | ||
| 284 | +Отримати інформацію із лоту | ||
| 285 | + [Arguments] ${username} ${lot_id} ${field_name} | ||
| 286 | + ${field_name}= Отримати шлях до поля об’єкта ${username} ${field_name} ${lot_id} | ||
| 287 | + Run Keyword And Return openprocurement_client.Отримати інформацію із тендера ${username} ${field_name} | ||
| 289 | 288 | ||
| 290 | 289 | ||
| 291 | Змінити лот | 290 | Змінити лот |
| 292 | - [Arguments] ${username} ${tender} ${lot} | ||
| 293 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 294 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} patch_lot ${tender} ${lot} | ||
| 295 | - Log ${tender_lot} | ||
| 296 | - [return] ${tender_lot} | ||
| 297 | - #TODO: | ||
| 298 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
| 299 | - #${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 291 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${fieldname} ${fieldvalue} |
| 292 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 293 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 294 | + ${lot}= Create Dictionary data=${tender.data.lots[${lot_index}]} | ||
| 295 | + Set_To_Object ${lot.data} ${fieldname} ${fieldvalue} | ||
| 296 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_lot ${tender} ${lot} | ||
| 297 | + [return] ${reply} | ||
| 298 | + | ||
| 299 | + | ||
| 300 | +Додати предмет закупівлі в лот | ||
| 301 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${item} | ||
| 302 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 303 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 304 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 305 | + Set_To_Object ${item} relatedLot ${lot_id} | ||
| 306 | + Append To List ${tender.data['items']} ${item} | ||
| 307 | + Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | ||
| 308 | + | ||
| 309 | + | ||
| 310 | +Задати питання до лоту | ||
| 311 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${question} | ||
| 312 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 313 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 314 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 315 | + ${question}= test_lot_question_data ${question} ${lot_id} | ||
| 316 | + ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_question ${tender} ${question} | ||
| 317 | + [return] ${biddingresponse} | ||
| 300 | 318 | ||
| 301 | 319 | ||
| 302 | Завантажити документ в лот | 320 | Завантажити документ в лот |
| 303 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} | 321 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} |
| 304 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 322 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 305 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 323 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} |
| 324 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 306 | ${doc}= openprocurement_client.Завантажити документ ${username} ${filepath} ${tender_uaid} | 325 | ${doc}= openprocurement_client.Завантажити документ ${username} ${filepath} ${tender_uaid} |
| 307 | ${lot_doc}= test_lot_document_data ${doc} ${lot_id} | 326 | ${lot_doc}= test_lot_document_data ${doc} ${lot_id} |
| 308 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_document ${tender} ${lot_doc} | 327 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_document ${tender} ${lot_doc} |
| 309 | - Log object data ${reply} reply | ||
| 310 | [return] ${reply} | 328 | [return] ${reply} |
| 311 | 329 | ||
| 312 | 330 | ||
| 313 | Видалити лот | 331 | Видалити лот |
| 314 | - [Arguments] ${username} ${tender} ${lot} | ||
| 315 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 316 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} delete_lot ${tender} ${lot} | ||
| 317 | - Log ${tender_lot} | ||
| 318 | - [return] ${tender_lot} | ||
| 319 | - #TODO: | ||
| 320 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
| 321 | - #${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 332 | + [Arguments] ${username} ${tender_uaid} ${lot_id} |
| 333 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 334 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 335 | + ${lot}= Create Dictionary data=${tender.data.lots[${lot_index}]} | ||
| 336 | + ${reply}= Call Method ${USERS.users['${username}'].client} delete_lot ${tender} ${lot} | ||
| 337 | + [return] ${reply} | ||
| 338 | + | ||
| 339 | + | ||
| 340 | +Подати цінову пропозицію на лоти | ||
| 341 | + [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids} | ||
| 342 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 343 | + : FOR ${index} ${lot_id} IN ENUMERATE @{lots_ids} | ||
| 344 | + \ ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 345 | + \ ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 346 | + \ Set To Dictionary ${bid.data.lotValues[${index}]} relatedLot=${lot_id} | ||
| 347 | + ${reply}= openprocurement_client.Подати цінову пропозицію ${username} ${tender_uaid} ${bid} | ||
| 348 | + [return] ${reply} | ||
| 322 | 349 | ||
| 323 | ############################################################################## | 350 | ############################################################################## |
| 324 | # Claims | 351 | # Claims |
| @@ -14,7 +14,7 @@ def create_fake_sentence(): | @@ -14,7 +14,7 @@ def create_fake_sentence(): | ||
| 14 | return fake.sentence(nb_words=10, variable_nb_words=True) | 14 | return fake.sentence(nb_words=10, variable_nb_words=True) |
| 15 | 15 | ||
| 16 | 16 | ||
| 17 | -def description_with_id(prefix, sentence): | 17 | +def field_with_id(prefix, sentence): |
| 18 | return "{}-{}: {}".format(prefix, fake.uuid4()[:8], sentence) | 18 | return "{}-{}: {}".format(prefix, fake.uuid4()[:8], sentence) |
| 19 | 19 | ||
| 20 | 20 | ||
| @@ -103,7 +103,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | @@ -103,7 +103,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | ||
| 103 | "id": "55523100-3", | 103 | "id": "55523100-3", |
| 104 | "scheme": "CPV" | 104 | "scheme": "CPV" |
| 105 | }, | 105 | }, |
| 106 | - "description": description_with_id('i', fake.sentence(nb_words=10, variable_nb_words=True)), | 106 | + "description": field_with_id('i', fake.sentence(nb_words=10, variable_nb_words=True)), |
| 107 | "id": "2dc54675d6364e2baffbc0f8e74432ac", | 107 | "id": "2dc54675d6364e2baffbc0f8e74432ac", |
| 108 | "deliveryDate": { | 108 | "deliveryDate": { |
| 109 | "endDate": (now + timedelta(days=5)).isoformat() | 109 | "endDate": (now + timedelta(days=5)).isoformat() |
| @@ -195,19 +195,11 @@ def test_tender_data_multiple_items(intervals): | @@ -195,19 +195,11 @@ def test_tender_data_multiple_items(intervals): | ||
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | def test_tender_data_multiple_lots(intervals): | 197 | def test_tender_data_multiple_lots(intervals): |
| 198 | - tender = test_tender_data_multiple_items(intervals) | 198 | + tender = test_tender_data(intervals) |
| 199 | first_lot_id = "3c8f387879de4c38957402dbdb8b31af" | 199 | first_lot_id = "3c8f387879de4c38957402dbdb8b31af" |
| 200 | - second_lot_id = "bcac8d2ceb5f4227b841a2211f5cb646" | ||
| 201 | - | ||
| 202 | - for item in tender['items'][:-1]: | ||
| 203 | - item['relatedLot'] = first_lot_id | ||
| 204 | - tender['items'][-1]['relatedLot'] = second_lot_id | ||
| 205 | - tender['lots'] = [] | ||
| 206 | - for _ in range(2): | ||
| 207 | - new_lot = test_lot_data() | ||
| 208 | - tender['lots'].append(new_lot) | 200 | + tender['items'][0]['relatedLot'] = first_lot_id |
| 201 | + tender['lots'] = [test_lot_data()] | ||
| 209 | tender['lots'][0]['id'] = first_lot_id | 202 | tender['lots'][0]['id'] = first_lot_id |
| 210 | - tender['lots'][1]['id'] = second_lot_id | ||
| 211 | return tender | 203 | return tender |
| 212 | 204 | ||
| 213 | 205 | ||
| @@ -219,8 +211,8 @@ def test_tender_data_meat(intervals): | @@ -219,8 +211,8 @@ def test_tender_data_meat(intervals): | ||
| 219 | { | 211 | { |
| 220 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | 212 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", |
| 221 | "featureOf": "tenderer", | 213 | "featureOf": "tenderer", |
| 222 | - "title": "Термін оплати", | ||
| 223 | - "description": description_with_id('f', "Умови відстрочки платежу після поставки товару"), | 214 | + "title": field_with_id('f', "Термін оплати"), |
| 215 | + "description": "Умови відстрочки платежу після поставки товару", | ||
| 224 | "enum": [ | 216 | "enum": [ |
| 225 | { | 217 | { |
| 226 | "value": 0.15, | 218 | "value": 0.15, |
| @@ -244,8 +236,8 @@ def test_tender_data_meat(intervals): | @@ -244,8 +236,8 @@ def test_tender_data_meat(intervals): | ||
| 244 | "code": "48cfd91612c04125ab406374d7cc8d93", | 236 | "code": "48cfd91612c04125ab406374d7cc8d93", |
| 245 | "featureOf": "item", | 237 | "featureOf": "item", |
| 246 | "relatedItem": item_id, | 238 | "relatedItem": item_id, |
| 247 | - "title": "Сорт", | ||
| 248 | - "description": description_with_id('f', "Сорт продукції"), | 239 | + "title": field_with_id('f', "Сорт"), |
| 240 | + "description": "Сорт продукції", | ||
| 249 | "enum": [ | 241 | "enum": [ |
| 250 | { | 242 | { |
| 251 | "value": 0.05, | 243 | "value": 0.05, |
| @@ -265,7 +257,7 @@ def test_tender_data_meat(intervals): | @@ -265,7 +257,7 @@ def test_tender_data_meat(intervals): | ||
| 265 | return tender | 257 | return tender |
| 266 | 258 | ||
| 267 | 259 | ||
| 268 | -def test_question_data(lot=False): | 260 | +def test_question_data(): |
| 269 | data = munchify({ | 261 | data = munchify({ |
| 270 | "data": { | 262 | "data": { |
| 271 | "author": { | 263 | "author": { |
| @@ -289,12 +281,10 @@ def test_question_data(lot=False): | @@ -289,12 +281,10 @@ def test_question_data(lot=False): | ||
| 289 | }, | 281 | }, |
| 290 | "name": fake.company() | 282 | "name": fake.company() |
| 291 | }, | 283 | }, |
| 292 | - "description": description_with_id('q', fake.sentence(nb_words=10, variable_nb_words=True)), | ||
| 293 | - "title": fake.sentence(nb_words=6, variable_nb_words=True) | 284 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), |
| 285 | + "title": field_with_id('q', fake.sentence(nb_words=6, variable_nb_words=True)) | ||
| 294 | } | 286 | } |
| 295 | }) | 287 | }) |
| 296 | - if lot: | ||
| 297 | - data = test_lot_question_data(data) | ||
| 298 | return data | 288 | return data |
| 299 | 289 | ||
| 300 | 290 | ||
| @@ -437,7 +427,7 @@ def test_complaint_reply_data(): | @@ -437,7 +427,7 @@ def test_complaint_reply_data(): | ||
| 437 | }) | 427 | }) |
| 438 | 428 | ||
| 439 | 429 | ||
| 440 | -def test_bid_data(above_threshold=False): | 430 | +def test_bid_data(mode): |
| 441 | bid = munchify({ | 431 | bid = munchify({ |
| 442 | "data": { | 432 | "data": { |
| 443 | "tenderers": [ | 433 | "tenderers": [ |
| @@ -461,23 +451,25 @@ def test_bid_data(above_threshold=False): | @@ -461,23 +451,25 @@ def test_bid_data(above_threshold=False): | ||
| 461 | }, | 451 | }, |
| 462 | "name": fake.company() | 452 | "name": fake.company() |
| 463 | } | 453 | } |
| 464 | - ], | ||
| 465 | - "value": { | ||
| 466 | - "currency": "UAH", | ||
| 467 | - "amount": 500, | ||
| 468 | - "valueAddedTaxIncluded": True | ||
| 469 | - } | 454 | + ] |
| 470 | } | 455 | } |
| 471 | }) | 456 | }) |
| 472 | - if above_threshold: | 457 | + if 'open' in mode: |
| 473 | bid.data['selfEligible'] = True | 458 | bid.data['selfEligible'] = True |
| 474 | bid.data['selfQualified'] = True | 459 | bid.data['selfQualified'] = True |
| 460 | + if mode == 'multiLot': | ||
| 461 | + bid.data.lotValues = list() | ||
| 462 | + for _ in range(2): | ||
| 463 | + bid.data.lotValues.append(test_bid_value()) | ||
| 464 | + else: | ||
| 465 | + bid.data.update(test_bid_value()) | ||
| 466 | + if mode == 'meat': | ||
| 467 | + bid.update(test_bid_params()) | ||
| 475 | return bid | 468 | return bid |
| 476 | 469 | ||
| 477 | 470 | ||
| 478 | -def test_bid_data_meat_tender(): | ||
| 479 | - bid = test_bid_data() | ||
| 480 | - bid.data.update({ | 471 | +def test_bid_params(): |
| 472 | + return munchify({ | ||
| 481 | "parameters": [ | 473 | "parameters": [ |
| 482 | { | 474 | { |
| 483 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | 475 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", |
| @@ -489,35 +481,15 @@ def test_bid_data_meat_tender(): | @@ -489,35 +481,15 @@ def test_bid_data_meat_tender(): | ||
| 489 | } | 481 | } |
| 490 | ] | 482 | ] |
| 491 | }) | 483 | }) |
| 492 | - return bid | ||
| 493 | - | ||
| 494 | 484 | ||
| 495 | -def test_lots_bid_data(): | ||
| 496 | - bid = test_bid_data() | ||
| 497 | - del bid.data.value | ||
| 498 | - bid.data.update({ | ||
| 499 | - "lotValues": [ | ||
| 500 | - { | ||
| 501 | - "value": { | ||
| 502 | - "currency": "UAH", | ||
| 503 | - "amount": fake.random_int(max=1999), | ||
| 504 | - "valueAddedTaxIncluded": True | ||
| 505 | - }, | ||
| 506 | - "relatedLot": "3c8f387879de4c38957402dbdb8b31af", | ||
| 507 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
| 508 | - }, | ||
| 509 | - { | 485 | +def test_bid_value(): |
| 486 | + return munchify({ | ||
| 510 | "value": { | 487 | "value": { |
| 511 | "currency": "UAH", | 488 | "currency": "UAH", |
| 512 | "amount": fake.random_int(max=1999), | 489 | "amount": fake.random_int(max=1999), |
| 513 | "valueAddedTaxIncluded": True | 490 | "valueAddedTaxIncluded": True |
| 514 | - }, | ||
| 515 | - "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
| 516 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
| 517 | - } | ||
| 518 | - ] | ||
| 519 | - }) | ||
| 520 | - return bid | 491 | + } |
| 492 | + }) | ||
| 521 | 493 | ||
| 522 | 494 | ||
| 523 | def test_supplier_data(): | 495 | def test_supplier_data(): |
| @@ -562,7 +534,7 @@ def test_award_data(): | @@ -562,7 +534,7 @@ def test_award_data(): | ||
| 562 | def test_item_data(): | 534 | def test_item_data(): |
| 563 | now = get_now() | 535 | now = get_now() |
| 564 | return munchify({ | 536 | return munchify({ |
| 565 | - "description": description_with_id('i', fake.catch_phrase()), | 537 | + "description": field_with_id('i', fake.catch_phrase()), |
| 566 | "deliveryDate": { | 538 | "deliveryDate": { |
| 567 | "endDate": (now + timedelta(days=5)).isoformat() | 539 | "endDate": (now + timedelta(days=5)).isoformat() |
| 568 | }, | 540 | }, |
| @@ -644,8 +616,8 @@ def test_invalid_features_data(): | @@ -644,8 +616,8 @@ def test_invalid_features_data(): | ||
| 644 | def test_lot_data(): | 616 | def test_lot_data(): |
| 645 | return munchify( | 617 | return munchify( |
| 646 | { | 618 | { |
| 647 | - "description": description_with_id('l', fake.sentence(nb_words=10, variable_nb_words=True)), | ||
| 648 | - "title": fake.sentence(nb_words=6, variable_nb_words=True), | 619 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), |
| 620 | + "title": field_with_id('l', fake.sentence(nb_words=6, variable_nb_words=True)), | ||
| 649 | "value": { | 621 | "value": { |
| 650 | "currency": "UAH", | 622 | "currency": "UAH", |
| 651 | "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True), | 623 | "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True), |
| @@ -660,22 +632,19 @@ def test_lot_data(): | @@ -660,22 +632,19 @@ def test_lot_data(): | ||
| 660 | }) | 632 | }) |
| 661 | 633 | ||
| 662 | 634 | ||
| 663 | -def test_lot_document_data(document, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
| 664 | - lot_document = {"documentOf": "lot", "relatedItem": lot_id} | ||
| 665 | - lot_document.update(document.data) | ||
| 666 | - return munchify({"data": lot_document}) | 635 | +def test_lot_document_data(document, lot_id): |
| 636 | + document.data.update({"documentOf": "lot", "relatedItem": lot_id}) | ||
| 637 | + return munchify(document) | ||
| 667 | 638 | ||
| 668 | 639 | ||
| 669 | -def test_lot_question_data(question, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
| 670 | - lot_question = {"questionOf": "lot", "relatedItem": lot_id} | ||
| 671 | - lot_question.update(question.data) | ||
| 672 | - return munchify({"data": lot_question}) | 640 | +def test_lot_question_data(question, lot_id): |
| 641 | + question.data.update({"questionOf": "lot", "relatedItem": lot_id}) | ||
| 642 | + return munchify(question) | ||
| 673 | 643 | ||
| 674 | 644 | ||
| 675 | -def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
| 676 | - lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | ||
| 677 | - lot_complaint.update(complaint.data) | ||
| 678 | - return munchify({"data": lot_complaint}) | 645 | +def test_lot_complaint_data(complaint, lot_id): |
| 646 | + complaint.data.update({"complaintOf": "lot", "relatedItem": lot_id}) | ||
| 647 | + return munchify(complaint) | ||
| 679 | 648 | ||
| 680 | 649 | ||
| 681 | def test_tender_data_openua(intervals): | 650 | def test_tender_data_openua(intervals): |
| @@ -157,11 +157,15 @@ Get Broker Property By Username | @@ -157,11 +157,15 @@ Get Broker Property By Username | ||
| 157 | ... tender_uaid=${TENDER['TENDER_UAID']} | 157 | ... tender_uaid=${TENDER['TENDER_UAID']} |
| 158 | ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} | 158 | ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} |
| 159 | ... tender_owner=${USERS.users['${tender_owner}'].broker} | 159 | ... tender_owner=${USERS.users['${tender_owner}'].broker} |
| 160 | + ... mode=${mode} | ||
| 160 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | 161 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' |
| 161 | ... Run Keyword And Ignore Error | 162 | ... Run Keyword And Ignore Error |
| 162 | ... Set To Dictionary ${artifact} | 163 | ... Set To Dictionary ${artifact} |
| 163 | ... access_token=${USERS.users['${tender_owner}'].access_token} | 164 | ... access_token=${USERS.users['${tender_owner}'].access_token} |
| 164 | ... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id} | 165 | ... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id} |
| 166 | + ${status} ${lots_ids}= Run Keyword And Ignore Error Отримати ідентифікатори об’єктів ${viewer} lots | ||
| 167 | + Run Keyword If ${status}'=='PASS' | ||
| 168 | + ... Set To Dictionary ${artifact} lots=${lots_ids} | ||
| 165 | Log ${artifact} | 169 | Log ${artifact} |
| 166 | log_object_data ${artifact} artifact update=${True} | 170 | log_object_data ${artifact} artifact update=${True} |
| 167 | 171 | ||
| @@ -216,8 +220,7 @@ Get Broker Property By Username | @@ -216,8 +220,7 @@ Get Broker Property By Username | ||
| 216 | 220 | ||
| 217 | 221 | ||
| 218 | Підготовка даних для запитання | 222 | Підготовка даних для запитання |
| 219 | - [Arguments] ${lot}=${False} | ||
| 220 | - ${question}= test_question_data ${lot} | 223 | + ${question}= test_question_data |
| 221 | [Return] ${question} | 224 | [Return] ${question} |
| 222 | 225 | ||
| 223 | 226 | ||
| @@ -227,8 +230,7 @@ Get Broker Property By Username | @@ -227,8 +230,7 @@ Get Broker Property By Username | ||
| 227 | 230 | ||
| 228 | 231 | ||
| 229 | Підготувати дані для подання пропозиції | 232 | Підготувати дані для подання пропозиції |
| 230 | - [Arguments] ${aboveThreshold}=${False} | ||
| 231 | - ${supplier_data}= test_bid_data ${aboveThreshold} | 233 | + ${supplier_data}= test_bid_data ${mode} |
| 232 | [Return] ${supplier_data} | 234 | [Return] ${supplier_data} |
| 233 | 235 | ||
| 234 | 236 | ||
| @@ -448,13 +450,26 @@ Get Broker Property By Username | @@ -448,13 +450,26 @@ Get Broker Property By Username | ||
| 448 | Отримати дані із об’єкта тендера | 450 | Отримати дані із об’єкта тендера |
| 449 | [Arguments] ${username} ${object_id} ${field_name} | 451 | [Arguments] ${username} ${object_id} ${field_name} |
| 450 | ${object_type}= get_object_type_by_id ${object_id} | 452 | ${object_type}= get_object_type_by_id ${object_id} |
| 451 | - ${status} ${value}= Run Keyword And Ignore Error Run As ${username} Отримати інформацію із запитання ${object_id} ${field_name} | 453 | + ${status} ${value}= Run Keyword If '${object_type}'=='question' |
| 454 | + ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із запитання ${object_id} ${field_name} | ||
| 455 | + ... ELSE IF '${object_type}'=='lots' | ||
| 456 | + ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із лоту ${object_id} ${field_name} | ||
| 452 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} | 457 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} |
| 453 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} | 458 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} |
| 454 | ... ELSE Run As ${username} Отримати інформацію із тендера ${field} | 459 | ... ELSE Run As ${username} Отримати інформацію із тендера ${field} |
| 455 | [return] ${field_value} | 460 | [return] ${field_value} |
| 456 | 461 | ||
| 457 | 462 | ||
| 463 | +Отримати ідентифікатори об’єктів | ||
| 464 | + [Arguments] ${username} ${objects_type} | ||
| 465 | + @{objects_ids}= Create List | ||
| 466 | + @{objects}= Get from object ${USERS.users['${username}'].tender_data.data} ${objects_type} | ||
| 467 | + :FOR ${obj} IN @{objects} | ||
| 468 | + \ ${obj_id}= get_id_from_object ${obj} | ||
| 469 | + \ Append To List ${objects_ids} ${obj_id} | ||
| 470 | + [return] ${objects_ids} | ||
| 471 | + | ||
| 472 | + | ||
| 458 | Викликати для учасника | 473 | Викликати для учасника |
| 459 | [Arguments] ${username} ${command} @{arguments} | 474 | [Arguments] ${username} ${command} @{arguments} |
| 460 | Run keyword unless '${WARN_RUN_AS}' == '${True}' | 475 | Run keyword unless '${WARN_RUN_AS}' == '${True}' |
| @@ -76,7 +76,7 @@ ${mode} meat | @@ -76,7 +76,7 @@ ${mode} meat | ||
| 76 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 76 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
| 77 | Дочекатись дати початку прийому пропозицій ${provider} | 77 | Дочекатись дати початку прийому пропозицій ${provider} |
| 78 | sleep 90 | 78 | sleep 90 |
| 79 | - ${bid}= test bid data | 79 | + ${bid}= test bid data single |
| 80 | Log ${bid} | 80 | Log ${bid} |
| 81 | ${failbid}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 81 | ${failbid}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
| 82 | log ${failbid} | 82 | log ${failbid} |
| @@ -87,7 +87,7 @@ ${mode} meat | @@ -87,7 +87,7 @@ ${mode} meat | ||
| 87 | ... provider | 87 | ... provider |
| 88 | ... ${USERS.users['${provider}'].broker} | 88 | ... ${USERS.users['${provider}'].broker} |
| 89 | [Teardown] Оновити LAST_MODIFICATION_DATE | 89 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 90 | - ${bid}= test bid data meat tender | 90 | + ${bid}= Підготувати дані для подання пропозиції |
| 91 | Log ${bid} | 91 | Log ${bid} |
| 92 | ${bidresponses}= Create Dictionary | 92 | ${bidresponses}= Create Dictionary |
| 93 | Set To Dictionary ${bidresponses} bid ${bid} | 93 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -124,7 +124,7 @@ ${mode} meat | @@ -124,7 +124,7 @@ ${mode} meat | ||
| 124 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 124 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
| 125 | [Teardown] Оновити LAST_MODIFICATION_DATE | 125 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 126 | Дочекатись дати початку прийому пропозицій ${provider1} | 126 | Дочекатись дати початку прийому пропозицій ${provider1} |
| 127 | - ${bid}= test bid data meat tender | 127 | + ${bid}= Підготувати дані для подання пропозиції |
| 128 | Log ${bid} | 128 | Log ${bid} |
| 129 | ${bidresponses}= Create Dictionary | 129 | ${bidresponses}= Create Dictionary |
| 130 | Set To Dictionary ${bidresponses} bid ${bid} | 130 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -24,11 +24,12 @@ ${complaint_id} 1 | @@ -24,11 +24,12 @@ ${complaint_id} 1 | ||
| 24 | [Teardown] Оновити LAST_MODIFICATION_DATE | 24 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 25 | ${tender_data}= Підготовка даних для створення тендера | 25 | ${tender_data}= Підготовка даних для створення тендера |
| 26 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | 26 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} |
| 27 | - ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} | 27 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data} |
| 28 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | 28 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} |
| 29 | - Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | 29 | + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
| 30 | Log ${TENDER} | 30 | Log ${TENDER} |
| 31 | 31 | ||
| 32 | + | ||
| 32 | Можливість знайти мультилотовий тендер по ідентифікатору | 33 | Можливість знайти мультилотовий тендер по ідентифікатору |
| 33 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 34 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 34 | ... viewer tender_owner provider provider1 | 35 | ... viewer tender_owner provider provider1 |
| @@ -37,7 +38,38 @@ ${complaint_id} 1 | @@ -37,7 +38,38 @@ ${complaint_id} 1 | ||
| 37 | ... minimal | 38 | ... minimal |
| 38 | :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | 39 | :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} |
| 39 | \ Дочекатись синхронізації з майданчиком ${username} | 40 | \ Дочекатись синхронізації з майданчиком ${username} |
| 40 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 41 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 42 | + | ||
| 43 | +Можливість додати тендерну документацію лоту | ||
| 44 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
| 45 | + ... tender_owner | ||
| 46 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 47 | + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
| 48 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 49 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
| 50 | + ${filepath}= create_fake_doc | ||
| 51 | + Run As ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 52 | + | ||
| 53 | +Відображення заголовку першого лоту | ||
| 54 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 55 | + ... viewer tender_owner provider provider1 | ||
| 56 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 57 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 58 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
| 59 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 60 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 61 | + \ Звірити поле тендера із значенням ${username} | ||
| 62 | + \ ... ${USERS.users['${tender_owner}'].initial_data.data.lots[0].title} title | ||
| 63 | + \ ... object_id=${lot_id} | ||
| 64 | + | ||
| 65 | +Відображення опису першого лоту | ||
| 66 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 67 | + ... viewer | ||
| 68 | + ... ${USERS.users['${viewer}'].broker} | ||
| 69 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
| 70 | + Звірити поле тендера із значенням ${viewer} | ||
| 71 | + ... ${USERS.users['${tender_owner}'].initial_data.data.lots[0].description} description | ||
| 72 | + ... object_id=${lot_id} | ||
| 41 | 73 | ||
| 42 | ####### | 74 | ####### |
| 43 | #Операції з лотом | 75 | #Операції з лотом |
| @@ -48,81 +80,86 @@ ${complaint_id} 1 | @@ -48,81 +80,86 @@ ${complaint_id} 1 | ||
| 48 | ... ${USERS.users['${tender_owner}'].broker} | 80 | ... ${USERS.users['${tender_owner}'].broker} |
| 49 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 81 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
| 50 | [Teardown] Оновити LAST_MODIFICATION_DATE | 82 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 51 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 52 | ${lot}= Підготовка даних для створення лоту | 83 | ${lot}= Підготовка даних для створення лоту |
| 53 | - ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
| 54 | - ${lotresponses}= Create Dictionary | ||
| 55 | - Set To Dictionary ${lotresponses} resp0 ${lotcreate} | ||
| 56 | - Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
| 57 | - log ${lotcreate} | 84 | + ${lot_resp}= Run As ${tender_owner} Створити лот ${TENDER['TENDER_UAID']} ${lot} |
| 85 | + ${lot_id}= get_id_from_object ${lot.data} | ||
| 86 | + ${lot_data}= Create Dictionary lot=${lot} lot_resp=${lot_resp} lot_id=${lot_id} | ||
| 87 | + ${lot_data}= munch_dict arg=${lot_data} | ||
| 88 | + Set To Dictionary ${USERS.users['${tender_owner}']} lot_data=${lot_data} | ||
| 89 | + log ${lot_resp} | ||
| 58 | 90 | ||
| 59 | Можливість видалення лоту | 91 | Можливість видалення лоту |
| 60 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 92 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 61 | ... tender_owner | 93 | ... tender_owner |
| 62 | ... ${USERS.users['${tender_owner}'].broker} | 94 | ... ${USERS.users['${tender_owner}'].broker} |
| 63 | [Teardown] Оновити LAST_MODIFICATION_DATE | 95 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 64 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 65 | - ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} | ||
| 66 | - ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
| 67 | - Log ${lotdelete} | 96 | + Run As ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} |
| 68 | 97 | ||
| 69 | Можливість повторого створення лоту | 98 | Можливість повторого створення лоту |
| 70 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 99 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 71 | ... tender_owner | 100 | ... tender_owner |
| 72 | ... ${USERS.users['${tender_owner}'].broker} | 101 | ... ${USERS.users['${tender_owner}'].broker} |
| 73 | [Teardown] Оновити LAST_MODIFICATION_DATE | 102 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 74 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 75 | ${lot}= Підготовка даних для створення лоту | 103 | ${lot}= Підготовка даних для створення лоту |
| 76 | - ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
| 77 | - ${lotresponses}= Create Dictionary | ||
| 78 | - Set To Dictionary ${lotresponses} resp ${lotcreate} | ||
| 79 | - Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
| 80 | - log ${lotcreate} | 104 | + ${lot_resp}= Run As ${tender_owner} Створити лот ${TENDER['TENDER_UAID']} ${lot} |
| 105 | + ${lot_id}= get_id_from_object ${lot.data} | ||
| 106 | + ${lot_data}= Create Dictionary lot=${lot} lot_resp=${lot_resp} lot_id=${lot_id} | ||
| 107 | + ${lot_data}= munch_dict arg=${lot_data} | ||
| 108 | + Set To Dictionary ${USERS.users['${tender_owner}']} lot_data=${lot_data} | ||
| 109 | + log ${lot_resp} | ||
| 110 | + | ||
| 111 | +Відображення заголовку другого лоту | ||
| 112 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 113 | + ... viewer tender_owner provider provider1 | ||
| 114 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 115 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 116 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 117 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 118 | + \ Звірити поле тендера із значенням ${username} | ||
| 119 | + \ ... ${USERS.users['${tender_owner}'].lot_data.lot.data.title} title | ||
| 120 | + \ ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 81 | 121 | ||
| 82 | -Можливість змінити бюджет нового лоту до 8000 | 122 | +Відображення опису другого лоту |
| 123 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 124 | + ... viewer | ||
| 125 | + ... ${USERS.users['${viewer}'].broker} | ||
| 126 | + Звірити поле тендера із значенням ${viewer} | ||
| 127 | + ... ${USERS.users['${tender_owner}'].lot_data.lot.data.description} description | ||
| 128 | + ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 129 | + | ||
| 130 | +Відображення бюджету другого лоту | ||
| 131 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 132 | + ... viewer | ||
| 133 | + ... ${USERS.users['${viewer}'].broker} | ||
| 134 | + Звірити поле тендера із значенням ${viewer} | ||
| 135 | + ... ${USERS.users['${tender_owner}'].lot_data.lot.data.value.amount} value.amount | ||
| 136 | + ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 137 | + | ||
| 138 | +Можливість змінити бюджет другого лоту до 100 | ||
| 83 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 139 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 84 | ... tender_owner | 140 | ... tender_owner |
| 85 | ... ${USERS.users['${tender_owner}'].broker} | 141 | ... ${USERS.users['${tender_owner}'].broker} |
| 86 | [Teardown] Оновити LAST_MODIFICATION_DATE | 142 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 87 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 88 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
| 89 | - ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
| 90 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto8000resp ${fixlotto8000resp} | ||
| 91 | - log ${fixlotto8000resp} | 143 | + Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 100 |
| 144 | + | ||
| 92 | 145 | ||
| 93 | -Можливість змінити бюджет нового лоту до 100 | 146 | +Можливість змінити бюджет другого лоту до 8000 |
| 94 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 147 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 95 | ... tender_owner | 148 | ... tender_owner |
| 96 | ... ${USERS.users['${tender_owner}'].broker} | 149 | ... ${USERS.users['${tender_owner}'].broker} |
| 97 | [Teardown] Оновити LAST_MODIFICATION_DATE | 150 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 98 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 99 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
| 100 | - ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
| 101 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto100resp ${fixlotto100resp} | ||
| 102 | - log ${fixlotto100resp} | ||
| 103 | - | 151 | + Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 8000 |
| 104 | 152 | ||
| 105 | ##### | 153 | ##### |
| 106 | #Предмети закупівлі лоту | 154 | #Предмети закупівлі лоту |
| 107 | 155 | ||
| 108 | -Можливість додати позицію закупівлі в тендер | 156 | +Можливість добавити предмет закупівлі до другого лоту |
| 109 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 157 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 110 | ... tender_owner | 158 | ... tender_owner |
| 111 | ... ${USERS.users['${tender_owner}'].broker} | 159 | ... ${USERS.users['${tender_owner}'].broker} |
| 112 | [Teardown] Оновити LAST_MODIFICATION_DATE | 160 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 113 | - Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 | ||
| 114 | - | ||
| 115 | -Можливість добавити предмет закупівлі до лоту | ||
| 116 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 117 | - ... tender_owner | ||
| 118 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 119 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 120 | - ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | ||
| 121 | - Log ${items} | ||
| 122 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
| 123 | - Set To Dictionary ${items[-1]} relatedLot ${lot_id} | ||
| 124 | - Log ${items[-1]} | ||
| 125 | - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} | 161 | + ${item}= Підготовка даних для створення предмету закупівлі |
| 162 | + Run As ${tender_owner} Додати предмет закупівлі в лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} ${item} | ||
| 126 | 163 | ||
| 127 | Неможливість видалення лоту з прив’язаними предметами закупівлі | 164 | Неможливість видалення лоту з прив’язаними предметами закупівлі |
| 128 | [Documentation] | 165 | [Documentation] |
| @@ -130,126 +167,47 @@ ${complaint_id} 1 | @@ -130,126 +167,47 @@ ${complaint_id} 1 | ||
| 130 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 167 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 131 | ... tender_owner | 168 | ... tender_owner |
| 132 | ... ${USERS.users['${tender_owner}'].broker} | 169 | ... ${USERS.users['${tender_owner}'].broker} |
| 133 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 134 | - ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
| 135 | - Require Failure ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
| 136 | - | ||
| 137 | -Можливість видалити позиції закупівлі тендера | ||
| 138 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 139 | - ... tender_owner | ||
| 140 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 141 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 142 | - ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | ||
| 143 | - Log ${items} | ||
| 144 | - ${resp}= Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} | ||
| 145 | - Log ${resp} | ||
| 146 | - | ||
| 147 | -Можливість додати тендерну документацію лоту | ||
| 148 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
| 149 | - ... tender_owner | ||
| 150 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 151 | - [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
| 152 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 153 | - ${filepath}= create_fake_doc | ||
| 154 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
| 155 | - ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 156 | - ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply} | ||
| 157 | - log ${file_upload_process_data} | ||
| 158 | - Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data} | ||
| 159 | - Log ${lot_id} | ||
| 160 | - Log ${USERS.users['${tender_owner}']} | 170 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lot_data.lot_id} |
| 171 | + Require Failure ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 161 | 172 | ||
| 162 | 173 | ||
| 163 | ####### | 174 | ####### |
| 164 | #Запитання до лоту | 175 | #Запитання до лоту |
| 165 | 176 | ||
| 166 | -Можливість задати питання | 177 | +Можливість задати питання до лоту |
| 167 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 178 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
| 168 | ... provider | 179 | ... provider |
| 169 | ... ${USERS.users['${provider}'].broker} | 180 | ... ${USERS.users['${provider}'].broker} |
| 170 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 181 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
| 171 | [Teardown] Оновити LAST_MODIFICATION_DATE | 182 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 183 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 172 | ${question}= Підготовка даних для запитання | 184 | ${question}= Підготовка даних для запитання |
| 173 | - ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | 185 | + ${question_resp}= Run As ${provider} Задати питання до лоту ${TENDER['TENDER_UAID']} ${lot_id} ${question} |
| 174 | ${now}= Get Current TZdate | 186 | ${now}= Get Current TZdate |
| 175 | ${question.data.date}= Set variable ${now} | 187 | ${question.data.date}= Set variable ${now} |
| 176 | - ${question_id}= get_id_from_field ${question.data.description} | 188 | + ${question_id}= get_id_from_object ${question.data} |
| 177 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | 189 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} |
| 178 | ${question_data}= munch_dict arg=${question_data} | 190 | ${question_data}= munch_dict arg=${question_data} |
| 179 | - Set To Dictionary ${USERS.users['${provider}']} question_data ${question_data} | 191 | + Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} |
| 180 | 192 | ||
| 181 | 193 | ||
| 182 | -Можливість відповісти на запитання | 194 | +Можливість відповісти на запитання до лоту |
| 183 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 195 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
| 184 | ... tender_owner | 196 | ... tender_owner |
| 185 | ... ${USERS.users['${tender_owner}'].broker} | 197 | ... ${USERS.users['${tender_owner}'].broker} |
| 186 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 198 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
| 187 | [Teardown] Оновити LAST_MODIFICATION_DATE | 199 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 188 | ${answer}= Підготовка даних для відповіді на запитання | 200 | ${answer}= Підготовка даних для відповіді на запитання |
| 189 | - ${answer_resp}= Викликати для учасника ${tender_owner} | 201 | + ${answer_resp}= Run As ${tender_owner} |
| 190 | ... Відповісти на питання ${TENDER['TENDER_UAID']} | 202 | ... Відповісти на питання ${TENDER['TENDER_UAID']} |
| 191 | ... ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | 203 | ... ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} |
| 192 | ... question_id=${USERS.users['${provider}'].question_data.question_id} | 204 | ... question_id=${USERS.users['${provider}'].question_data.question_id} |
| 193 | ${now}= Get Current TZdate | 205 | ${now}= Get Current TZdate |
| 194 | ${answer.data.date}= Set variable ${now} | 206 | ${answer.data.date}= Set variable ${now} |
| 195 | ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | 207 | ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} |
| 196 | - Set To Dictionary ${USERS.users['${provider}']} answer_data ${answer_data} | 208 | + Set To Dictionary ${USERS.users['${provider}']} answer_data=${answer_data} |
| 197 | 209 | ||
| 198 | ###### | 210 | ###### |
| 199 | -#Cкарга на лот | ||
| 200 | -# | ||
| 201 | -# | ||
| 202 | -##### Дочекатися скарг на лот | ||
| 203 | -# | ||
| 204 | -# | ||
| 205 | -#Можливість подати скаргу на лот | ||
| 206 | -# [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
| 207 | -# [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 208 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 209 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 210 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 211 | -# | ||
| 212 | -#Можливість побачити скаргу користувачем | ||
| 213 | -# [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | ||
| 214 | -# Викликати для учасника ${provider} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 215 | -# | ||
| 216 | -#Можливість побачити скаргу анонімом | ||
| 217 | -# [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 218 | -# Викликати для учасника ${viewer} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 219 | -# | ||
| 220 | -#Можливість відхилити скаргу на лот | ||
| 221 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відхилити скаргу на умови | ||
| 222 | -# Set To Dictionary ${COMPLAINTS[0].data} status declined | ||
| 223 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${COMPLAINTS[${complaint_id}]} | ||
| 224 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
| 225 | -# викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 226 | -# | ||
| 227 | -#Можливість відкинути скаргу на лот | ||
| 228 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відкинути скаргу на умови | ||
| 229 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 230 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 231 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 232 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 233 | -# Set To Dictionary ${COMPLAINTS[0].data} status invalid | ||
| 234 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${COMPLAINTS[${complaint_id}]} | ||
| 235 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
| 236 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 237 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 238 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 239 | -# | ||
| 240 | -#Можливість задовільнити скаргу на лот | ||
| 241 | -# [Tags] ${USERS.users['${provider}'].broker}: Можливість відповісти на запитання | ||
| 242 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 243 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 244 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 245 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 246 | -# Set To Dictionary ${COMPLAINTS[0].data} status resolved | ||
| 247 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 2 ${COMPLAINTS[${complaint_id}]} | ||
| 248 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
| 249 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 250 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 251 | -# | ||
| 252 | -###### | ||
| 253 | #Подання пропозицій | 211 | #Подання пропозицій |
| 254 | 212 | ||
| 255 | Відображення початку періоду прийому пропозицій оголошеного тендера | 213 | Відображення початку періоду прийому пропозицій оголошеного тендера |
| @@ -279,14 +237,10 @@ ${complaint_id} 1 | @@ -279,14 +237,10 @@ ${complaint_id} 1 | ||
| 279 | ... provider | 237 | ... provider |
| 280 | ... ${USERS.users['${provider}'].broker} | 238 | ... ${USERS.users['${provider}'].broker} |
| 281 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 239 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
| 282 | - ${bid}= test lots bid data | ||
| 283 | - Log ${bid} | ||
| 284 | - ${bidresponses}= Create Dictionary | ||
| 285 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
| 286 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 287 | - ${bid_before_bidperiod_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 288 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | ||
| 289 | - log ${USERS.users['${provider}']} | 240 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots |
| 241 | + ${bid}= Підготувати дані для подання пропозиції | ||
| 242 | + ${bid_before_bidperiod_resp}= Require Failure ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 243 | + log ${bid_before_bidperiod_resp} | ||
| 290 | 244 | ||
| 291 | Неможливість подати цінову пропозицію без прив’язки до лоту | 245 | Неможливість подати цінову пропозицію без прив’язки до лоту |
| 292 | [Documentation] | 246 | [Documentation] |
| @@ -296,35 +250,28 @@ ${complaint_id} 1 | @@ -296,35 +250,28 @@ ${complaint_id} 1 | ||
| 296 | ... ${USERS.users['${provider}'].broker} | 250 | ... ${USERS.users['${provider}'].broker} |
| 297 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 251 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
| 298 | Дочекатись дати початку прийому пропозицій ${provider} | 252 | Дочекатись дати початку прийому пропозицій ${provider} |
| 299 | - ${bid}= test bid data | ||
| 300 | - Log ${bid} | ||
| 301 | - ${bidresponses}= Create Dictionary | ||
| 302 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
| 303 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 253 | + ${bid}= Підготувати дані для подання пропозиції |
| 304 | ${no_lot_bid_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 254 | ${no_lot_bid_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
| 305 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | ||
| 306 | - log ${USERS.users['${provider}']} | 255 | + log ${no_lot_bid_resp} |
| 307 | 256 | ||
| 308 | Можливість подати цінову пропозицію першим учасником | 257 | Можливість подати цінову пропозицію першим учасником |
| 309 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 258 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 310 | ... provider | 259 | ... provider |
| 311 | ... ${USERS.users['${provider}'].broker} | 260 | ... ${USERS.users['${provider}'].broker} |
| 312 | [Teardown] Оновити LAST_MODIFICATION_DATE | 261 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 313 | - ${bid}= test lots bid data | ||
| 314 | - Log ${bid} | ||
| 315 | - ${bidresponses}= Create Dictionary | ||
| 316 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
| 317 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 318 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 319 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 320 | - log ${USERS.users['${provider}']} | 262 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots |
| 263 | + ${bid}= Підготувати дані для подання пропозиції | ||
| 264 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
| 265 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
| 266 | + ${resp}= Run As ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 267 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp=${resp} | ||
| 321 | 268 | ||
| 322 | Можливість скасувати цінову пропозицію | 269 | Можливість скасувати цінову пропозицію |
| 323 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 270 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
| 324 | ... provider | 271 | ... provider |
| 325 | ... ${USERS.users['${provider}'].broker} | 272 | ... ${USERS.users['${provider}'].broker} |
| 326 | [Teardown] Оновити LAST_MODIFICATION_DATE | 273 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 327 | - ${canceledbidresp}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 274 | + ${canceledbidresp}= Run As ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} |
| 328 | Log ${canceledbidresp} | 275 | Log ${canceledbidresp} |
| 329 | 276 | ||
| 330 | Можливість подати повторно цінову пропозицію першим учасником | 277 | Можливість подати повторно цінову пропозицію першим учасником |
| @@ -333,22 +280,19 @@ ${complaint_id} 1 | @@ -333,22 +280,19 @@ ${complaint_id} 1 | ||
| 333 | ... ${USERS.users['${provider}'].broker} | 280 | ... ${USERS.users['${provider}'].broker} |
| 334 | [Teardown] Оновити LAST_MODIFICATION_DATE | 281 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 335 | Дочекатись дати початку прийому пропозицій ${provider} | 282 | Дочекатись дати початку прийому пропозицій ${provider} |
| 336 | - ${bid}= test lots bid data | ||
| 337 | - Log ${bid} | ||
| 338 | - ${bidresponses}= Create Dictionary | ||
| 339 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
| 340 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 341 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 342 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 343 | - log ${USERS.users['${provider}'].bidresponses} | 283 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots |
| 284 | + ${bid}= Підготувати дані для подання пропозиції | ||
| 285 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
| 286 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
| 287 | + ${resp}= Run As ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 288 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp=${resp} | ||
| 344 | 289 | ||
| 345 | Можливість змінити повторну цінову пропозицію до 2000 | 290 | Можливість змінити повторну цінову пропозицію до 2000 |
| 346 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 291 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 347 | ... provider | 292 | ... provider |
| 348 | ... ${USERS.users['${provider}'].broker} | 293 | ... ${USERS.users['${provider}'].broker} |
| 349 | [Teardown] Оновити LAST_MODIFICATION_DATE | 294 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 350 | - ${fixbidto2000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | ||
| 351 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto2000resp ${fixbidto2000resp} | 295 | + ${fixbidto2000resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 |
| 352 | log ${fixbidto2000resp} | 296 | log ${fixbidto2000resp} |
| 353 | 297 | ||
| 354 | Можливість змінити повторну цінову пропозицію до 10 | 298 | Можливість змінити повторну цінову пропозицію до 10 |
| @@ -356,8 +300,7 @@ ${complaint_id} 1 | @@ -356,8 +300,7 @@ ${complaint_id} 1 | ||
| 356 | ... provider | 300 | ... provider |
| 357 | ... ${USERS.users['${provider}'].broker} | 301 | ... ${USERS.users['${provider}'].broker} |
| 358 | [Teardown] Оновити LAST_MODIFICATION_DATE | 302 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 359 | - ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 | ||
| 360 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | 303 | + ${fixbidto10resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 |
| 361 | log ${fixbidto10resp} | 304 | log ${fixbidto10resp} |
| 362 | 305 | ||
| 363 | Можливість подати цінову пропозицію другим учасником | 306 | Можливість подати цінову пропозицію другим учасником |
| @@ -367,15 +310,12 @@ ${complaint_id} 1 | @@ -367,15 +310,12 @@ ${complaint_id} 1 | ||
| 367 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 310 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
| 368 | [Teardown] Оновити LAST_MODIFICATION_DATE | 311 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 369 | Дочекатись дати початку прийому пропозицій ${provider1} | 312 | Дочекатись дати початку прийому пропозицій ${provider1} |
| 370 | - ${bid}= test lots bid data | ||
| 371 | - Log ${bid} | ||
| 372 | - ${bidresponses}= Create Dictionary | ||
| 373 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
| 374 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 375 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 376 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 377 | - log ${resp} | ||
| 378 | - log ${USERS.users['${provider1}'].bidresponses} | 313 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider1} lots |
| 314 | + ${bid}= Підготувати дані для подання пропозиції | ||
| 315 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
| 316 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses=${bidresponses} | ||
| 317 | + ${resp}= Run As ${provider1} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 318 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp=${resp} | ||
| 379 | 319 | ||
| 380 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | 320 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій |
| 381 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 321 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
| @@ -393,7 +333,6 @@ ${complaint_id} 1 | @@ -393,7 +333,6 @@ ${complaint_id} 1 | ||
| 393 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 333 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
| 394 | Дочекатись дати закінчення прийому пропозицій ${provider1} | 334 | Дочекатись дати закінчення прийому пропозицій ${provider1} |
| 395 | ${failfixbidto2000resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | 335 | ${failfixbidto2000resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 |
| 396 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto2000resp ${failfixbidto2000resp} | ||
| 397 | log ${failfixbidto2000resp} | 336 | log ${failfixbidto2000resp} |
| 398 | 337 | ||
| 399 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 338 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
| @@ -403,7 +342,6 @@ ${complaint_id} 1 | @@ -403,7 +342,6 @@ ${complaint_id} 1 | ||
| 403 | ... provider1 | 342 | ... provider1 |
| 404 | ... ${USERS.users['${provider1}'].broker} | 343 | ... ${USERS.users['${provider1}'].broker} |
| 405 | ${failfixbidto1resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 1 | 344 | ${failfixbidto1resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 1 |
| 406 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | ||
| 407 | log ${failfixbidto1resp} | 345 | log ${failfixbidto1resp} |
| 408 | 346 | ||
| 409 | Неможливість скасувати цінову пропозицію | 347 | Неможливість скасувати цінову пропозицію |
| @@ -413,3 +351,4 @@ ${complaint_id} 1 | @@ -413,3 +351,4 @@ ${complaint_id} 1 | ||
| 413 | ... provider1 | 351 | ... provider1 |
| 414 | ... ${USERS.users['${provider1}'].broker} | 352 | ... ${USERS.users['${provider1}'].broker} |
| 415 | ${biddingresponse}= Require Failure ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 353 | ${biddingresponse}= Require Failure ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} |
| 354 | + log ${biddingresponse} |
| @@ -106,7 +106,7 @@ ${mode} openeu | @@ -106,7 +106,7 @@ ${mode} openeu | ||
| 106 | ... provider | 106 | ... provider |
| 107 | ... ${USERS.users['${provider}'].broker} | 107 | ... ${USERS.users['${provider}'].broker} |
| 108 | [Teardown] Оновити LAST_MODIFICATION_DATE | 108 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 109 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 109 | + ${bid}= Підготувати дані для подання пропозиції |
| 110 | Log ${bid} | 110 | Log ${bid} |
| 111 | ${bidresponses}= Create Dictionary | 111 | ${bidresponses}= Create Dictionary |
| 112 | Set To Dictionary ${bidresponses} bid ${bid} | 112 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -176,7 +176,7 @@ ${mode} openeu | @@ -176,7 +176,7 @@ ${mode} openeu | ||
| 176 | ... provider1 | 176 | ... provider1 |
| 177 | ... ${USERS.users['${provider1}'].broker} | 177 | ... ${USERS.users['${provider1}'].broker} |
| 178 | [Teardown] Оновити LAST_MODIFICATION_DATE | 178 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 179 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 179 | + ${bid}= Підготувати дані для подання пропозиції |
| 180 | Log ${bid} | 180 | Log ${bid} |
| 181 | ${bidresponses}= Create Dictionary | 181 | ${bidresponses}= Create Dictionary |
| 182 | Set To Dictionary ${bidresponses} bid ${bid} | 182 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -226,7 +226,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -226,7 +226,7 @@ Cкасувати цінову пропозицію другого учасни | ||
| 226 | ... provider1 | 226 | ... provider1 |
| 227 | ... ${USERS.users['${provider1}'].broker} | 227 | ... ${USERS.users['${provider1}'].broker} |
| 228 | [Teardown] Оновити LAST_MODIFICATION_DATE | 228 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 229 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 229 | + ${bid}= Підготувати дані для подання пропозиції |
| 230 | Log ${bid} | 230 | Log ${bid} |
| 231 | ${bidresponses}= Create Dictionary | 231 | ${bidresponses}= Create Dictionary |
| 232 | Set To Dictionary ${bidresponses} bid ${bid} | 232 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -348,7 +348,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -348,7 +348,7 @@ Cкасувати цінову пропозицію другого учасни | ||
| 348 | ... provider1 | 348 | ... provider1 |
| 349 | ... ${USERS.users['${provider1}'].broker} | 349 | ... ${USERS.users['${provider1}'].broker} |
| 350 | [Teardown] Оновити LAST_MODIFICATION_DATE | 350 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 351 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 351 | + ${bid}= Підготувати дані для подання пропозиції |
| 352 | Log ${bid} | 352 | Log ${bid} |
| 353 | ${bidresponses}= Create Dictionary | 353 | ${bidresponses}= Create Dictionary |
| 354 | Set To Dictionary ${bidresponses} bid ${bid} | 354 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -98,7 +98,7 @@ ${mode} openua | @@ -98,7 +98,7 @@ ${mode} openua | ||
| 98 | ... provider | 98 | ... provider |
| 99 | ... ${USERS.users['${provider}'].broker} | 99 | ... ${USERS.users['${provider}'].broker} |
| 100 | [Teardown] Оновити LAST_MODIFICATION_DATE | 100 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 101 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 101 | + ${bid}= Підготувати дані для подання пропозиції |
| 102 | Log ${bid} | 102 | Log ${bid} |
| 103 | ${bidresponses}= Create Dictionary | 103 | ${bidresponses}= Create Dictionary |
| 104 | Set To Dictionary ${bidresponses} bid ${bid} | 104 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -112,7 +112,7 @@ ${mode} openua | @@ -112,7 +112,7 @@ ${mode} openua | ||
| 112 | ... provider1 | 112 | ... provider1 |
| 113 | ... ${USERS.users['${provider1}'].broker} | 113 | ... ${USERS.users['${provider1}'].broker} |
| 114 | [Teardown] Оновити LAST_MODIFICATION_DATE | 114 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 115 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 115 | + ${bid}= Підготувати дані для подання пропозиції |
| 116 | Log ${bid} | 116 | Log ${bid} |
| 117 | ${bidresponses}= Create Dictionary | 117 | ${bidresponses}= Create Dictionary |
| 118 | Set To Dictionary ${bidresponses} bid ${bid} | 118 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -162,7 +162,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -162,7 +162,7 @@ Cкасувати цінову пропозицію другого учасни | ||
| 162 | ... provider1 | 162 | ... provider1 |
| 163 | ... ${USERS.users['${provider1}'].broker} | 163 | ... ${USERS.users['${provider1}'].broker} |
| 164 | [Teardown] Оновити LAST_MODIFICATION_DATE | 164 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 165 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 165 | + ${bid}= Підготувати дані для подання пропозиції |
| 166 | Log ${bid} | 166 | Log ${bid} |
| 167 | ${bidresponses}= Create Dictionary | 167 | ${bidresponses}= Create Dictionary |
| 168 | Set To Dictionary ${bidresponses} bid ${bid} | 168 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -287,7 +287,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -287,7 +287,7 @@ Cкасувати цінову пропозицію другого учасни | ||
| 287 | ... provider1 | 287 | ... provider1 |
| 288 | ... ${USERS.users['${provider1}'].broker} | 288 | ... ${USERS.users['${provider1}'].broker} |
| 289 | [Teardown] Оновити LAST_MODIFICATION_DATE | 289 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 290 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 290 | + ${bid}= Підготувати дані для подання пропозиції |
| 291 | Log ${bid} | 291 | Log ${bid} |
| 292 | ${bidresponses}= Create Dictionary | 292 | ${bidresponses}= Create Dictionary |
| 293 | Set To Dictionary ${bidresponses} bid ${bid} | 293 | Set To Dictionary ${bidresponses} bid ${bid} |
| @@ -20,7 +20,6 @@ from .initial_data import ( | @@ -20,7 +20,6 @@ from .initial_data import ( | ||
| 20 | create_fake_sentence, | 20 | create_fake_sentence, |
| 21 | test_award_data, | 21 | test_award_data, |
| 22 | test_bid_data, | 22 | test_bid_data, |
| 23 | - test_bid_data_meat_tender, | ||
| 24 | test_cancel_claim_data, | 23 | test_cancel_claim_data, |
| 25 | test_cancel_tender_data, | 24 | test_cancel_tender_data, |
| 26 | test_change_cancellation_document_field_data, | 25 | test_change_cancellation_document_field_data, |
| @@ -38,7 +37,6 @@ from .initial_data import ( | @@ -38,7 +37,6 @@ from .initial_data import ( | ||
| 38 | test_lot_data, | 37 | test_lot_data, |
| 39 | test_lot_document_data, | 38 | test_lot_document_data, |
| 40 | test_lot_question_data, | 39 | test_lot_question_data, |
| 41 | - test_lots_bid_data, | ||
| 42 | test_question_answer_data, | 40 | test_question_answer_data, |
| 43 | test_question_data, | 41 | test_question_data, |
| 44 | test_submit_claim_data, | 42 | test_submit_claim_data, |
| @@ -383,8 +381,11 @@ def munch_dict(arg=None, data=False): | @@ -383,8 +381,11 @@ def munch_dict(arg=None, data=False): | ||
| 383 | return munchify(arg) | 381 | return munchify(arg) |
| 384 | 382 | ||
| 385 | 383 | ||
| 386 | -def get_id_from_field(field): | ||
| 387 | - return re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', field).group(1) | 384 | +def get_id_from_object(obj): |
| 385 | + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['title']) | ||
| 386 | + if not obj_id: | ||
| 387 | + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['description']) | ||
| 388 | + return obj_id.group(1) | ||
| 388 | 389 | ||
| 389 | 390 | ||
| 390 | def get_object_type_by_id(object_id): | 391 | def get_object_type_by_id(object_id): |
| @@ -396,7 +397,7 @@ def get_object_index_by_id(data, object_id): | @@ -396,7 +397,7 @@ def get_object_index_by_id(data, object_id): | ||
| 396 | if not data: | 397 | if not data: |
| 397 | return 0 | 398 | return 0 |
| 398 | for index, element in enumerate(data): | 399 | for index, element in enumerate(data): |
| 399 | - element_id = get_id_from_field(element['description']) | 400 | + element_id = get_id_from_object(element) |
| 400 | if element_id == object_id: | 401 | if element_id == object_id: |
| 401 | break | 402 | break |
| 402 | else: | 403 | else: |
| @@ -328,7 +328,7 @@ ${mode} single | @@ -328,7 +328,7 @@ ${mode} single | ||
| 328 | ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | 328 | ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} |
| 329 | ${now}= Get Current TZdate | 329 | ${now}= Get Current TZdate |
| 330 | ${question.data.date}= Set variable ${now} | 330 | ${question.data.date}= Set variable ${now} |
| 331 | - ${question_id}= get_id_from_field ${question.data.description} | 331 | + ${question_id}= get_id_from_object ${question.data} |
| 332 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | 332 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} |
| 333 | ${question_data}= munch_dict arg=${question_data} | 333 | ${question_data}= munch_dict arg=${question_data} |
| 334 | Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} | 334 | Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} |
Please
register
or
login
to post a comment