Commit bba2edd232b41124d90ba1b7105d5924afe867df

Authored by Leits
1 parent 3b8b4e3d

MEAT tender test

@@ -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
@@ -282,6 +282,59 @@ def test_tender_data_multiple_lots(intervals): @@ -282,6 +282,59 @@ def test_tender_data_multiple_lots(intervals):
282 return t_data 282 return t_data
283 283
284 284
  285 +def test_meat_tender_data(tender):
  286 + item_id = "edd0032574bf4402877ad5f362df225a"
  287 + tender.data['items'][0].id = item_id
  288 + tender.data.features = [
  289 + {
  290 + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6",
  291 + "featureOf": "tenderer",
  292 + "title": "Термін оплати",
  293 + "description": "Умови відстрочки платежу після поставки товару",
  294 + "enum": [
  295 + {
  296 + "value": 0.15,
  297 + "title": "180 днів та більше"
  298 + },
  299 + {
  300 + "value": 0.1,
  301 + "title": "90-179 днів",
  302 + },
  303 + {
  304 + "value": 0.05,
  305 + "title": "30-89 днів"
  306 + },
  307 + {
  308 + "value": 0,
  309 + "title": "Менше 30 днів"
  310 + }
  311 + ]
  312 + },
  313 + {
  314 + "code": "48cfd91612c04125ab406374d7cc8d93",
  315 + "featureOf": "item",
  316 + "relatedItem": item_id,
  317 + "title": "Сорт",
  318 + "description": "Сорт продукції",
  319 + "enum": [
  320 + {
  321 + "value": 0.05,
  322 + "title": "Вищий"
  323 + },
  324 + {
  325 + "value": 0.01,
  326 + "title": "Перший",
  327 + },
  328 + {
  329 + "value": 0,
  330 + "title": "Другий"
  331 + }
  332 + ]
  333 + }
  334 + ]
  335 + return tender
  336 +
  337 +
285 def test_question_data(): 338 def test_question_data():
286 return munchify({ 339 return munchify({
287 "data": { 340 "data": {
@@ -390,6 +443,46 @@ def test_bid_data(): @@ -390,6 +443,46 @@ def test_bid_data():
390 }) 443 })
391 444
392 445
  446 +def test_bid_data_meat_tender():
  447 + return munchify({
  448 + "data": {
  449 + "tenderers": [
  450 + {
  451 + "address": {
  452 + "countryName": "Україна",
  453 + "locality": "м. Вінниця",
  454 + "postalCode": "21100",
  455 + "region": "м. Вінниця",
  456 + "streetAddress": fake.street_address()
  457 + },
  458 + "contactPoint": {
  459 + "name": fake.name(),
  460 + "telephone": fake.phone_number()
  461 + },
  462 + "identifier": {
  463 + "scheme": u"UA-EDR",
  464 + "id": u"{:08d}".format(fake.pyint()),
  465 + },
  466 + "name": fake.company()
  467 + }
  468 + ],
  469 + "parameters": [
  470 + {
  471 + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6",
  472 + "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0))
  473 + },
  474 + {
  475 + "code": "48cfd91612c04125ab406374d7cc8d93",
  476 + "value": fake.random_element(elements=(0.05, 0.01, 0))
  477 + }
  478 + ],
  479 + "value": {
  480 + "amount": 500
  481 + }
  482 + }
  483 + })
  484 +
  485 +
393 def auction_bid(): 486 def auction_bid():
394 return munchify({ 487 return munchify({
395 "data": { 488 "data": {
@@ -448,3 +541,53 @@ def test_item_data(): @@ -448,3 +541,53 @@ def test_item_data():
448 }, 541 },
449 "quantity": fake.pyint() 542 "quantity": fake.pyint()
450 } 543 }
  544 +
  545 +
  546 +def test_invalid_features_data():
  547 + return [
  548 + {
  549 + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6",
  550 + "featureOf": "tenderer",
  551 + "title": "Термін оплати",
  552 + "description": "Умови відстрочки платежу після поставки товару",
  553 + "enum": [
  554 + {
  555 + "value": 0.35,
  556 + "title":"180 днів та більше"
  557 + },
  558 + {
  559 + "value": 0.1,
  560 + "title": "90-179 днів",
  561 + },
  562 + {
  563 + "value": 0.05,
  564 + "title": "30-89 днів"
  565 + },
  566 + {
  567 + "value": 0,
  568 + "title": "Менше 30 днів"
  569 + }
  570 + ]
  571 + },
  572 + {
  573 + "code": "48cfd91612c04125ab406374d7cc8d93",
  574 + "featureOf": "item",
  575 + "relatedItem": "edd0032574bf4402877ad5f362df225a",
  576 + "title": "Сорт",
  577 + "description": "Сорт продукції",
  578 + "enum":[
  579 + {
  580 + "value": 0.35,
  581 + "title": "Вищий"
  582 + },
  583 + {
  584 + "value": 0.01,
  585 + "title": "Перший",
  586 + },
  587 + {
  588 + "value": 0,
  589 + "title": "Другий"
  590 + }
  591 + ]
  592 + }
  593 +]
  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}
@@ -14,13 +14,16 @@ from robot.output.loggerhelper import Message @@ -14,13 +14,16 @@ 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_item_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_meat_tender_data,
  20 + test_question_answer_data, test_question_data, test_tender_data,
  21 + test_tender_data_multiple_lots
21 ) 22 )
22 from .local_time import get_now, TZ 23 from .local_time import get_now, TZ
23 import os 24 import os
  25 +import calendar
  26 +from barbecue import chef
24 27
25 28
26 def get_current_tzdate(): 29 def get_current_tzdate():
@@ -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