Commit 5568bd1c2eb653f0df7d6d861cd23c408d24ed0e
Merge pull request #28 from Leits/master
Add tests for MEAT and multilot tenders
Showing
10 changed files
with
773 additions
and
14 deletions
| @@ -35,6 +35,7 @@ gh = git://github.com/ | @@ -35,6 +35,7 @@ gh = git://github.com/ | ||
| 35 | gh_push = git@github.com: | 35 | gh_push = git@github.com: |
| 36 | 36 | ||
| 37 | [sources] | 37 | [sources] |
| 38 | +barbecue = git ${remotes:gh}openprocurement/barbecue.git | ||
| 38 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git | 39 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git |
| 39 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git | 40 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git |
| 40 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git | 41 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git |
| @@ -121,10 +121,9 @@ Library openprocurement_client_helper.py | @@ -121,10 +121,9 @@ Library openprocurement_client_helper.py | ||
| 121 | ${internalid}= Отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | 121 | ${internalid}= Отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
| 122 | Отримати тендер ${ARGUMENTS[0]} ${internalid} | 122 | Отримати тендер ${ARGUMENTS[0]} ${internalid} |
| 123 | @{items}= Get From Object ${TENDER_DATA.data} items | 123 | @{items}= Get From Object ${TENDER_DATA.data} items |
| 124 | - ${item}= get variable value ${items[1]} | ||
| 125 | - Run Keyword And Continue On Failure Remove From Dictionary ${item} id | ||
| 126 | Log Many @{items} | 124 | Log Many @{items} |
| 127 | :FOR ${INDEX} IN RANGE ${ARGUMENTS[2]} | 125 | :FOR ${INDEX} IN RANGE ${ARGUMENTS[2]} |
| 126 | + \ ${item}= test_item_data | ||
| 128 | \ Append To List ${items} ${item} | 127 | \ Append To List ${items} ${item} |
| 129 | Log Many @{items} | 128 | Log Many @{items} |
| 130 | Set_To_Object ${TENDER_DATA.data} items ${items} | 129 | Set_To_Object ${TENDER_DATA.data} items ${items} |
| @@ -349,3 +348,57 @@ Library openprocurement_client_helper.py | @@ -349,3 +348,57 @@ Library openprocurement_client_helper.py | ||
| 349 | ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${token} | 348 | ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${token} |
| 350 | log ${filename} | 349 | log ${filename} |
| 351 | [return] ${contents} ${filename} | 350 | [return] ${contents} ${filename} |
| 351 | + | ||
| 352 | + | ||
| 353 | +Створити лот | ||
| 354 | + [Documentation] | ||
| 355 | + ... ${ARGUMENTS[0]} == username | ||
| 356 | + ... ${ARGUMENTS[1]} == tender | ||
| 357 | + ... ${ARGUMENTS[2]} == lot | ||
| 358 | + [Arguments] @{ARGUMENTS} | ||
| 359 | + log many @{ARGUMENTS} | ||
| 360 | + ${tender}= set_access_key ${ARGUMENTS[1]} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
| 361 | + ${tender_lot}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_lot ${tender} ${ARGUMENTS[2]} | ||
| 362 | + Log ${tender_lot} | ||
| 363 | + [return] ${tender_lot} | ||
| 364 | + | ||
| 365 | +Змінити лот | ||
| 366 | + [Documentation] | ||
| 367 | + ... ${ARGUMENTS[0]} == username | ||
| 368 | + ... ${ARGUMENTS[1]} == tender | ||
| 369 | + ... ${ARGUMENTS[2]} == lot | ||
| 370 | + [Arguments] @{ARGUMENTS} | ||
| 371 | + log many @{ARGUMENTS} | ||
| 372 | + ${tender}= set_access_key ${ARGUMENTS[1]} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
| 373 | + ${tender_lot}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_lot ${tender} ${ARGUMENTS[2]} | ||
| 374 | + Log ${tender_lot} | ||
| 375 | + [return] ${tender_lot} | ||
| 376 | + | ||
| 377 | +Завантажити документ в лот | ||
| 378 | + [Documentation] | ||
| 379 | + ... ${ARGUMENTS[0]} == username | ||
| 380 | + ... ${ARGUMENTS[1]} == filepath | ||
| 381 | + ... ${ARGUMENTS[2]} == tenderUAID | ||
| 382 | + ... ${ARGUMENTS[3]} == lot_id | ||
| 383 | + [Arguments] @{ARGUMENTS} | ||
| 384 | + log many @{ARGUMENTS} | ||
| 385 | + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]} | ||
| 386 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} | ||
| 387 | + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
| 388 | + ${doc}= Завантажити документ ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${ARGUMENTS[2]} | ||
| 389 | + ${lot_doc}= test_lot_document_data ${doc} ${ARGUMENTS[3]} | ||
| 390 | + ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_document ${tender} ${lot_doc} | ||
| 391 | + Log object data ${reply} reply | ||
| 392 | + [return] ${reply} | ||
| 393 | + | ||
| 394 | +Видалити лот | ||
| 395 | + [Documentation] | ||
| 396 | + ... ${ARGUMENTS[0]} == username | ||
| 397 | + ... ${ARGUMENTS[1]} == tender | ||
| 398 | + ... ${ARGUMENTS[2]} == lot | ||
| 399 | + [Arguments] @{ARGUMENTS} | ||
| 400 | + log many @{ARGUMENTS} | ||
| 401 | + ${tender}= set_access_key ${ARGUMENTS[1]} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
| 402 | + ${tender_lot}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_lot ${tender} ${ARGUMENTS[2]} | ||
| 403 | + Log ${tender_lot} | ||
| 404 | + [return] ${tender_lot} |
| @@ -112,7 +112,7 @@ def test_tender_data(intervals): | @@ -112,7 +112,7 @@ def test_tender_data(intervals): | ||
| 112 | return t_data | 112 | return t_data |
| 113 | 113 | ||
| 114 | 114 | ||
| 115 | -def test_tender_data_multiple_lots(intervals): | 115 | +def test_tender_data_multiple_items(intervals): |
| 116 | now = get_now() | 116 | now = get_now() |
| 117 | t_data = test_tender_data(intervals) | 117 | t_data = test_tender_data(intervals) |
| 118 | t_data.update({ | 118 | t_data.update({ |
| @@ -282,6 +282,83 @@ def test_tender_data_multiple_lots(intervals): | @@ -282,6 +282,83 @@ def test_tender_data_multiple_lots(intervals): | ||
| 282 | return t_data | 282 | return t_data |
| 283 | 283 | ||
| 284 | 284 | ||
| 285 | +def test_tender_data_multiple_lots(t_data): | ||
| 286 | + for i in range(3): | ||
| 287 | + t_data['data']['items'][i]['relatedLot'] = "3c8f387879de4c38957402dbdb8b31af" | ||
| 288 | + t_data['data']['items'][3]['relatedLot'] = "bcac8d2ceb5f4227b841a2211f5cb646" | ||
| 289 | + t_data['data']['lots'] = [ | ||
| 290 | + { | ||
| 291 | + "id": "3c8f387879de4c38957402dbdb8b31af", | ||
| 292 | + "title": "Lot #1: Kyiv stationery", | ||
| 293 | + "description": "Items for Kyiv office", | ||
| 294 | + "value": {"currency": "UAH", "amount": 34000.0, "valueAddedTaxIncluded": "true"}, | ||
| 295 | + "minimalStep": {"currency": "UAH", "amount": 30.0, "valueAddedTaxIncluded": "true"}, | ||
| 296 | + "status": "active" | ||
| 297 | + }, { | ||
| 298 | + "id": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
| 299 | + "title": "Lot #2: Lviv stationery", | ||
| 300 | + "description": "Items for Lviv office", | ||
| 301 | + "value": {"currency": "UAH", "amount": 9000.0, "valueAddedTaxIncluded": "true"}, | ||
| 302 | + "minimalStep": {"currency": "UAH", "amount": 35.0, "valueAddedTaxIncluded": "true"}, | ||
| 303 | + "status": "active" | ||
| 304 | + } | ||
| 305 | + ] | ||
| 306 | + return t_data | ||
| 307 | + | ||
| 308 | + | ||
| 309 | +def test_meat_tender_data(tender): | ||
| 310 | + item_id = "edd0032574bf4402877ad5f362df225a" | ||
| 311 | + tender.data['items'][0].id = item_id | ||
| 312 | + tender.data.features = [ | ||
| 313 | + { | ||
| 314 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
| 315 | + "featureOf": "tenderer", | ||
| 316 | + "title": "Термін оплати", | ||
| 317 | + "description": "Умови відстрочки платежу після поставки товару", | ||
| 318 | + "enum": [ | ||
| 319 | + { | ||
| 320 | + "value": 0.15, | ||
| 321 | + "title": "180 днів та більше" | ||
| 322 | + }, | ||
| 323 | + { | ||
| 324 | + "value": 0.1, | ||
| 325 | + "title": "90-179 днів", | ||
| 326 | + }, | ||
| 327 | + { | ||
| 328 | + "value": 0.05, | ||
| 329 | + "title": "30-89 днів" | ||
| 330 | + }, | ||
| 331 | + { | ||
| 332 | + "value": 0, | ||
| 333 | + "title": "Менше 30 днів" | ||
| 334 | + } | ||
| 335 | + ] | ||
| 336 | + }, | ||
| 337 | + { | ||
| 338 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 339 | + "featureOf": "item", | ||
| 340 | + "relatedItem": item_id, | ||
| 341 | + "title": "Сорт", | ||
| 342 | + "description": "Сорт продукції", | ||
| 343 | + "enum": [ | ||
| 344 | + { | ||
| 345 | + "value": 0.05, | ||
| 346 | + "title": "Вищий" | ||
| 347 | + }, | ||
| 348 | + { | ||
| 349 | + "value": 0.01, | ||
| 350 | + "title": "Перший", | ||
| 351 | + }, | ||
| 352 | + { | ||
| 353 | + "value": 0, | ||
| 354 | + "title": "Другий" | ||
| 355 | + } | ||
| 356 | + ] | ||
| 357 | + } | ||
| 358 | + ] | ||
| 359 | + return tender | ||
| 360 | + | ||
| 361 | + | ||
| 285 | def test_question_data(): | 362 | def test_question_data(): |
| 286 | return munchify({ | 363 | return munchify({ |
| 287 | "data": { | 364 | "data": { |
| @@ -390,6 +467,93 @@ def test_bid_data(): | @@ -390,6 +467,93 @@ def test_bid_data(): | ||
| 390 | }) | 467 | }) |
| 391 | 468 | ||
| 392 | 469 | ||
| 470 | +def test_bid_data_meat_tender(): | ||
| 471 | + return munchify({ | ||
| 472 | + "data": { | ||
| 473 | + "tenderers": [ | ||
| 474 | + { | ||
| 475 | + "address": { | ||
| 476 | + "countryName": "Україна", | ||
| 477 | + "locality": "м. Вінниця", | ||
| 478 | + "postalCode": "21100", | ||
| 479 | + "region": "м. Вінниця", | ||
| 480 | + "streetAddress": fake.street_address() | ||
| 481 | + }, | ||
| 482 | + "contactPoint": { | ||
| 483 | + "name": fake.name(), | ||
| 484 | + "telephone": fake.phone_number() | ||
| 485 | + }, | ||
| 486 | + "identifier": { | ||
| 487 | + "scheme": u"UA-EDR", | ||
| 488 | + "id": u"{:08d}".format(fake.pyint()), | ||
| 489 | + }, | ||
| 490 | + "name": fake.company() | ||
| 491 | + } | ||
| 492 | + ], | ||
| 493 | + "parameters": [ | ||
| 494 | + { | ||
| 495 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
| 496 | + "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0)) | ||
| 497 | + }, | ||
| 498 | + { | ||
| 499 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 500 | + "value": fake.random_element(elements=(0.05, 0.01, 0)) | ||
| 501 | + } | ||
| 502 | + ], | ||
| 503 | + "value": { | ||
| 504 | + "amount": 500 | ||
| 505 | + } | ||
| 506 | + } | ||
| 507 | + }) | ||
| 508 | + | ||
| 509 | + | ||
| 510 | +def test_lots_bid_data(): | ||
| 511 | + return munchify({ | ||
| 512 | + "data": { | ||
| 513 | + "tenderers": [ | ||
| 514 | + { | ||
| 515 | + "address": { | ||
| 516 | + "countryName": "Україна", | ||
| 517 | + "locality": "м. Вінниця", | ||
| 518 | + "postalCode": "21100", | ||
| 519 | + "region": "м. Вінниця", | ||
| 520 | + "streetAddress": fake.street_address() | ||
| 521 | + }, | ||
| 522 | + "contactPoint": { | ||
| 523 | + "name": fake.name(), | ||
| 524 | + "telephone": fake.phone_number() | ||
| 525 | + }, | ||
| 526 | + "identifier": { | ||
| 527 | + "scheme": u"UA-EDR", | ||
| 528 | + "id": u"{:08d}".format(fake.pyint()), | ||
| 529 | + }, | ||
| 530 | + "name": fake.company() | ||
| 531 | + } | ||
| 532 | + ], | ||
| 533 | + "lotValues": [ | ||
| 534 | + { | ||
| 535 | + "value": { | ||
| 536 | + "currency": "UAH", | ||
| 537 | + "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
| 538 | + "valueAddedTaxIncluded": "true" | ||
| 539 | + }, | ||
| 540 | + "relatedLot": "3c8f387879de4c38957402dbdb8b31af", | ||
| 541 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
| 542 | + }, | ||
| 543 | + { | ||
| 544 | + "value": { | ||
| 545 | + "currency": "UAH", | ||
| 546 | + "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
| 547 | + "valueAddedTaxIncluded": "true" | ||
| 548 | + }, | ||
| 549 | + "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
| 550 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
| 551 | + } | ||
| 552 | + ] | ||
| 553 | + } | ||
| 554 | + }) | ||
| 555 | + | ||
| 556 | + | ||
| 393 | def auction_bid(): | 557 | def auction_bid(): |
| 394 | return munchify({ | 558 | return munchify({ |
| 395 | "data": { | 559 | "data": { |
| @@ -404,3 +568,135 @@ def auction_bid(): | @@ -404,3 +568,135 @@ def auction_bid(): | ||
| 404 | 568 | ||
| 405 | def test_award_data(): | 569 | def test_award_data(): |
| 406 | return munchify({'data': {}}) | 570 | return munchify({'data': {}}) |
| 571 | + | ||
| 572 | + | ||
| 573 | +def test_item_data(): | ||
| 574 | + now = get_now() | ||
| 575 | + return { | ||
| 576 | + "description": fake.catch_phrase(), | ||
| 577 | + "deliveryDate": { | ||
| 578 | + "endDate": (now + timedelta(days=5)).isoformat() | ||
| 579 | + }, | ||
| 580 | + "deliveryLocation": { | ||
| 581 | + "latitude": 49.8500, | ||
| 582 | + "longitude": 24.0167 | ||
| 583 | + }, | ||
| 584 | + "deliveryAddress": { | ||
| 585 | + "countryName": u"Україна", | ||
| 586 | + "countryName_ru": u"Украина", | ||
| 587 | + "countryName_en": "Ukraine", | ||
| 588 | + "postalCode": fake.postalcode(), | ||
| 589 | + "region": u"м. Київ", | ||
| 590 | + "locality": u"м. Київ", | ||
| 591 | + "streetAddress": fake.street_address() | ||
| 592 | + }, | ||
| 593 | + "classification": { | ||
| 594 | + "scheme": u"CPV", | ||
| 595 | + "id": u"44617100-9", | ||
| 596 | + "description": u"Картонки", | ||
| 597 | + "description_ru": u"Большие картонные коробки", | ||
| 598 | + "description_en": u"Cartons" | ||
| 599 | + }, | ||
| 600 | + "additionalClassifications": [ | ||
| 601 | + { | ||
| 602 | + "scheme": u"ДКПП", | ||
| 603 | + "id": u"17.21.1", | ||
| 604 | + "description": u"Папір і картон гофровані, паперова й картонна тара" | ||
| 605 | + } | ||
| 606 | + ], | ||
| 607 | + "unit": { | ||
| 608 | + "name": u"кілограм", | ||
| 609 | + "name_ru": u"килограмм", | ||
| 610 | + "name_en": "kilogram", | ||
| 611 | + "code": u"KGM" | ||
| 612 | + }, | ||
| 613 | + "quantity": fake.pyint() | ||
| 614 | + } | ||
| 615 | + | ||
| 616 | + | ||
| 617 | +def test_invalid_features_data(): | ||
| 618 | + return [ | ||
| 619 | + { | ||
| 620 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
| 621 | + "featureOf": "tenderer", | ||
| 622 | + "title": "Термін оплати", | ||
| 623 | + "description": "Умови відстрочки платежу після поставки товару", | ||
| 624 | + "enum": [ | ||
| 625 | + { | ||
| 626 | + "value": 0.35, | ||
| 627 | + "title": "180 днів та більше" | ||
| 628 | + }, | ||
| 629 | + { | ||
| 630 | + "value": 0.1, | ||
| 631 | + "title": "90-179 днів", | ||
| 632 | + }, | ||
| 633 | + { | ||
| 634 | + "value": 0.05, | ||
| 635 | + "title": "30-89 днів" | ||
| 636 | + }, | ||
| 637 | + { | ||
| 638 | + "value": 0, | ||
| 639 | + "title": "Менше 30 днів" | ||
| 640 | + } | ||
| 641 | + ] | ||
| 642 | + }, | ||
| 643 | + { | ||
| 644 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 645 | + "featureOf": "item", | ||
| 646 | + "relatedItem": "edd0032574bf4402877ad5f362df225a", | ||
| 647 | + "title": "Сорт", | ||
| 648 | + "description": "Сорт продукції", | ||
| 649 | + "enum": [ | ||
| 650 | + { | ||
| 651 | + "value": 0.35, | ||
| 652 | + "title": "Вищий" | ||
| 653 | + }, | ||
| 654 | + { | ||
| 655 | + "value": 0.01, | ||
| 656 | + "title": "Перший", | ||
| 657 | + }, | ||
| 658 | + { | ||
| 659 | + "value": 0, | ||
| 660 | + "title": "Другий" | ||
| 661 | + } | ||
| 662 | + ] | ||
| 663 | + } | ||
| 664 | + ] | ||
| 665 | + | ||
| 666 | + | ||
| 667 | +def test_lot_data(): | ||
| 668 | + return munchify( | ||
| 669 | + {'data': | ||
| 670 | + { | ||
| 671 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), | ||
| 672 | + "title": fake.sentence(nb_words=6, variable_nb_words=True), | ||
| 673 | + "value": { | ||
| 674 | + "currency": "UAH", | ||
| 675 | + "amount": fake.pyfloat(left_digits=4, right_digits=1, positive=True), | ||
| 676 | + "valueAddedTaxIncluded": "true" | ||
| 677 | + }, | ||
| 678 | + "minimalStep": { | ||
| 679 | + "currency": "UAH", | ||
| 680 | + "amount": 30.0, | ||
| 681 | + "valueAddedTaxIncluded": "true" | ||
| 682 | + }, | ||
| 683 | + "status": "active" | ||
| 684 | + }}) | ||
| 685 | + | ||
| 686 | + | ||
| 687 | +def test_lot_document_data(document, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
| 688 | + lot_document = {"documentOf": "lot", "relatedItem": lot_id} | ||
| 689 | + lot_document.update(document.data) | ||
| 690 | + return munchify({"data": lot_document}) | ||
| 691 | + | ||
| 692 | + | ||
| 693 | +def test_lot_question_data(question, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
| 694 | + lot_question = {"questionOf": "lot", "relatedItem": lot_id} | ||
| 695 | + lot_question.update(question.data) | ||
| 696 | + return munchify({"data": lot_question}) | ||
| 697 | + | ||
| 698 | + | ||
| 699 | +def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
| 700 | + lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | ||
| 701 | + lot_complaint.update(complaint.data) | ||
| 702 | + return munchify({"data": lot_complaint}) |
| @@ -71,7 +71,8 @@ Get Broker Property By Username | @@ -71,7 +71,8 @@ Get Broker Property By Username | ||
| 71 | Підготовка початкових даних | 71 | Підготовка початкових даних |
| 72 | @{QUESTIONS}= Create list | 72 | @{QUESTIONS}= Create list |
| 73 | ${question}= test question data | 73 | ${question}= test question data |
| 74 | - Append to list ${QUESTIONS} ${question} | 74 | + ${question_lot}= test_lot_question_data ${question} |
| 75 | + Append to list ${QUESTIONS} ${question} ${question_lot} | ||
| 75 | Set Global Variable @{QUESTIONS} | 76 | Set Global Variable @{QUESTIONS} |
| 76 | @{ANSWERS}= Create list | 77 | @{ANSWERS}= Create list |
| 77 | ${answer}= test_question_answer_data | 78 | ${answer}= test_question_answer_data |
| @@ -79,7 +80,8 @@ Get Broker Property By Username | @@ -79,7 +80,8 @@ Get Broker Property By Username | ||
| 79 | Set Global Variable @{ANSWERS} | 80 | Set Global Variable @{ANSWERS} |
| 80 | @{COMPLAINTS}= Create list | 81 | @{COMPLAINTS}= Create list |
| 81 | ${complaint}= test_complaint_data | 82 | ${complaint}= test_complaint_data |
| 82 | - Append to list ${COMPLAINTS} ${complaint} | 83 | + ${complaint_lot}= test_lot_complaint_data ${complaint} |
| 84 | + Append to list ${COMPLAINTS} ${complaint} ${complaint_lot} | ||
| 83 | Set Global Variable @{COMPLAINTS} | 85 | Set Global Variable @{COMPLAINTS} |
| 84 | @{REPLIES}= Create list | 86 | @{REPLIES}= Create list |
| 85 | ${reply}= test_complaint_reply_data | 87 | ${reply}= test_complaint_reply_data |
op_robot_tests/tests_files/meatTender.robot
0 → 100644
| 1 | +*** Settings *** | ||
| 2 | +Library op_robot_tests.tests_files.service_keywords | ||
| 3 | +Library String | ||
| 4 | +Library Collections | ||
| 5 | +Library Selenium2Library | ||
| 6 | +Library DebugLibrary | ||
| 7 | +Resource keywords.robot | ||
| 8 | +Resource resource.robot | ||
| 9 | +Suite Setup TestSuiteSetup | ||
| 10 | +Suite Teardown Close all browsers | ||
| 11 | + | ||
| 12 | +*** Variables *** | ||
| 13 | +${mode} single | ||
| 14 | + | ||
| 15 | +${role} viewer | ||
| 16 | +${broker} Quinta | ||
| 17 | + | ||
| 18 | +*** Test Cases *** | ||
| 19 | +Можливість оголосити однопредметний тендер з неціновим показником | ||
| 20 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 21 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | ||
| 22 | + ${base_tender_data}= Підготовка початкових даних | ||
| 23 | + ${tender_data}= test_meat_tender_data ${base_tender_data} | ||
| 24 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
| 25 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 26 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
| 27 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
| 28 | + log ${TENDER} | ||
| 29 | + | ||
| 30 | +Пошук однопредметного тендера по ідентифікатору | ||
| 31 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 32 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
| 33 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 34 | + | ||
| 35 | +Неможливість перевищити ліміт для нецінових критеріїв | ||
| 36 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 37 | + ${invalid_features}= test_invalid_features_data | ||
| 38 | + ${fail}= Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} features ${invalid_features} | ||
| 39 | + Log ${fail} | ||
| 40 | + | ||
| 41 | +###### | ||
| 42 | +#Подання пропозицій | ||
| 43 | + | ||
| 44 | +Неможливість подати цінову пропозицію без нецінового показника | ||
| 45 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 46 | + Дочекатись дати початку прийому пропозицій | ||
| 47 | + sleep 90 | ||
| 48 | + ${bid}= test bid data | ||
| 49 | + Log ${bid} | ||
| 50 | + ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 51 | + log ${biddingresponse0} | ||
| 52 | + | ||
| 53 | +Подати цінову пропозицію з неціновим показником | ||
| 54 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 55 | + ${bid}= test bid data meat tender | ||
| 56 | + Log ${bid} | ||
| 57 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 58 | + ${biddingresponse0}= Create Dictionary | ||
| 59 | + Set To Dictionary ${biddingresponse0} resp ${resp} | ||
| 60 | + Set To Dictionary ${USERS.users['${provider}']} biddingresponse0 ${biddingresponse0} | ||
| 61 | + log ${resp} | ||
| 62 | + | ||
| 63 | +Можливість змінити неціновий показник повторної цінової пропозиції до 0 | ||
| 64 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 65 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0 | ||
| 66 | + Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
| 67 | + ${fixbidparamsto0resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
| 68 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto0resp ${fixbidparamsto0resp} | ||
| 69 | + log ${fixbidparamsto0resp} | ||
| 70 | + | ||
| 71 | +Можливість змінити неціновий показник повторної цінової пропозиції до 0.15 | ||
| 72 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 73 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0.15 | ||
| 74 | + Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
| 75 | + ${fixbidparamsto015resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
| 76 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto015resp ${fixbidparamsto015resp} | ||
| 77 | + log ${fixbidparamsto015resp} | ||
| 78 | + | ||
| 79 | +Подати цінову пропозицію з неціновим показником другим учасником | ||
| 80 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 81 | + Дочекатись дати початку прийому пропозицій | ||
| 82 | + ${bid}= test bid data meat tender | ||
| 83 | + Log ${bid} | ||
| 84 | + ${bidresponses}= Create Dictionary | ||
| 85 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 86 | + Set To Dictionary ${bidresponses} resp ${resp} | ||
| 87 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 88 | + log ${resp} | ||
| 89 | + log ${USERS.users['${provider1}'].bidresponses} | ||
| 90 | + | ||
| 91 | +###### | ||
| 92 | +#Аукціон | ||
| 93 | + | ||
| 94 | +Очікування аукціону | ||
| 95 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 96 | + ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 97 | + log ${tender_data.data.auctionPeriod.startDate} | ||
| 98 | + Дочекатись дати початку аукціону | ||
| 99 | + sleep 1500 | ||
| 100 | + | ||
| 101 | +Завершення аукціону | ||
| 102 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 103 | + ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 104 | + ${result}= chef ${tender_data.data.bids} ${tender_data.data.features} | ||
| 105 | + Log Many ${result[0]} ${tender_data.data.awards[0]} | ||
| 106 | + Log Many ${result[0].id} ${tender_data.data.awards[0].bid_id} | ||
| 107 | + Should Be Equal ${result[0].id} ${tender_data.data.awards[0].bid_id} |
| @@ -113,4 +113,4 @@ ${broker} Quinta | @@ -113,4 +113,4 @@ ${broker} Quinta | ||
| 113 | 113 | ||
| 114 | Можливість видалити позиції закупівлі тендера | 114 | Можливість видалити позиції закупівлі тендера |
| 115 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 115 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 116 | - Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 2 | 116 | + Викликати для учасника ${tender_owner} Відняти предмети закупівлі ${TENDER['TENDER_UAID']} 2 |
| 1 | +*** Settings *** | ||
| 2 | +Library op_robot_tests.tests_files.service_keywords | ||
| 3 | +Library String | ||
| 4 | +Library Collections | ||
| 5 | +Library Selenium2Library | ||
| 6 | +Library DebugLibrary | ||
| 7 | +Resource keywords.robot | ||
| 8 | +Resource resource.robot | ||
| 9 | +Suite Setup TestSuiteSetup | ||
| 10 | +Suite Teardown Close all browsers | ||
| 11 | + | ||
| 12 | +*** Variables *** | ||
| 13 | +${mode} multi | ||
| 14 | + | ||
| 15 | +${role} viewer | ||
| 16 | +${broker} Quinta | ||
| 17 | + | ||
| 18 | +${question_id} 1 | ||
| 19 | +${complaint_id} 1 | ||
| 20 | + | ||
| 21 | +*** Test Cases *** | ||
| 22 | +Можливість оголосити мультилотовий тендер | ||
| 23 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер | ||
| 24 | + ${tender_data}= Підготовка початкових даних | ||
| 25 | + ${tender_data}= test_tender_data_multiple_lots ${tender_data} | ||
| 26 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
| 27 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 28 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
| 29 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
| 30 | + log ${TENDER} | ||
| 31 | + | ||
| 32 | +Пошук мультилотового тендера по ідентифікатору | ||
| 33 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 34 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
| 35 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 36 | + | ||
| 37 | +Отримання тендера | ||
| 38 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 39 | + Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 40 | + | ||
| 41 | +####### | ||
| 42 | +#Операції з лотом | ||
| 43 | + | ||
| 44 | +Створення лоту | ||
| 45 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 46 | + ${lot}= test lot data | ||
| 47 | + ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
| 48 | + ${lotresponses}= Create Dictionary | ||
| 49 | + Set To Dictionary ${lotresponses} resp0 ${lotcreate} | ||
| 50 | + Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
| 51 | + log ${lotcreate} | ||
| 52 | + | ||
| 53 | +Можливість видалення лоту | ||
| 54 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 55 | + ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} | ||
| 56 | + ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
| 57 | + Log ${lotdelete} | ||
| 58 | + | ||
| 59 | +Повторне створення лоту | ||
| 60 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 61 | + ${lot}= test lot data | ||
| 62 | + ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
| 63 | + ${lotresponses}= Create Dictionary | ||
| 64 | + Set To Dictionary ${lotresponses} resp ${lotcreate} | ||
| 65 | + Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
| 66 | + log ${lotcreate} | ||
| 67 | + | ||
| 68 | +Можливість змінити цінову пропозицію у новому лоті до 8000 | ||
| 69 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 70 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
| 71 | + ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
| 72 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto8000resp ${fixlotto8000resp} | ||
| 73 | + log ${fixlotto8000resp} | ||
| 74 | + | ||
| 75 | +Можливість змінити цінову пропозицію у новому лоті до 100 | ||
| 76 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 77 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
| 78 | + ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
| 79 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto100resp ${fixlotto100resp} | ||
| 80 | + log ${fixlotto100resp} | ||
| 81 | + | ||
| 82 | + | ||
| 83 | +##### | ||
| 84 | +#Предмети закупівлі лоту | ||
| 85 | + | ||
| 86 | +Можливість додати позицію закупівлі в тендер | ||
| 87 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 88 | + Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 | ||
| 89 | + | ||
| 90 | +Добавити предмет закупівлі до лоту | ||
| 91 | + Log ${tender_data.data['items']} | ||
| 92 | + ${items}= Get Variable Value ${tender_data.data['items']} | ||
| 93 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
| 94 | + Set To Dictionary ${items[-1]} relatedLot ${lot_id} | ||
| 95 | + Log ${items[-1]} | ||
| 96 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} | ||
| 97 | + | ||
| 98 | +Неможливість видалення лоту з прив’язаними предметами закупівлі | ||
| 99 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
| 100 | + ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
| 101 | + Викликати для учасника ${tender_owner} Видалити лот shouldfail ${tender_data} ${lot} | ||
| 102 | + | ||
| 103 | +Можливість видалити позиції закупівлі тендера | ||
| 104 | + ${items}= Get Variable Value ${tender_data.data['items']} | ||
| 105 | + Log ${tender_data.data} | ||
| 106 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} | ||
| 107 | + Log ${tender_data.data} | ||
| 108 | + | ||
| 109 | +Можливість додати тендерну документацію лоту | ||
| 110 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
| 111 | + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
| 112 | + ${filepath}= create_fake_doc | ||
| 113 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
| 114 | + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 115 | + ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply} | ||
| 116 | + log ${file_upload_process_data} | ||
| 117 | + Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data} | ||
| 118 | + Log ${lot_id} | ||
| 119 | + Log ${USERS.users['${tender_owner}']} | ||
| 120 | + | ||
| 121 | + | ||
| 122 | +####### | ||
| 123 | +#Запитання до лоту | ||
| 124 | + | ||
| 125 | +Задати питання | ||
| 126 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | ||
| 127 | + ${question}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | ||
| 128 | + log ${question} | ||
| 129 | + ${now}= Get Current Date | ||
| 130 | + Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} | ||
| 131 | + | ||
| 132 | +Відповісти на запитання | ||
| 133 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | ||
| 134 | + Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]} | ||
| 135 | + ${now}= Get Current Date | ||
| 136 | + Set To Dictionary ${ANSWERS[${question_id}-1].data} date ${now} | ||
| 137 | + | ||
| 138 | + | ||
| 139 | +###### | ||
| 140 | +#Cкарга на лот | ||
| 141 | +# | ||
| 142 | +# | ||
| 143 | +##### Дочекатися скарг на лот | ||
| 144 | +# | ||
| 145 | +# | ||
| 146 | +#Можливість подати скаргу на лот | ||
| 147 | +# [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
| 148 | +# [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 149 | +# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 150 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 151 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 152 | +# | ||
| 153 | +#Можливість побачити скаргу користувачем | ||
| 154 | +# [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | ||
| 155 | +# Викликати для учасника ${provider} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 156 | +# | ||
| 157 | +#Можливість побачити скаргу анонімом | ||
| 158 | +# [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 159 | +# Викликати для учасника ${viewer} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 160 | +# | ||
| 161 | +#Можливість відхилити скаргу на лот | ||
| 162 | +# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відхилити скаргу на умови | ||
| 163 | +# Set To Dictionary ${COMPLAINTS[0].data} status declined | ||
| 164 | +# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${COMPLAINTS[${complaint_id}]} | ||
| 165 | +# log many ${COMPLAINTS[${complaint_id}]} | ||
| 166 | +# викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 167 | +# | ||
| 168 | +#Можливість відкинути скаргу на лот | ||
| 169 | +# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відкинути скаргу на умови | ||
| 170 | +# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 171 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 172 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 173 | +# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 174 | +# Set To Dictionary ${COMPLAINTS[0].data} status invalid | ||
| 175 | +# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${COMPLAINTS[${complaint_id}]} | ||
| 176 | +# log many ${COMPLAINTS[${complaint_id}]} | ||
| 177 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 178 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 179 | +# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 180 | +# | ||
| 181 | +#Можливість задовільнити скаргу на лот | ||
| 182 | +# [Tags] ${USERS.users['${provider}'].broker}: Можливість відповісти на запитання | ||
| 183 | +# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
| 184 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 185 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 186 | +# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 187 | +# Set To Dictionary ${COMPLAINTS[0].data} status resolved | ||
| 188 | +# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 2 ${COMPLAINTS[${complaint_id}]} | ||
| 189 | +# log many ${COMPLAINTS[${complaint_id}]} | ||
| 190 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
| 191 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
| 192 | +# | ||
| 193 | +###### | ||
| 194 | +#Подання пропозицій | ||
| 195 | + | ||
| 196 | +Неможливість подати цінову пропозицію до початку періоду подачі пропозицій | ||
| 197 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 198 | + ${bid}= test lots bid data | ||
| 199 | + Log ${bid} | ||
| 200 | + ${bidresponses}= Create Dictionary | ||
| 201 | + ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 202 | + Set To Dictionary ${bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | ||
| 203 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 204 | + log ${USERS.users['${provider}']} | ||
| 205 | + | ||
| 206 | +Неможливість подати цінову пропозицію без прив’язки до лоту | ||
| 207 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 208 | + Дочекатись дати початку прийому пропозицій | ||
| 209 | + ${bid}= test bid data | ||
| 210 | + Log ${bid} | ||
| 211 | + ${bidresponses}= Create Dictionary | ||
| 212 | + ${no_lot_bid_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 213 | + Set To Dictionary ${bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | ||
| 214 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 215 | + log ${USERS.users['${provider}']} | ||
| 216 | + | ||
| 217 | +Подати цінову пропозицію першим учасником | ||
| 218 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 219 | + ${bid}= test lots bid data | ||
| 220 | + Log ${bid} | ||
| 221 | + ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 222 | + Set Global Variable ${biddingresponse0} | ||
| 223 | + log ${biddingresponse0} | ||
| 224 | + | ||
| 225 | +Можливість скасувати цінову пропозицію | ||
| 226 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | ||
| 227 | + ${biddingresponse_0}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponse0} | ||
| 228 | + | ||
| 229 | +Подати повторно цінову пропозицію першим учасником | ||
| 230 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 231 | + Дочекатись дати початку прийому пропозицій | ||
| 232 | + ${bid}= test lots bid data | ||
| 233 | + Log ${bid} | ||
| 234 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 235 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 236 | + log ${resp} | ||
| 237 | + log ${USERS.users['${provider}'].bidresponses} | ||
| 238 | + | ||
| 239 | +Можливість змінити повторну цінову пропозицію до 2000 | ||
| 240 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 241 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 2000 | ||
| 242 | + Log ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} | ||
| 243 | + ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
| 244 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} | ||
| 245 | + log ${fixbidto50000resp} | ||
| 246 | + | ||
| 247 | +Можливість змінити повторну цінову пропозицію до 100 | ||
| 248 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 249 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 100 | ||
| 250 | + Log ${USERS.users['${provider}'].bidresponses['fixbidto50000resp'].data.lotValues[0].value} | ||
| 251 | + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
| 252 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | ||
| 253 | + log ${fixbidto10resp} | ||
| 254 | + | ||
| 255 | +Подати цінову пропозицію другим учасником | ||
| 256 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 257 | + Дочекатись дати початку прийому пропозицій | ||
| 258 | + ${bid}= test lots bid data | ||
| 259 | + Log ${bid} | ||
| 260 | + ${bidresponses}= Create Dictionary | ||
| 261 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 262 | + Set To Dictionary ${bidresponses} resp ${resp} | ||
| 263 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 264 | + log ${resp} | ||
| 265 | + log ${USERS.users['${provider1}'].bidresponses} | ||
| 266 | + | ||
| 267 | +Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | ||
| 268 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | ||
| 269 | + ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids | ||
| 270 | + Should Be Equal ${bids} ${None} | ||
| 271 | + | ||
| 272 | +Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | ||
| 273 | + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | ||
| 274 | + Дочекатись дати закінчення прийому пропозицій | ||
| 275 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 50000 | ||
| 276 | + Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
| 277 | + ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 278 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} | ||
| 279 | + log ${failfixbidto50000resp} | ||
| 280 | + | ||
| 281 | +Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | ||
| 282 | + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | ||
| 283 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 1 | ||
| 284 | + Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
| 285 | + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 286 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | ||
| 287 | + log ${failfixbidto1resp} | ||
| 288 | + | ||
| 289 | +Неможливість скасувати цінову пропозицію | ||
| 290 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | ||
| 291 | + ${biddingresponse}= Викликати для учасника ${provider1} Скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 292 | + | ||
| 293 | +Отримання тендера після закінчення прийому пропозицій | ||
| 294 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
| 295 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| @@ -14,13 +14,17 @@ from robot.output.loggerhelper import Message | @@ -14,13 +14,17 @@ from robot.output.loggerhelper import Message | ||
| 14 | # can access them by simply importing library "service_keywords". | 14 | # can access them by simply importing library "service_keywords". |
| 15 | # Please ignore the warning given by Flake8 or other linter. | 15 | # Please ignore the warning given by Flake8 or other linter. |
| 16 | from .initial_data import ( | 16 | from .initial_data import ( |
| 17 | - auction_bid, create_fake_doc, | ||
| 18 | - test_award_data, test_bid_data, test_complaint_data, | ||
| 19 | - test_complaint_reply_data, test_question_answer_data, | ||
| 20 | - test_question_data, test_tender_data, test_tender_data_multiple_lots | 17 | + auction_bid, create_fake_doc, test_award_data, test_bid_data, |
| 18 | + test_bid_data_meat_tender, test_complaint_data, test_complaint_reply_data, | ||
| 19 | + test_invalid_features_data, test_item_data, test_lot_complaint_data, | ||
| 20 | + test_lot_data, test_lot_document_data, test_lot_question_data, | ||
| 21 | + test_lots_bid_data, test_meat_tender_data, test_question_answer_data, | ||
| 22 | + test_question_data, test_tender_data, test_tender_data_multiple_items, | ||
| 23 | + test_tender_data_multiple_lots | ||
| 21 | ) | 24 | ) |
| 22 | from .local_time import get_now, TZ | 25 | from .local_time import get_now, TZ |
| 23 | import os | 26 | import os |
| 27 | +from barbecue import chef | ||
| 24 | 28 | ||
| 25 | 29 | ||
| 26 | def get_current_tzdate(): | 30 | def get_current_tzdate(): |
| @@ -101,7 +105,7 @@ def prepare_test_tender_data(period_intervals, mode): | @@ -101,7 +105,7 @@ def prepare_test_tender_data(period_intervals, mode): | ||
| 101 | if mode == 'single': | 105 | if mode == 'single': |
| 102 | return munchify({'data': test_tender_data(period_intervals)}) | 106 | return munchify({'data': test_tender_data(period_intervals)}) |
| 103 | elif mode == 'multi': | 107 | elif mode == 'multi': |
| 104 | - return munchify({'data': test_tender_data_multiple_lots(period_intervals)}) | 108 | + return munchify({'data': test_tender_data_multiple_items(period_intervals)}) |
| 105 | raise ValueError('Invalid mode for test_tender_data') | 109 | raise ValueError('Invalid mode for test_tender_data') |
| 106 | 110 | ||
| 107 | 111 |
| @@ -32,7 +32,8 @@ setup(name='op_robot_tests', | @@ -32,7 +32,8 @@ setup(name='op_robot_tests', | ||
| 32 | 'dateutils', | 32 | 'dateutils', |
| 33 | 'pytz', | 33 | 'pytz', |
| 34 | 'parse', | 34 | 'parse', |
| 35 | - 'chromedriver' | 35 | + 'chromedriver', |
| 36 | + 'barbecue' | ||
| 36 | ], | 37 | ], |
| 37 | entry_points={ | 38 | entry_points={ |
| 38 | 'console_scripts': [ | 39 | 'console_scripts': [ |
Please
register
or
login
to post a comment