Commit 82738ff7077cae6500e775075626d48fc83b6b76

Authored by Krokop
1 parent 54ebfd8b

Add test cases for second stage

... ... @@ -82,4 +82,8 @@ Resource base_keywords.robot
82 82
83 83
84 84 Можливість перевести тендер на статус очікування обробки мостом
85   - Run As ${tender_owner} Перевести тендер на статус очікування обробки мостом ${TENDER['TENDER_UAID']}
\ No newline at end of file
  85 + Run As ${tender_owner} Перевести тендер на статус очікування обробки мостом ${TENDER['TENDER_UAID']}
  86 +
  87 +
  88 +Можливість активувати другий етап
  89 + Run As ${tender_owner} активувати другий етап ${TENDER['TENDER_UAID']}
\ No newline at end of file
... ...
... ... @@ -39,6 +39,14 @@ Suite Teardown Test Suite Teardown
39 39 Дочекатись дати початку аукціону ${viewer}
40 40
41 41
  42 +Можливість дочекатися початку аукціону на другому етапі
  43 + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону
  44 + ... viewer
  45 + ... ${USERS.users['${viewer}'].broker}
  46 + ... auction_second_stage
  47 + Дочекатись дати початку аукціону ${viewer}
  48 +
  49 +
42 50 Можливість вичитати посилання на аукціон для глядача
43 51 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних аукціону
44 52 ... viewer
... ... @@ -47,6 +55,14 @@ Suite Teardown Test Suite Teardown
47 55 Можливість вичитати посилання на аукціон для ${viewer}
48 56
49 57
  58 +Можливість вичитати посилання на аукціон для глядача на другому етапі
  59 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних аукціону
  60 + ... viewer
  61 + ... ${USERS.users['${viewer}'].broker}
  62 + ... auction_second_stage
  63 + Можливість вичитати посилання на аукціон для ${viewer}
  64 +
  65 +
50 66 Можливість дочекатися завершення аукціону
51 67 [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону
52 68 ... viewer
... ... @@ -56,6 +72,15 @@ Suite Teardown Test Suite Teardown
56 72 Дочекатись дати закінчення аукціону користувачем ${viewer}
57 73
58 74
  75 +Можливість дочекатися завершення аукціону на другому етапі
  76 + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону
  77 + ... viewer
  78 + ... ${USERS.users['${viewer}'].broker}
  79 + ... auction_second_stage
  80 + [Teardown] Оновити LAST_MODIFICATION_DATE
  81 + Дочекатись дати закінчення аукціону користувачем ${viewer}
  82 +
  83 +
59 84 Відображення дати завершення аукціону
60 85 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних аукціону
61 86 ... viewer
... ...
... ... @@ -35,6 +35,16 @@ Resource resource.robot
35 35 Run as ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
36 36
37 37
  38 +Можливість знайти тендер по ідентифікатору ${ident} для користувача ${username}
  39 + Дочекатись синхронізації з майданчиком ${username}
  40 + Run as ${username} Пошук тендера по ідентифікатору ${ident}
  41 +
  42 +
  43 +Можливість знайти тендер по ід ${ident} для користувача ${username}
  44 + Дочекатись синхронізації з майданчиком ${username}
  45 + Run as ${username} Пошук тендера по ід ${ident}
  46 +
  47 +
38 48 Можливість змінити поле ${field_name} тендера на ${field_value}
39 49 Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value}
40 50
... ... @@ -79,7 +89,19 @@ Resource resource.robot
79 89 Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field}
80 90
81 91
82   -Звірити відображення вмісту документа ${doc_id} із ${left} для користувача ${username}
  92 +Оновити тендер ідентифікатор для всіх користувачей користувача ${username} ${tender_uaid}
  93 + Дочекатись синхронізації з майданчиком ${username}
  94 + Run as ${username} Пошук тендера по ідентифікатору ${tender_uaid}
  95 +
  96 +
  97 +Отримати токен другого етапу та зберегти
  98 + ${tender_uaid}= Отрмати новий токен ${tender_owner} ${USERS.users['${tender_owner}'].tender_data.data.stage2TenderID}
  99 + Set to dictionary ${TENDER} TENDER_UAID=${tender_uaid}
  100 + :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer}
  101 + \ Оновити тендер ідентифікатор для всіх користувачей користувача ${username} ${tender_uaid}
  102 +
  103 +
  104 +Звірити відображення вмісту документа ${doc_id} з ${left} для користувача ${username}
83 105 ${file_name}= Run as ${username} Отримати документ ${TENDER['TENDER_UAID']} ${doc_id}
84 106 ${right}= Get File ${OUTPUT_DIR}${/}${file_name}
85 107 Порівняти об'єкти ${left} ${right}
... ... @@ -837,6 +859,21 @@ Resource resource.robot
837 859 Set To Dictionary ${USERS.users['${username}'].bidresponses} resp=${resp}
838 860
839 861
  862 +Можливість подати цінову пропозицію на другий етап ${index} користувачем ${username}
  863 + ${bid}= Підготувати дані для подання пропозиції для другого етапу ${username} ${index}
  864 + ${bidresponses}= Create Dictionary bid=${bid}
  865 + Set To Dictionary ${USERS.users['${username}']} bidresponses=${bidresponses}
  866 + ${lots}= Get Variable Value ${USERS.users['${username}'].tender_data.data.lots} ${None}
  867 + ${lots_ids}= Run Keyword IF ${lots}
  868 + ... Отримати ідентифікатори об’єктів ${username} lots
  869 + ... ELSE Set Variable ${None}
  870 + ${features}= Get Variable Value ${USERS.users['${username}'].tender_data.data.features} ${None}
  871 + ${features_ids}= Run Keyword IF ${features}
  872 + ... Отримати ідентифікатори об’єктів ${username} features
  873 + ... ELSE Set Variable ${None}
  874 + ${resp}= Run As ${username} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} ${features_ids}
  875 + Set To Dictionary ${USERS.users['${username}'].bidresponses} resp=${resp}
  876 +
840 877 Неможливість подати цінову пропозицію без прив’язки до лоту користувачем ${username}
841 878 ${bid}= Підготувати дані для подання пропозиції ${username}
842 879 ${values}= Get Variable Value ${bid.data.lotValues[0]}
... ...
... ... @@ -84,6 +84,12 @@ Library openprocurement_client_helper.py
84 84 Log ${USERS.users['${username}'].tender_data}
85 85 [return] ${tender.data.tenderID}
86 86
  87 +Пошук тендера по ід
  88 + [Arguments] ${username} ${tender_id}
  89 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${tender_id}
  90 + Set To Dictionary ${USERS.users['${username}']} second_stage_data=${tender}
  91 + Log ${tender}
  92 + [return] ${tender}
87 93
88 94 Пошук тендера по ідентифікатору
89 95 [Arguments] ${username} ${tender_uaid}
... ... @@ -95,6 +101,16 @@ Library openprocurement_client_helper.py
95 101 Log ${tender}
96 102 [return] ${tender}
97 103
  104 +Отрмати новий токен
  105 + [Arguments] ${username} ${tender_id}
  106 + ${response}= Call Method ${USERS.users['${username}'].client} credentials ${tender_id} ${USERS.users['${username}'].access_token}
  107 + ${tender}= set_access_key ${response} ${response.access.token}
  108 + Set To Dictionary ${USERS.users['${username}']} access_token=${response.access.token}
  109 + Set To Dictionary ${USERS.users['${username}']} tender_data=${response}
  110 + Log ${tender.data.tenderID}
  111 + Set To Dictionary ${TENDER} TENDER_UAID=${response.data.tenderID}
  112 + Log ${TENDER['TENDER_UAID']}
  113 + [return] ${TENDER['TENDER_UAID']}
98 114
99 115 Оновити сторінку з тендером
100 116 [Arguments] ${username} ${tender_uaid}
... ... @@ -1037,3 +1053,20 @@ Library openprocurement_client_helper.py
1037 1053 ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender}
1038 1054 Log ${reply}
1039 1055 [Return] ${reply}
  1056 +
  1057 +
  1058 +Активувати другий етап
  1059 + [Documentation]
  1060 + ... [Arguments] Username and tender uaid
  1061 + ...
  1062 + ... [Description] Find tender using uaid and call patch_tender
  1063 + ...
  1064 + ... [Return] Reply of API
  1065 + [Arguments] ${username} ${tender_uaid}
  1066 + ${internal_id}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid}
  1067 + ${tender}= create_data_dict data.id ${internal_id}
  1068 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  1069 + set_to_object ${tender} data.status active.tendering
  1070 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender}
  1071 + Log ${reply}
  1072 + [Return] ${reply}
\ No newline at end of file
... ...
... ... @@ -57,3 +57,33 @@ Suite Teardown Test Suite Teardown
57 57 [Setup] Дочекатись синхронізації з майданчиком ${viewer}
58 58 Run As ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']}
59 59 Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} active contracts[-1].status
  60 +
  61 +
  62 +
  63 +Дочекатися закічення stand still періоду на другому етапі
  64 + [Tags] ${USERS.users['${tender_owner}'].broker}: Процес укладання угоди
  65 + ... tender_owner
  66 + ... ${USERS.users['${tender_owner}'].broker}
  67 + ... contract_sign_second_stage
  68 + ${standstillEnd}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data.awards[-1].complaintPeriod.endDate}
  69 + Дочекатись дати ${standstillEnd}
  70 +
  71 +
  72 +Можливість укласти угоду для закупівлі на другому етапі
  73 + [Tags] ${USERS.users['${tender_owner}'].broker}: Процес укладання угоди
  74 + ... tender_owner
  75 + ... ${USERS.users['${tender_owner}'].broker}
  76 + ... contract_sign_second_stage
  77 + [Teardown] Оновити LAST_MODIFICATION_DATE
  78 + Run As ${tender_owner} Підтвердити підписання контракту ${TENDER['TENDER_UAID']} -1
  79 +
  80 +
  81 +Відображення статусу підписаної угоди з постачальником закупівлі на другому етапі
  82 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди
  83 + ... viewer
  84 + ... ${USERS.users['${viewer}'].broker}
  85 + ... contract_sign_second_stage
  86 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  87 + Run As ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']}
  88 + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} active contracts[-1].status
  89 +
... ...
... ... @@ -254,6 +254,11 @@ Get Broker Property By Username
254 254 [Return] ${bid}
255 255
256 256
  257 +Підготувати дані для подання пропозиції для другого етапу
  258 + [Arguments] ${username} ${index}=0
  259 + ${bid}= generate_test_bid_data_second_stage ${USERS.users['${username}'].tender_data.data} ${index}
  260 + [Return] ${bid}
  261 +
257 262 Підготувати дані про постачальника
258 263 [Arguments] ${username}
259 264 ${supplier_data}= test_supplier_data
... ...
... ... @@ -1657,3 +1657,87 @@ ${ITEM_MEAT} ${True}
1657 1657 Дочекатися створення нового етапу мостом ${tender_owner} ${TENDER['TENDER_UAID']}
1658 1658 Звірити статус тендера ${tender_owner} ${TENDER['TENDER_UAID']} complete
1659 1659
  1660 +
  1661 +Отрмати дргуий етап
  1662 + [Tags] ${USERS.user['${tender_owner}'].broker}: Отримати id нового тендеру
  1663 + ... tender_owner
  1664 + ... ${USERS.users['${tender_owner}'].broker}
  1665 + ... get_second_stage
  1666 + Отримати дані із поля stage2TenderID тендера для усіх користувачів
  1667 + Можливість знайти тендер по ід ${USERS.users['${tender_owner}'].tender_data.data.stage2TenderID} для користувача ${tender_owner}
  1668 +
  1669 +
  1670 +Порівняти другий етап з перший
  1671 + [Tags] ${USERS.user['${tender_owner}'].broker}: Порівняти перший та другий етап
  1672 + ... tender_owner
  1673 + ... ${USERS.users['${tender_owner}'].broker}
  1674 + ... compare_stages
  1675 + Звірити відображення поля title тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.title} для користувача ${tender_owner}
  1676 + Звірити відображення поля minimalStep тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.minimalStep} для користувача ${tender_owner}
  1677 + Звірити відображення поля value тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.value} для користувача ${tender_owner}
  1678 + Звірити відображення поля procuringEntity тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.procuringEntity} для користувача ${tender_owner}
  1679 +
  1680 +
  1681 +Отримати токен другог етапу
  1682 + [Tags] ${USERS.user['${tender_owner}'].broker}: Отримати токен для другог етапу
  1683 + ... tender_owner
  1684 + ... ${USERS.users['${tender_owner}'].broker}
  1685 + ... get_token_second_stage
  1686 + Отримати токен другого етапу та зберегти
  1687 + Log ${TENDER}
  1688 +
  1689 +
  1690 +Можливість активувати другий етап
  1691 + [Tags] ${USERS.users['${viewer}'].broker}: Активувати тендер
  1692 + ... tender_owner
  1693 + ... ${USERS.users['${tender_owner}'].broker}
  1694 + ... activate_second_stage
  1695 + Можливість активувати другий етап
  1696 +
  1697 +
  1698 +Можливість подати пропозицію першим учасником на другому етапі
  1699 + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції
  1700 + ... provider
  1701 + ... ${USERS.users['${provider}'].broker}
  1702 + ... make_bid_by_provider_second_stage
  1703 + [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']}
  1704 + [Teardown] Оновити LAST_MODIFICATION_DATE
  1705 + Можливість подати цінову пропозицію на другий етап 1 користувачем ${provider1}
  1706 +
  1707 +
  1708 +Можливість подати пропозицію другим учасником на другому етапі
  1709 + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції на другий етап
  1710 + ... provider1
  1711 + ... ${USERS.users['${provider1}'].broker}
  1712 + ... make_bid_by_provider1_second_stage
  1713 + [Teardown] Оновити LAST_MODIFICATION_DATE
  1714 + Можливість подати цінову пропозицію на другий етап 1 користувачем ${provider1}
  1715 +
  1716 +
  1717 +Можливість підтвердити першу пропозицію кваліфікації на другому етапі
  1718 + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація на другому етапі
  1719 + ... tender_owner
  1720 + ... ${USERS.users['${tender_owner}'].broker}
  1721 + ... pre-qualification_approve_first_bid_second_stage
  1722 + [Setup] Дочекатись дати початку періоду прекваліфікації ${tender_owner} ${TENDER['TENDER_UAID']}
  1723 + [Teardown] Оновити LAST_MODIFICATION_DATE
  1724 + Можливість підтвердити 0 пропозицію кваліфікації
  1725 +
  1726 +
  1727 +Можливість підтвердити другу пропозицію кваліфікації на другогму етапі
  1728 + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація на другому етапі
  1729 + ... tender_owner
  1730 + ... ${USERS.users['${tender_owner}'].broker}
  1731 + ... pre-qualification_approve_second_bid_second_stage
  1732 + [Teardown] Оновити LAST_MODIFICATION_DATE
  1733 + Можливість підтвердити -1 пропозицію кваліфікації
  1734 +
  1735 +
  1736 +Можливість затвердити остаточне рішення кваліфікації на другому етапі
  1737 + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація на другому етапі
  1738 + ... tender_owner
  1739 + ... ${USERS.users['${tender_owner}'].broker}
  1740 + ... pre-qualification_approve_qualifications_second_stage
  1741 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  1742 + [Teardown] Оновити LAST_MODIFICATION_DATE
  1743 + Можливість затвердити остаточне рішення кваліфікації
\ No newline at end of file
... ...
... ... @@ -229,6 +229,14 @@ ${award_index} ${0}
229 229 Run As ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0
230 230
231 231
  232 +Можливість підтвердити постачальника на другому етапі
  233 + [Tags] ${USERS.users['${tender_owner}'].broker}: Процес кваліфікації
  234 + ... tender_owner
  235 + ... ${USERS.users['${tender_owner}'].broker}
  236 + ... qualification_approve_first_award_second_stage
  237 + Run As ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0
  238 +
  239 +
232 240 Можливість скасувати рішення кваліфікації
233 241 [Tags] ${USERS.users['${tender_owner}'].broker}: Процес кваліфікації
234 242 ... tender_owner
... ...
... ... @@ -328,7 +328,7 @@ def get_from_object(obj, attribute):
328 328 def set_to_object(obj, attribute, value):
329 329 # Search the list index in path to value
330 330 list_index = re.search('\d+', attribute)
331   - if list_index:
  331 + if list_index and attribute != 'stage2TenderID':
332 332 list_index = list_index.group(0)
333 333 parent, child = attribute.split('[' + list_index + '].')[:2]
334 334 # Split attribute to path to lits (parent) and path to value in list element (child)
... ... @@ -462,8 +462,33 @@ def generate_test_bid_data(tender_data):
462 462 return bid
463 463
464 464
465   -def mult_and_round(*args, **kwargs):
466   - return round(reduce(operator.mul, args), kwargs.get('precision', 2))
  465 +def generate_test_bid_data_second_stage(tender_data, index='0'):
  466 + bid = test_bid_data()
  467 + if index.isdigit():
  468 + index = int(index)
  469 + else:
  470 + index = 0
  471 + bid['data']['tenderers'][0]['identifier']['id'] = tender_data['shortlistedFirms'][index]['identifier']['id']
  472 + bid['data']['tenderers'][0]['identifier']['scheme'] = tender_data['shortlistedFirms'][index]['identifier']['scheme']
  473 + bid['data']['tenderers'][0]['identifier']['legalName'] = tender_data['shortlistedFirms'][index]['identifier']['legalName']
  474 +
  475 + if 'aboveThreshold' in tender_data.get('procurementMethodType', '') or 'competitiveDialogue' in tender_data.get('procurementMethodType', ''):
  476 + bid.data.selfEligible = True
  477 + bid.data.selfQualified = True
  478 + if 'lots' in tender_data:
  479 + bid.data.lotValues = []
  480 + for lot in tender_data['lots']:
  481 + value = test_bid_value(lot['value']['amount'])
  482 + value['relatedLot'] = lot.get('id', '')
  483 + bid.data.lotValues.append(value)
  484 + else:
  485 + bid.data.update(test_bid_value(tender_data['value']['amount']))
  486 + if 'features' in tender_data:
  487 + bid.data.parameters = []
  488 + for feature in tender_data['features']:
  489 + parameter = {"value": fake.random_element(elements=(0.05, 0.01, 0)), "code": feature.get('code', '')}
  490 + bid.data.parameters.append(parameter)
  491 + return bid
467 492
468 493
469 494 # GUI Frontends common
... ...
... ... @@ -33,3 +33,25 @@
33 33 -i stage2_pending_status_view
34 34
35 35 -i wait_bridge_for_work
  36 +
  37 +-i get_second_stage
  38 +
  39 +-i compare_stages
  40 +
  41 +-i get_token_second_stage
  42 +
  43 +-i activate_second_stage
  44 +
  45 +-i make_bid_by_provider_second_stage
  46 +-i make_bid_by_provider1_second_stage
  47 +
  48 +-i pre-qualification_approve_first_bid_second_stage
  49 +-i pre-qualification_approve_second_bid_second_stage
  50 +
  51 +-i pre-qualification_approve_qualifications_second_stage
  52 +
  53 +-i auction_second_stage
  54 +
  55 +-i qualification_approve_first_award_second_stage
  56 +
  57 +-i contract_sign_second_stage
\ No newline at end of file
... ...
Please register or login to post a comment