Commit b4b5a5fef00821d592211479b67a4817594076f7
Merge pull request #283 from gorserg/add_tests_second_stage
Add tests for for the second stage of Competitive Dialogue
Showing
7 changed files
with
326 additions
and
11 deletions
@@ -82,4 +82,8 @@ Resource base_keywords.robot | @@ -82,4 +82,8 @@ Resource base_keywords.robot | ||
82 | 82 | ||
83 | 83 | ||
84 | Можливість перевести тендер на статус очікування обробки мостом | 84 | Можливість перевести тендер на статус очікування обробки мостом |
85 | - Run As ${tender_owner} Перевести тендер на статус очікування обробки мостом ${TENDER['TENDER_UAID']} | ||
85 | + Run As ${tender_owner} Перевести тендер на статус очікування обробки мостом ${TENDER['TENDER_UAID']} | ||
86 | + | ||
87 | + | ||
88 | +Активувати тендер другого етапу | ||
89 | + Run As ${tender_owner} активувати другий етап ${TENDER['TENDER_UAID']} |
@@ -35,6 +35,11 @@ Resource resource.robot | @@ -35,6 +35,11 @@ Resource resource.robot | ||
35 | Run as ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 35 | Run as ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
36 | 36 | ||
37 | 37 | ||
38 | +Можливість знайти тендер по ідентифікатору ${tender_id} та зберегти його в ${save_location} для користувача ${username} | ||
39 | + Дочекатись синхронізації з майданчиком ${username} | ||
40 | + Run as ${username} Пошук тендера по ідентифікатору ${tender_id} ${save_location} | ||
41 | + | ||
42 | + | ||
38 | Можливість змінити поле ${field_name} тендера на ${field_value} | 43 | Можливість змінити поле ${field_name} тендера на ${field_value} |
39 | Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value} | 44 | Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value} |
40 | 45 | ||
@@ -84,7 +89,15 @@ Resource resource.robot | @@ -84,7 +89,15 @@ Resource resource.robot | ||
84 | Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field} | 89 | Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field} |
85 | 90 | ||
86 | 91 | ||
87 | -Звірити відображення вмісту документа ${doc_id} із ${left} для користувача ${username} | 92 | +Отримати доступ до тендера другого етапу та зберегти його |
93 | + Run as ${tender_owner} Отримати тендер другого етапу та зберегти його ${USERS.users['${tender_owner}'].tender_data.data.stage2TenderID} | ||
94 | + ${TENDER_UAID_second_stage}= BuiltIn.Catenate SEPARATOR= ${TENDER['TENDER_UAID']} .2 | ||
95 | + Set to dictionary ${TENDER} TENDER_UAID=${TENDER_UAID_second_stage} | ||
96 | + :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer} | ||
97 | + \ Можливість знайти тендер по ідентифікатору для користувача ${username} | ||
98 | + | ||
99 | + | ||
100 | +Звірити відображення вмісту документа ${doc_id} з ${left} для користувача ${username} | ||
88 | ${file_name}= Run as ${username} Отримати документ ${TENDER['TENDER_UAID']} ${doc_id} | 101 | ${file_name}= Run as ${username} Отримати документ ${TENDER['TENDER_UAID']} ${doc_id} |
89 | ${right}= Get File ${OUTPUT_DIR}${/}${file_name} | 102 | ${right}= Get File ${OUTPUT_DIR}${/}${file_name} |
90 | Порівняти об'єкти ${left} ${right} | 103 | Порівняти об'єкти ${left} ${right} |
@@ -249,11 +262,21 @@ Resource resource.robot | @@ -249,11 +262,21 @@ Resource resource.robot | ||
249 | \ Звірити відображення поля ${field} усіх лотів для користувача ${username} | 262 | \ Звірити відображення поля ${field} усіх лотів для користувача ${username} |
250 | 263 | ||
251 | 264 | ||
265 | +Звірити відображення поля ${field} усіх лотів другого етапу для усіх користувачів | ||
266 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
267 | + \ Звірити відображення поля ${field} усіх лотів другого етапу для користувача ${username} | ||
268 | + | ||
269 | + | ||
252 | Звірити відображення поля ${field} усіх лотів для користувача ${username} | 270 | Звірити відображення поля ${field} усіх лотів для користувача ${username} |
253 | :FOR ${lot_index} IN RANGE ${NUMBER_OF_LOTS} | 271 | :FOR ${lot_index} IN RANGE ${NUMBER_OF_LOTS} |
254 | \ Звірити відображення поля ${field} ${lot_index} лоту для користувача ${username} | 272 | \ Звірити відображення поля ${field} ${lot_index} лоту для користувача ${username} |
255 | 273 | ||
256 | 274 | ||
275 | +Звірити відображення поля ${field} усіх лотів другого етапу для користувача ${username} | ||
276 | + :FOR ${lot_index} IN RANGE ${NUMBER_OF_LOTS} | ||
277 | + \ Звірити відображення поля ${field} ${lot_index} лоту другого етапу для користувача ${username} | ||
278 | + | ||
279 | + | ||
257 | Звірити відображення поля ${field} ${lot_index} лоту для користувача ${username} | 280 | Звірити відображення поля ${field} ${lot_index} лоту для користувача ${username} |
258 | Дочекатись синхронізації з майданчиком ${username} | 281 | Дочекатись синхронізації з майданчиком ${username} |
259 | ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}]} | 282 | ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}]} |
@@ -261,6 +284,13 @@ Resource resource.robot | @@ -261,6 +284,13 @@ Resource resource.robot | ||
261 | ... ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}].${field}} ${field} | 284 | ... ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}].${field}} ${field} |
262 | ... object_id=${lot_id} | 285 | ... object_id=${lot_id} |
263 | 286 | ||
287 | +Звірити відображення поля ${field} ${lot_index} лоту другого етапу для користувача ${username} | ||
288 | + Дочекатись синхронізації з майданчиком ${username} | ||
289 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}]} | ||
290 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} | ||
291 | + ... ${USERS.users['${tender_owner}'].second_stage_data.data.lots[${lot_index}].${field}} ${field} | ||
292 | + ... object_id=${lot_id} | ||
293 | + | ||
264 | 294 | ||
265 | Звірити відображення поля ${field} ${lot_index} лоту з ${data} для користувача ${username} | 295 | Звірити відображення поля ${field} ${lot_index} лоту з ${data} для користувача ${username} |
266 | ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}]} | 296 | ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}]} |
@@ -906,6 +936,21 @@ Resource resource.robot | @@ -906,6 +936,21 @@ Resource resource.robot | ||
906 | Set To Dictionary ${USERS.users['${username}'].bidresponses} resp=${resp} | 936 | Set To Dictionary ${USERS.users['${username}'].bidresponses} resp=${resp} |
907 | 937 | ||
908 | 938 | ||
939 | +Можливість подати цінову пропозицію на другий етап ${index} користувачем ${username} | ||
940 | + ${bid}= Підготувати дані для подання пропозиції для другого етапу ${username} ${index} | ||
941 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
942 | + Set To Dictionary ${USERS.users['${username}']} bidresponses=${bidresponses} | ||
943 | + ${lots}= Get Variable Value ${USERS.users['${username}'].tender_data.data.lots} ${None} | ||
944 | + ${lots_ids}= Run Keyword IF ${lots} | ||
945 | + ... Отримати ідентифікатори об’єктів ${username} lots | ||
946 | + ... ELSE Set Variable ${None} | ||
947 | + ${features}= Get Variable Value ${USERS.users['${username}'].tender_data.data.features} ${None} | ||
948 | + ${features_ids}= Run Keyword IF ${features} | ||
949 | + ... Отримати ідентифікатори об’єктів ${username} features | ||
950 | + ... ELSE Set Variable ${None} | ||
951 | + ${resp}= Run As ${username} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} ${features_ids} | ||
952 | + Set To Dictionary ${USERS.users['${username}'].bidresponses} resp=${resp} | ||
953 | + | ||
909 | Неможливість подати цінову пропозицію без прив’язки до лоту користувачем ${username} | 954 | Неможливість подати цінову пропозицію без прив’язки до лоту користувачем ${username} |
910 | ${bid}= Підготувати дані для подання пропозиції ${username} | 955 | ${bid}= Підготувати дані для подання пропозиції ${username} |
911 | ${values}= Get Variable Value ${bid.data.lotValues[0]} | 956 | ${values}= Get Variable Value ${bid.data.lotValues[0]} |
@@ -93,16 +93,25 @@ Library openprocurement_client_helper.py | @@ -93,16 +93,25 @@ Library openprocurement_client_helper.py | ||
93 | 93 | ||
94 | 94 | ||
95 | Пошук тендера по ідентифікатору | 95 | Пошук тендера по ідентифікатору |
96 | - [Arguments] ${username} ${tender_uaid} | 96 | + [Arguments] ${username} ${tender_uaid} ${save_key}=tender_data |
97 | ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} | 97 | ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} |
98 | ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid} | 98 | ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid} |
99 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 99 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
100 | - Set To Dictionary ${USERS.users['${username}']} tender_data=${tender} | 100 | + Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender} |
101 | ${tender}= munch_dict arg=${tender} | 101 | ${tender}= munch_dict arg=${tender} |
102 | Log ${tender} | 102 | Log ${tender} |
103 | [return] ${tender} | 103 | [return] ${tender} |
104 | 104 | ||
105 | 105 | ||
106 | +Отримати тендер другого етапу та зберегти його | ||
107 | + [Arguments] ${username} ${tender_id} | ||
108 | + ${response}= Call Method ${USERS.users['${username}'].client} patch_credentials ${tender_id} ${USERS.users['${username}'].access_token} | ||
109 | + ${tender}= set_access_key ${response} ${response.access.token} | ||
110 | + Set To Dictionary ${USERS.users['${username}']} access_token=${response.access.token} | ||
111 | + Set To Dictionary ${USERS.users['${username}']} tender_data=${response} | ||
112 | + Log ${tender.data.tenderID} | ||
113 | + | ||
114 | + | ||
106 | Оновити сторінку з тендером | 115 | Оновити сторінку з тендером |
107 | [Arguments] ${username} ${tender_uaid} | 116 | [Arguments] ${username} ${tender_uaid} |
108 | openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 117 | openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
@@ -1055,3 +1064,20 @@ Library openprocurement_client_helper.py | @@ -1055,3 +1064,20 @@ Library openprocurement_client_helper.py | ||
1055 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 1064 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
1056 | Log ${reply} | 1065 | Log ${reply} |
1057 | [Return] ${reply} | 1066 | [Return] ${reply} |
1067 | + | ||
1068 | + | ||
1069 | +Активувати другий етап | ||
1070 | + [Documentation] | ||
1071 | + ... [Arguments] Username and tender uaid | ||
1072 | + ... | ||
1073 | + ... [Description] Find tender using uaid and call patch_tender | ||
1074 | + ... | ||
1075 | + ... [Return] Reply of API | ||
1076 | + [Arguments] ${username} ${tender_uaid} | ||
1077 | + ${internal_id}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} | ||
1078 | + ${tender}= create_data_dict data.id ${internal_id} | ||
1079 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
1080 | + set_to_object ${tender} data.status active.tendering | ||
1081 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | ||
1082 | + Log ${reply} | ||
1083 | + [Return] ${reply} |
@@ -257,6 +257,12 @@ Get Broker Property By Username | @@ -257,6 +257,12 @@ Get Broker Property By Username | ||
257 | [Return] ${bid} | 257 | [Return] ${bid} |
258 | 258 | ||
259 | 259 | ||
260 | +Підготувати дані для подання пропозиції для другого етапу | ||
261 | + [Arguments] ${username} ${index}=0 | ||
262 | + ${bid}= generate_test_bid_data_second_stage ${USERS.users['${username}'].tender_data.data} ${index} | ||
263 | + [Return] ${bid} | ||
264 | + | ||
265 | + | ||
260 | Підготувати дані про постачальника | 266 | Підготувати дані про постачальника |
261 | [Arguments] ${username} | 267 | [Arguments] ${username} |
262 | ${supplier_data}= test_supplier_data | 268 | ${supplier_data}= test_supplier_data |
@@ -1638,7 +1638,7 @@ ${ITEM_MEAT} ${True} | @@ -1638,7 +1638,7 @@ ${ITEM_MEAT} ${True} | ||
1638 | Звірити статус тендера ${tender_owner} ${TENDER['TENDER_UAID']} active.stage2.pending | 1638 | Звірити статус тендера ${tender_owner} ${TENDER['TENDER_UAID']} active.stage2.pending |
1639 | 1639 | ||
1640 | 1640 | ||
1641 | -Можливість перевести статус очікування обробки мостом | 1641 | +Можливість перевести тендер в статус очікування обробки мостом |
1642 | [Tags] ${USERS.users['${tender_owner}'].broker}: Процес переведення статусу у active.stage2.waiting. | 1642 | [Tags] ${USERS.users['${tender_owner}'].broker}: Процес переведення статусу у active.stage2.waiting. |
1643 | ... tender_owner | 1643 | ... tender_owner |
1644 | ... ${USERS.users['${tender_owner}'].broker} | 1644 | ... ${USERS.users['${tender_owner}'].broker} |
@@ -1657,3 +1657,189 @@ ${ITEM_MEAT} ${True} | @@ -1657,3 +1657,189 @@ ${ITEM_MEAT} ${True} | ||
1657 | Дочекатися створення нового етапу мостом ${tender_owner} ${TENDER['TENDER_UAID']} | 1657 | Дочекатися створення нового етапу мостом ${tender_owner} ${TENDER['TENDER_UAID']} |
1658 | Звірити статус тендера ${tender_owner} ${TENDER['TENDER_UAID']} complete | 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 | + ${tender_UAID_second_stage}= Catenate SEPARATOR= ${TENDER['TENDER_UAID']} .2 | ||
1668 | + Можливість знайти тендер по ідентифікатору ${tender_UAID_second_stage} та зберегти його в second_stage_data для користувача ${tender_owner} | ||
1669 | + | ||
1670 | + | ||
1671 | +Відображення заголовку тендера другого етапу | ||
1672 | + [Tags] ${USERS.user['${tender_owner}'].broker}: Відображення основних даних тендера другого етапу | ||
1673 | + ... viewer | ||
1674 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1675 | + ... compare_stages | ||
1676 | + Звірити відображення поля title тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.title} для користувача ${viewer} | ||
1677 | + | ||
1678 | + | ||
1679 | +Відображення мінімального кроку закупівлі другого етапу | ||
1680 | + [Tags] ${USERS.user['${tender_owner}'].broker}: Відображення основних даних тендера другого етапу | ||
1681 | + ... viewer | ||
1682 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1683 | + ... compare_stages | ||
1684 | + Звірити відображення поля minimalStep тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.minimalStep} для користувача ${viewer} | ||
1685 | + | ||
1686 | + | ||
1687 | +Відображення доступного бюджету закупівлі другого етапу | ||
1688 | + [Tags] ${USERS.user['${tender_owner}'].broker}: Відображення основних даних тендера другого етапу | ||
1689 | + ... viewer | ||
1690 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1691 | + ... compare_stages | ||
1692 | + Звірити відображення поля value тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.value} для користувача ${viewer} | ||
1693 | + | ||
1694 | + | ||
1695 | +Відображення опису закупівлі другого етапу | ||
1696 | + [Tags] ${USERS.user['${tender_owner}'].broker}: Відображення основних даних тендера другого етапу | ||
1697 | + ... viewer | ||
1698 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1699 | + ... compare_stages | ||
1700 | + Звірити відображення поля description тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.description} для користувача ${viewer} | ||
1701 | + | ||
1702 | + | ||
1703 | +Відображення імені замовника тендера для другого етапу | ||
1704 | + [Tags] ${USERS.user['${tender_owner}'].broker}: Відображення основних даних тендера другого етапу | ||
1705 | + ... viewer | ||
1706 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1707 | + ... compare_stages | ||
1708 | + Звірити відображення поля procuringEntity.name тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.procuringEntity.name} для користувача ${viewer} | ||
1709 | + | ||
1710 | +############################################################################################## | ||
1711 | +# Відображення основних даних лоту для другого етапу | ||
1712 | +############################################################################################## | ||
1713 | + | ||
1714 | +Відображення лоту тендера другого етапу | ||
1715 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1716 | + ... viewer tender_owner provider provider1 | ||
1717 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
1718 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
1719 | + ... compare_stages | ||
1720 | + Звірити відображення поля title усіх лотів другого етапу для усіх користувачів | ||
1721 | + | ||
1722 | + | ||
1723 | +Відображення опису лотів для тендера другого етапу | ||
1724 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1725 | + ... viewer | ||
1726 | + ... ${USERS.users['${viewer}'].broker} | ||
1727 | + ... compare_stages | ||
1728 | + Звірити відображення поля description усіх лотів другого етапу для користувача ${viewer} | ||
1729 | + | ||
1730 | + | ||
1731 | +Відображення бюджету лотів для тендера другого етапу | ||
1732 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1733 | + ... viewer tender_owner provider provider1 | ||
1734 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
1735 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
1736 | + ... compare_stages | ||
1737 | + Звірити відображення поля value.amount усіх лотів другого етапу для усіх користувачів | ||
1738 | + | ||
1739 | + | ||
1740 | +Відображення валюти лотів для тендера другого етапу | ||
1741 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1742 | + ... viewer | ||
1743 | + ... ${USERS.users['${viewer}'].broker} | ||
1744 | + ... compare_stages | ||
1745 | + Звірити відображення поля value.currency усіх лотів другого етапу для користувача ${viewer} | ||
1746 | + | ||
1747 | + | ||
1748 | +Відображення ПДВ в бюджеті лотів для тендера другого етапу | ||
1749 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1750 | + ... viewer | ||
1751 | + ... ${USERS.users['${viewer}'].broker} | ||
1752 | + ... compare_stages | ||
1753 | + Звірити відображення поля value.valueAddedTaxIncluded усіх лотів другого етапу для користувача ${viewer} | ||
1754 | + | ||
1755 | + | ||
1756 | +Відображення мінімального кроку лотів для тендера другого етапу | ||
1757 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1758 | + ... viewer tender_owner provider provider1 | ||
1759 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
1760 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
1761 | + ... compare_stages | ||
1762 | + Звірити відображення поля minimalStep.amount усіх лотів другого етапу для усіх користувачів | ||
1763 | + | ||
1764 | + | ||
1765 | +Відображення валюти мінімального кроку лотів для тендера другого етапу | ||
1766 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1767 | + ... viewer | ||
1768 | + ... ${USERS.users['${viewer}'].broker} | ||
1769 | + ... compare_stages | ||
1770 | + Звірити відображення поля minimalStep.currency усіх лотів другого етапу для користувача ${viewer} | ||
1771 | + | ||
1772 | + | ||
1773 | +Відображення ПДВ в мінімальному кроці лотів для тендера другого етапу | ||
1774 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера другого етапу | ||
1775 | + ... viewer | ||
1776 | + ... ${USERS.users['${viewer}'].broker} | ||
1777 | + ... compare_stages | ||
1778 | + Звірити відображення поля minimalStep.valueAddedTaxIncluded усіх лотів другого етапу для користувача ${viewer} | ||
1779 | + | ||
1780 | +############################################################################################## | ||
1781 | +# END | ||
1782 | +############################################################################################## | ||
1783 | + | ||
1784 | +Можливість отримати доступ до тендера другого етапу | ||
1785 | + [Tags] ${USERS.user['${tender_owner}'].broker}: Отримати токен для другог етапу | ||
1786 | + ... tender_owner | ||
1787 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1788 | + ... save_tender_second_stage | ||
1789 | + Отримати доступ до тендера другого етапу та зберегти його | ||
1790 | + | ||
1791 | + | ||
1792 | +Можливість активувати тендер другого етапу | ||
1793 | + [Tags] ${USERS.users['${viewer}'].broker}: Активувати тендер другого етапу | ||
1794 | + ... tender_owner | ||
1795 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1796 | + ... activate_second_stage | ||
1797 | + Активувати тендер другого етапу | ||
1798 | + | ||
1799 | + | ||
1800 | +Можливість подати пропозицію першим учасником на другому етапі | ||
1801 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
1802 | + ... provider | ||
1803 | + ... ${USERS.users['${provider}'].broker} | ||
1804 | + ... make_bid_by_provider_second_stage | ||
1805 | + [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} | ||
1806 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
1807 | + Можливість подати цінову пропозицію на другий етап 1 користувачем ${provider} | ||
1808 | + | ||
1809 | + | ||
1810 | +Можливість подати пропозицію другим учасником на другому етапі | ||
1811 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції на другий етап | ||
1812 | + ... provider1 | ||
1813 | + ... ${USERS.users['${provider1}'].broker} | ||
1814 | + ... make_bid_by_provider1_second_stage | ||
1815 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
1816 | + Можливість подати цінову пропозицію на другий етап 2 користувачем ${provider1} | ||
1817 | + | ||
1818 | + | ||
1819 | +Можливість підтвердити першу пропозицію кваліфікації на другому етапі | ||
1820 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація на другому етапі | ||
1821 | + ... tender_owner | ||
1822 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1823 | + ... pre-qualification_approve_first_bid_second_stage | ||
1824 | + [Setup] Дочекатись дати початку періоду прекваліфікації ${tender_owner} ${TENDER['TENDER_UAID']} | ||
1825 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
1826 | + Можливість підтвердити 0 пропозицію кваліфікації | ||
1827 | + | ||
1828 | + | ||
1829 | +Можливість підтвердити другу пропозицію кваліфікації на другогму етапі | ||
1830 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація на другому етапі | ||
1831 | + ... tender_owner | ||
1832 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1833 | + ... pre-qualification_approve_second_bid_second_stage | ||
1834 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
1835 | + Можливість підтвердити -1 пропозицію кваліфікації | ||
1836 | + | ||
1837 | + | ||
1838 | +Можливість затвердити остаточне рішення кваліфікації на другому етапі | ||
1839 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація на другому етапі | ||
1840 | + ... tender_owner | ||
1841 | + ... ${USERS.users['${tender_owner}'].broker} | ||
1842 | + ... pre-qualification_approve_qualifications_second_stage | ||
1843 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
1844 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
1845 | + Можливість затвердити остаточне рішення кваліфікації |
@@ -329,7 +329,7 @@ def get_from_object(obj, attribute): | @@ -329,7 +329,7 @@ def get_from_object(obj, attribute): | ||
329 | def set_to_object(obj, attribute, value): | 329 | def set_to_object(obj, attribute, value): |
330 | # Search the list index in path to value | 330 | # Search the list index in path to value |
331 | list_index = re.search('\d+', attribute) | 331 | list_index = re.search('\d+', attribute) |
332 | - if list_index: | 332 | + if list_index and attribute != 'stage2TenderID': |
333 | list_index = list_index.group(0) | 333 | list_index = list_index.group(0) |
334 | parent, child = attribute.split('[' + list_index + '].')[:2] | 334 | parent, child = attribute.split('[' + list_index + '].')[:2] |
335 | # Split attribute to path to lits (parent) and path to value in list element (child) | 335 | # Split attribute to path to lits (parent) and path to value in list element (child) |
@@ -444,7 +444,7 @@ def get_complaint_index_by_complaintID(data, complaintID): | @@ -444,7 +444,7 @@ def get_complaint_index_by_complaintID(data, complaintID): | ||
444 | 444 | ||
445 | def generate_test_bid_data(tender_data): | 445 | def generate_test_bid_data(tender_data): |
446 | bid = test_bid_data() | 446 | bid = test_bid_data() |
447 | - if 'aboveThreshold' in tender_data.get('procurementMethodType', '') or 'competitiveDialogue' in tender_data.get('procurementMethodType', ''): | 447 | + if tender_data.get('procurementMethodType', '')[:-2] in ('aboveThreshold', 'competitiveDialogue'): |
448 | bid.data.selfEligible = True | 448 | bid.data.selfEligible = True |
449 | bid.data.selfQualified = True | 449 | bid.data.selfQualified = True |
450 | if 'lots' in tender_data: | 450 | if 'lots' in tender_data: |
@@ -467,6 +467,35 @@ def mult_and_round(*args, **kwargs): | @@ -467,6 +467,35 @@ def mult_and_round(*args, **kwargs): | ||
467 | return round(reduce(operator.mul, args), kwargs.get('precision', 2)) | 467 | return round(reduce(operator.mul, args), kwargs.get('precision', 2)) |
468 | 468 | ||
469 | 469 | ||
470 | +def generate_test_bid_data_second_stage(tender_data, index='0'): | ||
471 | + bid = test_bid_data() | ||
472 | + if index.isdigit(): | ||
473 | + index = int(index) | ||
474 | + else: | ||
475 | + index = 0 | ||
476 | + bid['data']['tenderers'][0]['identifier']['id'] = tender_data['shortlistedFirms'][index]['identifier']['id'] | ||
477 | + bid['data']['tenderers'][0]['identifier']['scheme'] = tender_data['shortlistedFirms'][index]['identifier']['scheme'] | ||
478 | + bid['data']['tenderers'][0]['identifier']['legalName'] = tender_data['shortlistedFirms'][index]['identifier']['legalName'] | ||
479 | + | ||
480 | + if tender_data.get('procurementMethodType', '')[:-2] in ('aboveThreshold', 'competitiveDialogue'): | ||
481 | + bid.data.selfEligible = True | ||
482 | + bid.data.selfQualified = True | ||
483 | + if 'lots' in tender_data: | ||
484 | + bid.data.lotValues = [] | ||
485 | + for lot in tender_data['lots']: | ||
486 | + value = test_bid_value(lot['value']['amount']) | ||
487 | + value['relatedLot'] = lot.get('id', '') | ||
488 | + bid.data.lotValues.append(value) | ||
489 | + else: | ||
490 | + bid.data.update(test_bid_value(tender_data['value']['amount'])) | ||
491 | + if 'features' in tender_data: | ||
492 | + bid.data.parameters = [] | ||
493 | + for feature in tender_data['features']: | ||
494 | + parameter = {"value": fake.random_element(elements=(0.05, 0.01, 0)), "code": feature.get('code', '')} | ||
495 | + bid.data.parameters.append(parameter) | ||
496 | + return bid | ||
497 | + | ||
498 | + | ||
470 | # GUI Frontends common | 499 | # GUI Frontends common |
471 | def add_data_for_gui_frontends(tender_data): | 500 | def add_data_for_gui_frontends(tender_data): |
472 | now = get_now() | 501 | now = get_now() |
1 | - -s openProcedure | 1 | +-s openProcedure |
2 | 2 | ||
3 | -v MODE:open_competitive_dialogue | 3 | -v MODE:open_competitive_dialogue |
4 | 4 | ||
5 | --v api_version:2.3 | ||
6 | --v api_host_url:http://localhost:6543/ | ||
7 | - | ||
8 | 5 | ||
9 | -v NUMBER_OF_ITEMS:1 | 6 | -v NUMBER_OF_ITEMS:1 |
10 | -v NUMBER_OF_LOTS:1 | 7 | -v NUMBER_OF_LOTS:1 |
@@ -33,3 +30,25 @@ | @@ -33,3 +30,25 @@ | ||
33 | -i stage2_pending_status_view | 30 | -i stage2_pending_status_view |
34 | 31 | ||
35 | -i wait_bridge_for_work | 32 | -i wait_bridge_for_work |
33 | + | ||
34 | +-i get_second_stage | ||
35 | + | ||
36 | +-i compare_stages | ||
37 | + | ||
38 | +-i save_tender_second_stage | ||
39 | + | ||
40 | +-i activate_second_stage | ||
41 | + | ||
42 | +-i make_bid_by_provider_second_stage | ||
43 | +-i make_bid_by_provider1_second_stage | ||
44 | + | ||
45 | +-i pre-qualification_approve_first_bid_second_stage | ||
46 | +-i pre-qualification_approve_second_bid_second_stage | ||
47 | + | ||
48 | +-i pre-qualification_approve_qualifications_second_stage | ||
49 | + | ||
50 | +-i auction | ||
51 | + | ||
52 | +-i qualification_approve_first_award | ||
53 | + | ||
54 | +-i contract_sign |
Please
register
or
login
to post a comment