Commit f451e93abf997c640da029f63d718ab2f1ac491a
1 parent
601fbee2
Додано метод local_path_to_file у service_keyword.py, Переписано задати питання …
…і відповісти на питання
Showing
12 changed files
with
993 additions
and
510 deletions
1 | -*** Setting *** | ||
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 TestCaseSetup | ||
10 | -Suite Teardown Close all browsers | ||
11 | - | ||
12 | -*** Variables *** | ||
13 | -${tender_dump_id} 0 | ||
14 | -${tender_owner} Tender_Owner | ||
15 | -${provider} Tender_User | ||
16 | -${viewer} Tender_Viewer | ||
17 | - | ||
18 | -${LOAD_USERS} ["${tender_owner}", "${provider}"] | ||
19 | - | ||
20 | -${item_id} 0 | ||
21 | -${question_id} 0 | ||
22 | - | ||
23 | - | ||
24 | -*** Test Cases *** | ||
25 | -Можливість оголосити однопердметний тендер | ||
26 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Пошук тендера по ідентифікатору | ||
27 | - ${TENDER_ID}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | ||
28 | - Set Global Variable ${TENDER_ID} | ||
29 | - ${LAST_MODIFICATION_DATE}= Get Current Date | ||
30 | - ${TENDER_DATA}= Get Variable Value ${INITIAL_TENDER_DATA} | ||
31 | - Set Global Variable ${TENDER_DATA} | ||
32 | - Set Global Variable ${LAST_MODIFICATION_DATE} | ||
33 | - | ||
34 | -Пошук однопредметного тендера по ідентифікатору | ||
35 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Пошук тендера по ідентифікатору | ||
36 | - Дочекатись синхронізації з майданчиком ${provider} | ||
37 | - Викликати для учасника ${provider} Пошук тендера по ідентифікатору ${TENDER_ID} ${TENDER_ID} | ||
38 | - | ||
39 | -Відображення заголовоку оголошеного тендера | ||
40 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
41 | - Звірити поле тендера ${provider} title | ||
42 | - | ||
43 | -Відображення опису оголошеного тендера | ||
44 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
45 | - Звірити поле тендера ${provider} description | ||
46 | - | ||
47 | -Відображення бюджету оголошеного тендера | ||
48 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
49 | - Звірити поле тендера ${provider} value.amount | ||
50 | - | ||
51 | -Відображення procuringEntity.name оголошеного тендера | ||
52 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
53 | - Звірити поле тендера ${provider} procuringEntity.name | ||
54 | - | ||
55 | -#Відображення початоку періоду уточнення оголошеного тендера | ||
56 | -# [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
57 | -# Звірити поле тендера ${provider} enquiryPeriod.startDate | ||
58 | - | ||
59 | -Відображення закінчення періоду уточнення оголошеного тендера | ||
60 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
61 | - Звірити дату ${provider} enquiryPeriod.endDate | ||
62 | - | ||
63 | -Відображення початоку періоду прийому пропозицій оголошеного тендера | ||
64 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
65 | - Звірити дату ${provider} tenderPeriod.startDate | ||
66 | - | ||
67 | -Відображення закінчення періоду прийому пропозицій оголошеного тендера | ||
68 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
69 | - Звірити дату ${provider} tenderPeriod.endDate | ||
70 | - | ||
71 | -Відображення мінімального кроку оголошеного тендера | ||
72 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | ||
73 | - Звірити поле тендера ${provider} minimalStep.amount | ||
74 | - | ||
75 | -Відображення опису позицій закупівлі однопредметного тендера | ||
76 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
77 | - Звірити поле тендера ${provider} items[${item_id}].description | ||
78 | - | ||
79 | -Відображення дати доставки позицій закупівлі однопредметного тендера | ||
80 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
81 | - Звірити дату ${provider} items[${item_id}].deliveryDate.endDate | ||
82 | - | ||
83 | -Відображення координат широти доставки позицій закупівлі однопредметного тендера | ||
84 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
85 | - Звірити поле тендера ${provider} items[${item_id}].deliveryLocation.latitude | ||
86 | - | ||
87 | -Відображення координат довготи доставки позицій закупівлі однопредметного тендера | ||
88 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
89 | - Звірити поле тендера ${provider} items[${item_id}].deliveryLocation.longitude | ||
90 | - | ||
91 | -Відображення назви нас. пункту доставки позицій закупівлі однопредметного тендера | ||
92 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
93 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.countryName | ||
94 | - | ||
95 | -Відображення пошт коду доставки позицій закупівлі однопредметного тендера | ||
96 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
97 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.postalCode | ||
98 | - | ||
99 | -Відображення регіону доставки позицій закупівлі однопредметного тендера | ||
100 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
101 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.region | ||
102 | - | ||
103 | -Відображення locality адреси доставки позицій закупівлі однопредметного тендера | ||
104 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
105 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.locality | ||
106 | - | ||
107 | -Відображення вулиці доставки позицій закупівлі однопредметного тендера | ||
108 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
109 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.streetAddress | ||
110 | - | ||
111 | -Відображення схеми класифікації позицій закупівлі однопредметного тендера | ||
112 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
113 | - Звірити поле тендера ${provider} items[${item_id}].classification.scheme | ||
114 | - | ||
115 | -Відображення ідентифйікатора класифікації позицій закупівлі однопредметного тендера | ||
116 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
117 | - Звірити поле тендера ${provider} items[${item_id}].classification.id | ||
118 | - | ||
119 | -Відображення опису класифікації позицій закупівлі однопредметного тендера | ||
120 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
121 | - Звірити поле тендера ${provider} items[${item_id}].classification.description | ||
122 | - | ||
123 | -Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера | ||
124 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
125 | - Звірити поле тендера ${provider} items[${item_id}].additionalClassifications.scheme | ||
126 | - | ||
127 | -Відображення ідентифікатора додаткової класифікації позицій закупівлі однопредметного тендера | ||
128 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
129 | - Звірити поле тендера ${provider} items[${item_id}].additionalClassifications.id | ||
130 | - | ||
131 | -Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера | ||
132 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
133 | - Звірити поле тендера ${provider} items[${item_id}].additionalClassifications.description | ||
134 | - | ||
135 | -Відображення назви одиниці позицій закупівлі однопредметного тендера | ||
136 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
137 | - Звірити поле тендера ${provider} items[${item_id}].unit.name | ||
138 | - | ||
139 | -Відображення коду одиниці позицій закупівлі однопредметного тендера | ||
140 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
141 | - Звірити поле тендера ${provider} items[${item_id}].unit.code | ||
142 | - | ||
143 | -Відображення кількості позицій закупівлі однопредметного тендера | ||
144 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | ||
145 | - Звірити поле тендера ${provider} items[${item_id}].quantity | ||
146 | - | ||
147 | - |
@@ -5,21 +5,8 @@ Library DateTime | @@ -5,21 +5,8 @@ Library DateTime | ||
5 | 5 | ||
6 | *** Variables *** | 6 | *** Variables *** |
7 | ${locator.tenderId} jquery=h3 | 7 | ${locator.tenderId} jquery=h3 |
8 | -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)> | ||
9 | -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)> | ||
10 | -${locator.minimalStep.amount} jquery=tender-subject-info>div.row:contains("Мінімальний крок аукціону, грн.:")>:eq(1)> | ||
11 | -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)> | ||
12 | -${locator.value.amount} jquery=tender-subject-info>div.row:contains("Повний доступний бюджет закупівлі, грн.:")>:eq(1)> | ||
13 | -${locator.tenderPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок прийому пропозицій:")>:eq(1)> | ||
14 | -${locator.tenderPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення прийому пропозицій:")>:eq(1)> | ||
15 | -${locator.enquiryPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок періоду уточнень:")>:eq(1)> | ||
16 | -${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення періоду уточнень:")>:eq(1)> | ||
17 | 8 | ||
18 | *** Keywords *** | 9 | *** Keywords *** |
19 | -Підготувати дані для оголошення тендера | ||
20 | - ${INITIAL_TENDER_DATA}= prepare_test_tender_data | ||
21 | - [return] ${INITIAL_TENDER_DATA} | ||
22 | - | ||
23 | Підготувати клієнт для користувача | 10 | Підготувати клієнт для користувача |
24 | [Arguments] @{ARGUMENTS} | 11 | [Arguments] @{ARGUMENTS} |
25 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо | 12 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо |
@@ -27,7 +14,6 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -27,7 +14,6 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
27 | Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]} | 14 | Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]} |
28 | Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | 15 | Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} |
29 | Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | 16 | Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} |
30 | - | ||
31 | # login | 17 | # login |
32 | Wait Until Page Contains Element id=inputUsername 100 | 18 | Wait Until Page Contains Element id=inputUsername 100 |
33 | Input text id=inputUsername ${USERS.users['${username}'].login} | 19 | Input text id=inputUsername ${USERS.users['${username}'].login} |
@@ -40,32 +26,30 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -40,32 +26,30 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
40 | [Documentation] | 26 | [Documentation] |
41 | ... ${ARGUMENTS[0]} == username | 27 | ... ${ARGUMENTS[0]} == username |
42 | ... ${ARGUMENTS[1]} == tender_data | 28 | ... ${ARGUMENTS[1]} == tender_data |
43 | - | ||
44 | - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | ||
45 | - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | ||
46 | - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | ||
47 | - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | ||
48 | - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | ||
49 | - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description | 29 | + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]} |
30 | + ${items}= Get From Dictionary ${tender_data.data} items | ||
31 | + ${title}= Get From Dictionary ${tender_data.data} title | ||
32 | + ${description}= Get From Dictionary ${tender_data.data} description | ||
33 | + ${budget}= Get From Dictionary ${tender_data.data.value} amount | ||
34 | + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount | ||
35 | + ${items_description}= Get From Dictionary ${tender_data.data} description | ||
50 | ${quantity}= Get From Dictionary ${items[0]} quantity | 36 | ${quantity}= Get From Dictionary ${items[0]} quantity |
51 | ${cpv}= Get From Dictionary ${items[0].classification} id | 37 | ${cpv}= Get From Dictionary ${items[0].classification} id |
52 | - ${cpv_id}= Get From Dictionary ${items[0].classification} id | ||
53 | ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | 38 | ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description |
54 | ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | 39 | ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id |
55 | ${unit}= Get From Dictionary ${items[0].unit} name | 40 | ${unit}= Get From Dictionary ${items[0].unit} name |
56 | - ${start_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate | 41 | + ${start_date}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate |
57 | ${start_date}= convert_date_to_etender_format ${start_date} | 42 | ${start_date}= convert_date_to_etender_format ${start_date} |
58 | - ${start_time}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate | 43 | + ${start_time}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate |
59 | ${start_time}= convert_time_to_etender_format ${start_time} | 44 | ${start_time}= convert_time_to_etender_format ${start_time} |
60 | - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | 45 | + ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate |
61 | ${end_date}= convert_date_to_etender_format ${end_date} | 46 | ${end_date}= convert_date_to_etender_format ${end_date} |
62 | - ${end_time}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | 47 | + ${end_time}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate |
63 | ${end_time}= convert_time_to_etender_format ${end_time} | 48 | ${end_time}= convert_time_to_etender_format ${end_time} |
64 | - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | 49 | + ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate |
65 | ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date} | 50 | ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date} |
66 | - ${enquiry_end_time}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | 51 | + ${enquiry_end_time}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate |
67 | ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time} | 52 | ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time} |
68 | - | ||
69 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} | 53 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} |
70 | Wait Until Page Contains Мої закупівлі 100 | 54 | Wait Until Page Contains Мої закупівлі 100 |
71 | Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі'] | 55 | Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі'] |
@@ -79,6 +63,7 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -79,6 +63,7 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
79 | Input text id=minimalStep ${step_rate} | 63 | Input text id=minimalStep ${step_rate} |
80 | Input text id=itemsDescription ${items_description} | 64 | Input text id=itemsDescription ${items_description} |
81 | Input text id=itemsQuantity ${quantity} | 65 | Input text id=itemsQuantity ${quantity} |
66 | + Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 100 | ||
82 | Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] | 67 | Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] |
83 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date} | 68 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date} |
84 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.enquiryPeriod.endDate'] ${enquiry_end_time} | 69 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.enquiryPeriod.endDate'] ${enquiry_end_time} |
@@ -105,27 +90,33 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -105,27 +90,33 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
105 | Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a | 90 | Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a |
106 | ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid | 91 | ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid |
107 | ### harcode Idis bacause issues on the E-tender side, to remove, 1 line: | 92 | ### harcode Idis bacause issues on the E-tender side, to remove, 1 line: |
108 | - ${tender_UAid}= Convert To String UA-2015-06-30-000012 | ||
109 | - ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${tender_UAid} | ||
110 | - ${Ids} Create List ${tender_UAid} ${id} | 93 | + ${tender_UAid}= Convert To String UA-2015-08-03-000025 |
94 | + ${Ids}= Convert To String ${tender_UAid} | ||
95 | + Run keyword if '${mode}' == 'multi' Set Multi Ids ${ARGUMENTS[0]} ${tender_UAid} | ||
111 | [return] ${Ids} | 96 | [return] ${Ids} |
112 | 97 | ||
98 | +Set Multi Ids | ||
99 | + [Arguments] @{ARGUMENTS} | ||
100 | + [Documentation] | ||
101 | + ... ${ARGUMENTS[0]} == username | ||
102 | + ... ${ARGUMENTS[1]} == ${tender_UAid} | ||
103 | + ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
104 | + ${Ids}= Create List ${tender_UAid} ${id} | ||
105 | + | ||
113 | get tender UAid | 106 | get tender UAid |
114 | ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")] | 107 | ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")] |
115 | ${tender_UAid}= Get Substring ${tender_UAid} 7 27 | 108 | ${tender_UAid}= Get Substring ${tender_UAid} 7 27 |
116 | 109 | ||
117 | - | ||
118 | Oтримати internal id по UAid | 110 | Oтримати internal id по UAid |
119 | [Arguments] @{ARGUMENTS} | 111 | [Arguments] @{ARGUMENTS} |
120 | [Documentation] | 112 | [Documentation] |
121 | ... ${ARGUMENTS[0]} == username | 113 | ... ${ARGUMENTS[0]} == username |
122 | - ... ${ARGUMENTS[1]} == tenderid | 114 | + ... ${ARGUMENTS[1]} == ${tender_UAid} |
123 | etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | 115 | etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
124 | ${current_location}= Get Location | 116 | ${current_location}= Get Location |
125 | ${tender_id}= Fetch From Right ${current_location} / | 117 | ${tender_id}= Fetch From Right ${current_location} / |
126 | -### harcode Idis bacause issues on the E-tender side, to remove, 1 line: | 118 | +## harcode Idis bacause issues on the E-tender side, to remove, 1 line: |
127 | ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2 | 119 | ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2 |
128 | - log ${tender_id} | ||
129 | [return] ${tender_id} | 120 | [return] ${tender_id} |
130 | 121 | ||
131 | Додати предмет | 122 | Додати предмет |
@@ -142,31 +133,24 @@ Oтримати internal id по UAid | @@ -142,31 +133,24 @@ Oтримати internal id по UAid | ||
142 | Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100 | 133 | Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100 |
143 | Click Element xpath=.//*[@id='myform']/tender-form/div/button | 134 | Click Element xpath=.//*[@id='myform']/tender-form/div/button |
144 | Sleep 2 | 135 | Sleep 2 |
145 | - Wait Until Page Contains Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2] 100 | ||
146 | Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2] | 136 | Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2] |
147 | Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | 137 | Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] |
148 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc1} | 138 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc1} |
149 | Wait Until Page Contains ${dkpp_id1} | 139 | Wait Until Page Contains ${dkpp_id1} |
150 | Click Element xpath=//td[contains(., '${dkpp_id1}')] | 140 | Click Element xpath=//td[contains(., '${dkpp_id1}')] |
151 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | 141 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] |
152 | - | ||
153 | Sleep 2 | 142 | Sleep 2 |
154 | - Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100 | ||
155 | Click Element xpath=.//*[@id='myform']/tender-form/div/button | 143 | Click Element xpath=.//*[@id='myform']/tender-form/div/button |
156 | Sleep 2 | 144 | Sleep 2 |
157 | - Wait Until Page Contains Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3] 100 | ||
158 | Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3] | 145 | Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3] |
159 | Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | 146 | Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] |
160 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc2} | 147 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc2} |
161 | Wait Until Page Contains ${dkpp_id2} | 148 | Wait Until Page Contains ${dkpp_id2} |
162 | Click Element xpath=//td[contains(., '${dkpp_id2}')] | 149 | Click Element xpath=//td[contains(., '${dkpp_id2}')] |
163 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | 150 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] |
164 | - | ||
165 | Sleep 2 | 151 | Sleep 2 |
166 | - Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100 | ||
167 | Click Element xpath=.//*[@id='myform']/tender-form/div/button | 152 | Click Element xpath=.//*[@id='myform']/tender-form/div/button |
168 | Sleep 2 | 153 | Sleep 2 |
169 | - Wait Until Page Contains Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4] 100 | ||
170 | Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4] | 154 | Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4] |
171 | Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | 155 | Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] |
172 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc3} | 156 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc3} |
@@ -174,13 +158,11 @@ Oтримати internal id по UAid | @@ -174,13 +158,11 @@ Oтримати internal id по UAid | ||
174 | Click Element xpath=//td[contains(., '${dkpp_id3}')] | 158 | Click Element xpath=//td[contains(., '${dkpp_id3}')] |
175 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | 159 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] |
176 | 160 | ||
177 | - | ||
178 | Пошук тендера по ідентифікатору | 161 | Пошук тендера по ідентифікатору |
179 | [Arguments] @{ARGUMENTS} | 162 | [Arguments] @{ARGUMENTS} |
180 | [Documentation] | 163 | [Documentation] |
181 | ... ${ARGUMENTS[0]} == username | 164 | ... ${ARGUMENTS[0]} == username |
182 | - ... ${ARGUMENTS[1]} == tenderId | ||
183 | - | 165 | + ... ${ARGUMENTS[1]} == ${TENDER_UAID} |
184 | Switch browser ${ARGUMENTS[0]} | 166 | Switch browser ${ARGUMENTS[0]} |
185 | Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} | 167 | Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} |
186 | Wait Until Page Contains Список закупівель 10 | 168 | Wait Until Page Contains Список закупівель 10 |
@@ -193,6 +175,57 @@ Oтримати internal id по UAid | @@ -193,6 +175,57 @@ Oтримати internal id по UAid | ||
193 | sleep 1 | 175 | sleep 1 |
194 | Capture Page Screenshot | 176 | Capture Page Screenshot |
195 | 177 | ||
178 | +Подати цінову пропозицію | ||
179 | + [Arguments] @{ARGUMENTS} | ||
180 | + [Documentation] | ||
181 | + ... ${ARGUMENTS[0]} == username | ||
182 | + ... ${ARGUMENTS[1]} == ${TENDER_UAID} | ||
183 | + ... ${ARGUMENTS[2]} == test_bid_data | ||
184 | + | ||
185 | + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount | ||
186 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
187 | + Wait Until Page Contains Інформація про процедуру закупівлі 100 | ||
188 | + Wait Until Page Contains Element id=amount 10 | ||
189 | + Input text id=amount ${bid} | ||
190 | + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції'] | ||
191 | + | ||
192 | +Задати питання | ||
193 | + [Arguments] @{ARGUMENTS} | ||
194 | + [Documentation] | ||
195 | + ... ${ARGUMENTS[0]} = username | ||
196 | + ... ${ARGUMENTS[1]} = ${TENDER_UAID} | ||
197 | + ... ${ARGUMENTS[2]} = question_data | ||
198 | + | ||
199 | + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
200 | + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
201 | + | ||
202 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
203 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
204 | + | ||
205 | + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100 | ||
206 | + Click Element jquery=a[href^="#/addQuestion/"] | ||
207 | + Wait Until Page Contains Element id=title | ||
208 | + Input text id=title ${title} | ||
209 | + Input text id=description ${description} | ||
210 | + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | ||
211 | + | ||
212 | +Відповісти на питання | ||
213 | + [Arguments] @{ARGUMENTS} | ||
214 | + [Documentation] | ||
215 | + ... ${ARGUMENTS[0]} = username | ||
216 | + ... ${ARGUMENTS[1]} = ${TENDER_UAID} | ||
217 | + ... ${ARGUMENTS[2]} = 0 | ||
218 | + ... ${ARGUMENTS[3]} = answer_data | ||
219 | + | ||
220 | + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | ||
221 | + | ||
222 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
223 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
224 | + | ||
225 | + Click Element xpath=//div[div/pre[1]]/div[1] | ||
226 | + Input text xpath=//div[textarea]/textarea ${answer} | ||
227 | + Click Element xpath=//div[textarea]/span/button[1] | ||
228 | + | ||
196 | обновити сторінку з тендером | 229 | обновити сторінку з тендером |
197 | [Arguments] @{ARGUMENTS} | 230 | [Arguments] @{ARGUMENTS} |
198 | [Documentation] | 231 | [Documentation] |
@@ -327,54 +360,3 @@ Oтримати internal id по UAid | @@ -327,54 +360,3 @@ Oтримати internal id по UAid | ||
327 | відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last> | 360 | відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last> |
328 | ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last> | 361 | ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last> |
329 | [return] ${return_value} | 362 | [return] ${return_value} |
330 | - | ||
331 | -Подати цінову пропозицію | ||
332 | - [Arguments] @{ARGUMENTS} | ||
333 | - [Documentation] | ||
334 | - ... ${ARGUMENTS[0]} == username | ||
335 | - ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID} | ||
336 | - ... ${ARGUMENTS[2]} == test_bid_data | ||
337 | - | ||
338 | - ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount | ||
339 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
340 | - Wait Until Page Contains Інформація про процедуру закупівлі 100 | ||
341 | - Wait Until Page Contains Element id=amount 10 | ||
342 | - Input text id=amount ${bid} | ||
343 | - Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції'] | ||
344 | - | ||
345 | -Задати питання | ||
346 | - [Arguments] @{ARGUMENTS} | ||
347 | - [Documentation] | ||
348 | - ... ${ARGUMENTS[0]} = username | ||
349 | - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | ||
350 | - ... ${ARGUMENTS[2]} = question_data | ||
351 | - | ||
352 | - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
353 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
354 | - | ||
355 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
356 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | ||
357 | - | ||
358 | - Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100 | ||
359 | - Click Element jquery=a[href^="#/addQuestion/"] | ||
360 | - Wait Until Page Contains Element id=title | ||
361 | - Input text id=title ${title} | ||
362 | - Input text id=description ${description} | ||
363 | - Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | ||
364 | - | ||
365 | -Відповісти на питання | ||
366 | - [Arguments] @{ARGUMENTS} | ||
367 | - [Documentation] | ||
368 | - ... ${ARGUMENTS[0]} = username | ||
369 | - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | ||
370 | - ... ${ARGUMENTS[2]} = 0 | ||
371 | - ... ${ARGUMENTS[3]} = answer_data | ||
372 | - | ||
373 | - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | ||
374 | - | ||
375 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
376 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | ||
377 | - | ||
378 | - Click Element xpath=//div[div/pre[1]]/div[1] | ||
379 | - Input text xpath=//div[textarea]/textarea ${answer} | ||
380 | - Click Element xpath=//div[textarea]/span/button[1] |
@@ -5,15 +5,7 @@ Library DateTime | @@ -5,15 +5,7 @@ Library DateTime | ||
5 | 5 | ||
6 | *** Variables *** | 6 | *** Variables *** |
7 | ${locator.tenderId} jquery=h3 | 7 | ${locator.tenderId} jquery=h3 |
8 | -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)> | ||
9 | -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)> | ||
10 | -${locator.minimalStep.amount} jquery=tender-subject-info>div.row:contains("Мінімальний крок аукціону, грн.:")>:eq(1)> | ||
11 | -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)> | ||
12 | -${locator.value.amount} jquery=tender-subject-info>div.row:contains("Повний доступний бюджет закупівлі, грн.:")>:eq(1)> | ||
13 | -${locator.tenderPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок прийому пропозицій:")>:eq(1)> | ||
14 | -${locator.tenderPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення прийому пропозицій:")>:eq(1)> | ||
15 | -${locator.enquiryPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок періоду уточнень:")>:eq(1)> | ||
16 | -${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення періоду уточнень:")>:eq(1)> | 8 | +${file_path} local_path_to_file("TestDocument.docx") |
17 | 9 | ||
18 | *** Keywords *** | 10 | *** Keywords *** |
19 | Підготувати клієнт для користувача | 11 | Підготувати клієнт для користувача |
@@ -23,16 +15,11 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -23,16 +15,11 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
23 | Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]} | 15 | Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]} |
24 | Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | 16 | Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} |
25 | Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | 17 | Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} |
26 | - | ||
27 | -# login | ||
28 | -# Wait Until Page Contains Element name=siteLogin 100 | ||
29 | -# Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login} | ||
30 | -# Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password} | ||
31 | -# Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | 18 | + Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]} |
32 | 19 | ||
33 | Wait Until Page Contains Element jquery=a[href="/cabinet"] | 20 | Wait Until Page Contains Element jquery=a[href="/cabinet"] |
34 | Click Element jquery=a[href="/cabinet"] | 21 | Click Element jquery=a[href="/cabinet"] |
35 | - Wait Until Page Contains Element name=email 100 | 22 | + Wait Until Page Contains Element name=email 10 |
36 | # Input text name=email mail | 23 | # Input text name=email mail |
37 | Sleep 1 | 24 | Sleep 1 |
38 | Input text name=email ${USERS.users['${username}'].login} | 25 | Input text name=email ${USERS.users['${username}'].login} |
@@ -41,20 +28,29 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -41,20 +28,29 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
41 | Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100 | 28 | Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100 |
42 | Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] | 29 | Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] |
43 | 30 | ||
31 | +Pre Login | ||
32 | + [Arguments] @{ARGUMENTS} | ||
33 | + [Documentation] | ||
34 | + ... ${ARGUMENTS[0]} == username | ||
35 | + Wait Until Page Contains Element name=siteLogin 10 | ||
36 | + Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login} | ||
37 | + Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password} | ||
38 | + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | ||
39 | + | ||
44 | Створити тендер | 40 | Створити тендер |
45 | [Arguments] @{ARGUMENTS} | 41 | [Arguments] @{ARGUMENTS} |
46 | [Documentation] | 42 | [Documentation] |
47 | ... ${ARGUMENTS[0]} == username | 43 | ... ${ARGUMENTS[0]} == username |
48 | ... ${ARGUMENTS[1]} == tender_data | 44 | ... ${ARGUMENTS[1]} == tender_data |
49 | - | ||
50 | - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | ||
51 | - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | ||
52 | - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | ||
53 | - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | ||
54 | - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | ||
55 | - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description | 45 | + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]} |
46 | + ${items}= Get From Dictionary ${tender_data.data} items | ||
47 | + ${title}= Get From Dictionary ${tender_data.data} title | ||
48 | + ${description}= Get From Dictionary ${tender_data.data} description | ||
49 | + ${budget}= Get From Dictionary ${tender_data.data.value} amount | ||
50 | + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount | ||
51 | + ${items_description}= Get From Dictionary ${tender_data.data} description | ||
56 | ${quantity}= Get From Dictionary ${items[0]} quantity | 52 | ${quantity}= Get From Dictionary ${items[0]} quantity |
57 | - ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName | 53 | + ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName |
58 | ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate | 54 | ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate |
59 | ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} | 55 | ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} |
60 | ${cpv}= Get From Dictionary ${items[0].classification} description_ua | 56 | ${cpv}= Get From Dictionary ${items[0].classification} description_ua |
@@ -63,9 +59,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -63,9 +59,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
63 | ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | 59 | ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description |
64 | ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | 60 | ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id |
65 | ${dkpp_id1}= Replace String ${dkpp_id} - _ | 61 | ${dkpp_id1}= Replace String ${dkpp_id} - _ |
66 | - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | 62 | + ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate |
67 | ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} | 63 | ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} |
68 | - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | 64 | + ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate |
69 | ${end_date}= convert_date_to_slash_format ${end_date} | 65 | ${end_date}= convert_date_to_slash_format ${end_date} |
70 | 66 | ||
71 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} | 67 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} |
@@ -80,6 +76,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -80,6 +76,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
80 | Input text name=items[0][item_quantity] ${quantity} | 76 | Input text name=items[0][item_quantity] ${quantity} |
81 | Input text name=items[0][item_deliveryAddress_countryName] ${countryName} | 77 | Input text name=items[0][item_deliveryAddress_countryName] ${countryName} |
82 | Input text name=items[0][item_deliveryDate_endDate] ${delivery_end_date} | 78 | Input text name=items[0][item_deliveryDate_endDate] ${delivery_end_date} |
79 | + Click Element xpath=//a[@class ='uploadFile'] | ||
80 | + Choose File xpath=//a[@class ='uploadFile'] ${file_path} | ||
81 | + Debug | ||
83 | Click Element xpath=//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'] | 82 | Click Element xpath=//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'] |
84 | Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | 83 | Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] |
85 | Input text id=search ${cpv} | 84 | Input text id=search ${cpv} |
@@ -102,11 +101,18 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -102,11 +101,18 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
102 | Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100 | 101 | Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100 |
103 | Click Element xpath=//a[contains(@class, 'button pubBtn')] | 102 | Click Element xpath=//a[contains(@class, 'button pubBtn')] |
104 | Wait Until Page Contains Тендер опубліковано 100 | 103 | Wait Until Page Contains Тендер опубліковано 100 |
105 | - ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2] | ||
106 | - ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2] | ||
107 | - ${Ids} Create List ${tender_UAid} ${id} | 104 | + ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2] |
105 | + ${Ids}= Convert To String ${tender_UAid} | ||
106 | + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid} | ||
108 | [return] ${Ids} | 107 | [return] ${Ids} |
109 | 108 | ||
109 | +Set Multi Ids | ||
110 | + [Arguments] @{ARGUMENTS} | ||
111 | + [Documentation] | ||
112 | + ... ${ARGUMENTS[1]} == ${tender_UAid} | ||
113 | + ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2] | ||
114 | + ${Ids}= Create List ${tender_UAid} ${id} | ||
115 | + | ||
110 | Додати предмет | 116 | Додати предмет |
111 | [Arguments] @{ARGUMENTS} | 117 | [Arguments] @{ARGUMENTS} |
112 | [Documentation] | 118 | [Documentation] |
@@ -179,17 +185,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -179,17 +185,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
179 | Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} | 185 | Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} |
180 | Input text name=tender_tenderPeriod_endDate ${end_date} | 186 | Input text name=tender_tenderPeriod_endDate ${end_date} |
181 | 187 | ||
182 | - | ||
183 | Пошук тендера по ідентифікатору | 188 | Пошук тендера по ідентифікатору |
184 | [Arguments] @{ARGUMENTS} | 189 | [Arguments] @{ARGUMENTS} |
185 | [Documentation] | 190 | [Documentation] |
186 | ... ${ARGUMENTS[0]} == username | 191 | ... ${ARGUMENTS[0]} == username |
187 | ... ${ARGUMENTS[1]} == tenderId | 192 | ... ${ARGUMENTS[1]} == tenderId |
188 | - ... ${ARGUMENTS[2]} == id | ||
189 | Switch browser ${ARGUMENTS[0]} | 193 | Switch browser ${ARGUMENTS[0]} |
190 | 194 | ||
191 | - ${current_location}= Get Location | ||
192 | - Run keyword if '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page | ||
193 | Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} | 195 | Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} |
194 | Wait Until Page Contains Держзакупівлі.онлайн 10 | 196 | Wait Until Page Contains Держзакупівлі.онлайн 10 |
195 | # sleep 1 | 197 | # sleep 1 |
@@ -205,13 +207,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -205,13 +207,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
205 | [Arguments] @{ARGUMENTS} | 207 | [Arguments] @{ARGUMENTS} |
206 | [Documentation] | 208 | [Documentation] |
207 | ... ${ARGUMENTS[0]} == username | 209 | ... ${ARGUMENTS[0]} == username |
208 | - ... ${ARGUMENTS[1]} == tenderId | ||
209 | - ... ${ARGUMENTS[2]} == id | 210 | + ... ${ARGUMENTS[1]} == tenderUaId |
211 | + ... ${ARGUMENTS[2]} == questionId | ||
210 | ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | 212 | ${title}= Get From Dictionary ${ARGUMENTS[2].data} title |
211 | ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | 213 | ${description}= Get From Dictionary ${ARGUMENTS[2].data} description |
212 | 214 | ||
213 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} | 215 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} |
214 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | 216 | + netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
215 | 217 | ||
216 | Click Element xpath=//a[@class='reverse tenderLink'] | 218 | Click Element xpath=//a[@class='reverse tenderLink'] |
217 | Wait Until Page Contains Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] 20 | 219 | Wait Until Page Contains Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] 20 |
@@ -227,13 +229,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | @@ -227,13 +229,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai | ||
227 | [Arguments] @{ARGUMENTS} | 229 | [Arguments] @{ARGUMENTS} |
228 | [Documentation] | 230 | [Documentation] |
229 | ... ${ARGUMENTS[0]} = username | 231 | ... ${ARGUMENTS[0]} = username |
230 | - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | 232 | + ... ${ARGUMENTS[1]} = tenderUaId |
231 | ... ${ARGUMENTS[2]} = 0 | 233 | ... ${ARGUMENTS[2]} = 0 |
232 | ... ${ARGUMENTS[3]} = answer_data | 234 | ... ${ARGUMENTS[3]} = answer_data |
233 | 235 | ||
234 | ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | 236 | ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer |
235 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} | 237 | Selenium2Library.Switch Browser ${ARGUMENTS[0]} |
236 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | 238 | + netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
237 | 239 | ||
238 | Click Element xpath=//a[@class='reverse tenderLink'] | 240 | Click Element xpath=//a[@class='reverse tenderLink'] |
239 | Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | 241 | Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] |
1 | +*** Setting *** | ||
2 | +Library Selenium2Screenshots | ||
3 | +Library String | ||
4 | +Library DateTime | ||
5 | + | ||
6 | +*** Variables *** | ||
7 | +${locator.tenderId} jquery=h3 | ||
8 | + | ||
9 | +*** Keywords *** | ||
10 | +Підготувати дані для оголошення тендера | ||
11 | + ${INITIAL_TENDER_DATA}= prepare_test_tender_data | ||
12 | + [return] ${INITIAL_TENDER_DATA} | ||
13 | + | ||
14 | +Підготувати клієнт для користувача | ||
15 | + [Arguments] @{ARGUMENTS} | ||
16 | + [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо | ||
17 | + ... ${ARGUMENTS[0]} == username | ||
18 | + | ||
19 | + Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]} | ||
20 | + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | ||
21 | + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | ||
22 | + Wait Until Page Contains Element id=indexpage_login 100 | ||
23 | + Click Element id=indexpage_login | ||
24 | + Wait Until Page Contains Element id=password 100 | ||
25 | + Input text id=login-email ${USERS.users['${username}'].login} | ||
26 | + Input text id=password ${USERS.users['${username}'].password} | ||
27 | + Click Element id=submit-login-button | ||
28 | + Wait Until Page Contains Element xpath=//div[@class="introjs-overlay"] 100 | ||
29 | + | ||
30 | +Створити тендер | ||
31 | + [Arguments] @{ARGUMENTS} | ||
32 | + [Documentation] | ||
33 | + ... ${ARGUMENTS[0]} == username | ||
34 | + ... ${ARGUMENTS[1]} == tender_data | ||
35 | + | ||
36 | +## Inicialisation | ||
37 | + ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | ||
38 | + ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | ||
39 | + ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | ||
40 | + ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | ||
41 | + ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | ||
42 | + ${start_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate | ||
43 | + ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | ||
44 | + ${enquiry_start_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} startDate | ||
45 | + ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | ||
46 | + | ||
47 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
48 | + Go To ${USERS.users['${username}'].homepage} | ||
49 | + Wait Until Page Contains Element xpath=//a[@href="#/create-tender"] 100 | ||
50 | + Click Link xpath=//a[@href="#/create-tender"] | ||
51 | + Wait Until Page Contains Новый тендер 100 | ||
52 | +# Input fields tender | ||
53 | + Input text name=tenderName ${title} | ||
54 | + Input text name=tenderDescription ${description} | ||
55 | + Input text id=budget ${budget} | ||
56 | + Click Element id=with-nds | ||
57 | + Input text id=step ${step_rate} | ||
58 | +# Add Item(s) | ||
59 | + Додати придмет ${items[0]} 0 | ||
60 | + Run Keyword If '${mode}' == 'multi' Додати багато придметів items | ||
61 | +# Set tender datatimes | ||
62 | + Set datetime start-date-registration ${start_date} | ||
63 | + Set datetime end-date-registration ${end_date} | ||
64 | + Set datetime end-date-qualification ${enquiry_end_date} | ||
65 | + Set datetime start-date-qualification ${enquiry_start_date} | ||
66 | +# Save | ||
67 | + Click Element xpath=//button[@class="btn btn-lg btn-default cancel pull-right ng-binding"] | ||
68 | + Wait Until Page Contains Element xpath=//div[@ng-click="goHome()"] 30 | ||
69 | + Click Element xpath=//div[@ng-click="goHome()"] | ||
70 | +# Get Ids | ||
71 | + Wait Until Page Contains Element xpath=//div[@class="title"] 30 | ||
72 | + ${tender_UAid}= Get Text xpath=//div[@class="title"] | ||
73 | + ${Ids}= Convert To String ${tender_UAid} | ||
74 | + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid} | ||
75 | + [return] ${Ids} | ||
76 | + | ||
77 | +Set Multi Ids | ||
78 | + [Arguments] @{ARGUMENTS} | ||
79 | + [Documentation] | ||
80 | + ... ${ARGUMENTS[0]} == ${tender_UAid} | ||
81 | + ${current_location}= Get Location | ||
82 | + ${id}= Get Substring ${current_location} -41 -9 | ||
83 | + ${Ids}= Create List ${tender_UAid} ${id} | ||
84 | + | ||
85 | +Set datetime | ||
86 | + [Arguments] @{ARGUMENTS} | ||
87 | + [Documentation] | ||
88 | + ... ${ARGUMENTS[0]} == control_id | ||
89 | + ... ${ARGUMENTS[1]} == date | ||
90 | +#Pick Date | ||
91 | + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/../span[@class="calendar-btn"] | ||
92 | + Wait Until Page Contains Element xpath=//td[@class="text-center ng-scope"] 30 | ||
93 | + ${datapicker_id}= Get Element Attribute xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@class="text-center ng-scope"]@id | ||
94 | + ${datapicker_id}= Get Substring ${datapicker_id} 0 -1 | ||
95 | + ${date_index}= newtend_date_picker_index ${ARGUMENTS[1]} | ||
96 | + ${datapicker_id}= Convert To String ${datapicker_id}${date_index} | ||
97 | + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@id="${datapicker_id}"]/button | ||
98 | +#Set time | ||
99 | + ${hous}= Get Substring ${ARGUMENTS[1]} 11 13 | ||
100 | + ${minutes}= Get Substring ${ARGUMENTS[1]} 14 16 | ||
101 | + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="hours"] ${hous} | ||
102 | + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="minutes"] ${minutes} | ||
103 | + | ||
104 | +Додати придмет | ||
105 | + [Arguments] @{ARGUMENTS} | ||
106 | + [Documentation] | ||
107 | + ... ${ARGUMENTS[0]} == items_n | ||
108 | + ... ${ARGUMENTS[1]} == index | ||
109 | +## Get values for item | ||
110 | + ${items_description}= Get From Dictionary ${ARGUMENTS[0]} description | ||
111 | + ${quantity}= Get From Dictionary ${ARGUMENTS[0]} quantity | ||
112 | + ${cpv}= Get From Dictionary ${ARGUMENTS[0].classification} description_ua | ||
113 | + ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description | ||
114 | + ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id | ||
115 | + ${unit}= Get From Dictionary ${ARGUMENTS[0].unit} name | ||
116 | + ${deliverydate_end_date}= Get From Dictionary ${ARGUMENTS[0].deliveryDate} endDate | ||
117 | + ${countryName}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} countryName | ||
118 | + ${ZIP}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} postalCode | ||
119 | + ${region}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} region | ||
120 | + ${locality}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} locality | ||
121 | + ${streetAddress}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} streetAddress | ||
122 | +# Add item | ||
123 | + Input text id=itemDescription${ARGUMENTS[1]} ${items_description} | ||
124 | + Input text id=quantity${ARGUMENTS[1]} ${quantity} | ||
125 | + Click Element xpath=//a[contains(text(), "единицы измерения")] | ||
126 | + Click Element xpath=//a[contains(text(), "единицы измерения")]/..//a[contains(text(), '${unit}')] | ||
127 | +# Set CPV | ||
128 | + Click Element id=classifier1${ARGUMENTS[1]} | ||
129 | + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100 | ||
130 | + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${cpv} | ||
131 | + Wait Until Page Contains Element xpath=//span[contains(text(),'${cpv}')] 20 | ||
132 | + Click Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] | ||
133 | + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"] | ||
134 | +# Set ДКПП | ||
135 | + Click Element id=classifier2${ARGUMENTS[1]} | ||
136 | + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100 | ||
137 | + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${dkpp_desc} | ||
138 | + Wait Until Page Contains Element xpath=//span[contains(text(),'${dkpp_id}')] 100 | ||
139 | + Click Element xpath=//span[contains(text(),'${dkpp_id}')]/../..//input[@class="ng-pristine ng-untouched ng-valid"] | ||
140 | + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"] | ||
141 | +# Set Delivery Address | ||
142 | + Click Element id=deliveryAddress${ARGUMENTS[1]} | ||
143 | + Wait Until Page Contains Element xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] 100 | ||
144 | + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${countryName} | ||
145 | + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${ZIP} | ||
146 | + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${region} | ||
147 | + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${locality} | ||
148 | + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${streetAddress} | ||
149 | + Click Element xpath=//button[@class="btn btn-lg single-btn ng-binding"] | ||
150 | +# Set Item Datetime | ||
151 | + Set datetime end-date-delivery${ARGUMENTS[1]} ${deliverydate_end_date} | ||
152 | + | ||
153 | +Додати багато придметів | ||
154 | + [Arguments] @{ARGUMENTS} | ||
155 | + [Documentation] | ||
156 | + ... ${ARGUMENTS[0]} == items | ||
157 | + ${Items_length}= Get Length ${items} | ||
158 | + : FOR ${INDEX} IN RANGE 1 ${Items_length} | ||
159 | + \ Click Element xpath=//a[@class="icon-black plus-black remove-field ng-scope"] | ||
160 | + \ Додати придмет ${items[${INDEX}]} ${INDEX} | ||
161 | + | ||
162 | + | ||
163 | + | ||
164 | + | ||
165 | + | ||
166 | + | ||
167 | + | ||
168 | +#### Not reworked for Newtend #### | ||
169 | + | ||
170 | +Oтримати internal id по UAid | ||
171 | + [Arguments] @{ARGUMENTS} | ||
172 | + [Documentation] | ||
173 | + ... ${ARGUMENTS[0]} == username | ||
174 | + ... ${ARGUMENTS[1]} == tenderid | ||
175 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
176 | + ${current_location}= Get Location | ||
177 | + ${tender_id}= Fetch From Right ${current_location} / | ||
178 | +### harcode Idis bacause issues on the E-tender side, to remove, 1 line: | ||
179 | + ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2 | ||
180 | + log ${internal_id} | ||
181 | + [return] ${internal_id} | ||
182 | + | ||
183 | +Пошук тендера по ідентифікатору | ||
184 | + [Arguments] @{ARGUMENTS} | ||
185 | + [Documentation] | ||
186 | + ... ${ARGUMENTS[0]} == username | ||
187 | + ... ${ARGUMENTS[1]} == tenderId | ||
188 | + | ||
189 | + Switch browser ${ARGUMENTS[0]} | ||
190 | + Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} | ||
191 | + Wait Until Page Contains Список закупівель 10 | ||
192 | + sleep 1 | ||
193 | + Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]} | ||
194 | + Click Link jquery=a[ng-click='search()'] | ||
195 | + sleep 2 | ||
196 | + Click Link jquery=a[href^="#/tenderDetailes"] | ||
197 | + Wait Until Page Contains ${ARGUMENTS[1]} 10 | ||
198 | + sleep 1 | ||
199 | + Capture Page Screenshot | ||
200 | + | ||
201 | +обновити сторінку з тендером | ||
202 | + [Arguments] @{ARGUMENTS} | ||
203 | + [Documentation] | ||
204 | + ... ${ARGUMENTS[0]} == username | ||
205 | + ... ${ARGUMENTS[1]} == tenderId | ||
206 | + ... ${ARGUMENTS[2]} == id | ||
207 | + ${current_location}= Get Location | ||
208 | + Run keyword if '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page | ||
209 | + Run keyword unless '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Пошук тендера по ідентифікатору @{ARGUMENTS} | ||
210 | + Wait Until Page Contains ${ARGUMENTS[1]} 10 | ||
211 | + sleep 1 | ||
212 | + | ||
213 | +отримати інформацію із тендера | ||
214 | + [Arguments] @{ARGUMENTS} | ||
215 | + [Documentation] | ||
216 | + ... ${ARGUMENTS[0]} == username | ||
217 | + ... ${ARGUMENTS[1]} == fieldname | ||
218 | + Switch browser ${ARGUMENTS[0]} | ||
219 | + ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]} | ||
220 | + [return] ${return_value} | ||
221 | + | ||
222 | +Відмітити на сторінці поле з тендера | ||
223 | + [Arguments] ${fieldname} ${locator} | ||
224 | + ${last_note_id}= Add pointy note ${locator} Found ${fieldname} width=200 position=bottom | ||
225 | + Align elements horizontally ${locator} ${last_note_id} | ||
226 | + sleep 1 | ||
227 | + Remove element ${last_note_id} | ||
228 | + | ||
229 | +Отримати тест із поля і показати на сторінці | ||
230 | + [Arguments] ${fieldname} | ||
231 | + sleep 3 | ||
232 | +# відмітити на сторінці поле з тендера ${fieldname} ${locator.${fieldname}} | ||
233 | + ${return_value}= Get Text ${locator.${fieldname}} | ||
234 | + [return] ${return_value} | ||
235 | + | ||
236 | +отримати інформацію про tenderId | ||
237 | + ${return_value}= Отримати тест із поля і показати на сторінці tenderId | ||
238 | + [return] ${return_value.split(' ')[1]} | ||
239 | + | ||
240 | +отримати інформацію про title | ||
241 | + ${return_value}= Отримати тест із поля і показати на сторінці title | ||
242 | + [return] ${return_value} | ||
243 | + | ||
244 | +отримати інформацію про description | ||
245 | + ${return_value}= Отримати тест із поля і показати на сторінці description | ||
246 | + [return] ${return_value} | ||
247 | + | ||
248 | +отримати інформацію про minimalStep.amount | ||
249 | + ${return_value}= Отримати тест із поля і показати на сторінці minimalStep.amount | ||
250 | + ${return_value}= Convert To Number ${return_value.split(' ')[0]} | ||
251 | + [return] ${return_value} | ||
252 | + | ||
253 | +отримати інформацію про procuringEntity.name | ||
254 | + ${return_value}= Отримати тест із поля і показати на сторінці procuringEntity.name | ||
255 | + [return] ${return_value} | ||
256 | + | ||
257 | + | ||
258 | +отримати інформацію про value.amount | ||
259 | + ${return_value}= Отримати тест із поля і показати на сторінці value.amount | ||
260 | + ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3]) | ||
261 | + ${return_value}= Convert To Number ${return_value} | ||
262 | + [return] ${return_value} | ||
263 | + | ||
264 | +отримати інформацію про tenderPeriod.startDate | ||
265 | + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.startDate | ||
266 | + [return] ${return_value} | ||
267 | + | ||
268 | +отримати інформацію про tenderPeriod.endDate | ||
269 | + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.endDate | ||
270 | + [return] ${return_value} | ||
271 | + | ||
272 | +отримати інформацію про enquiryPeriod.startDate | ||
273 | + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.startDate | ||
274 | + [return] ${return_value} | ||
275 | + | ||
276 | +отримати інформацію про enquiryPeriod.endDate | ||
277 | + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.endDate | ||
278 | + [return] ${return_value} | ||
279 | + | ||
280 | + | ||
281 | +отримати інформацію про items[${item_id}].description | ||
282 | + відмітити на сторінці поле з тендера items[${item_id}].description jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)> | ||
283 | + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)> | ||
284 | + [return] ${return_value} | ||
285 | + | ||
286 | +отримати інформацію про items[${item_id}].quantity | ||
287 | + відмітити на сторінці поле з тендера items[${item_id}].quantity jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)> | ||
288 | + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)> | ||
289 | + ${return_value}= Convert To Number ${return_value} | ||
290 | + [return] ${return_value} | ||
291 | + | ||
292 | +отримати інформацію про items[${item_id}].classification.id | ||
293 | + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)> | ||
294 | + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)> | ||
295 | + [return] ${return_value.split(' ')[0]} | ||
296 | + | ||
297 | +отримати інформацію про items[${item_id}].classification.scheme | ||
298 | + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)> | ||
299 | + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)> | ||
300 | + [return] ${return_value.split(' ')[0]} | ||
301 | + | ||
302 | +отримати інформацію про items[${item_id}].classification.description | ||
303 | + відмітити на сторінці поле з тендера classification.description jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)> | ||
304 | + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)> | ||
305 | + ${return_value}= catenate @{return_value.split(' ')[1:]} | ||
306 | + [return] ${return_value} | ||
307 | + | ||
308 | +отримати інформацію про items[${item_id}].deliveryAddress | ||
309 | + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryAddress | ||
310 | + [return] ${return_value} | ||
311 | + | ||
312 | +отримати інформацію про items[${item_id}].deliveryDate | ||
313 | + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryDate | ||
314 | + [return] ${return_value} | ||
315 | + | ||
316 | +отримати інформацію про questions[${question_id}].title | ||
317 | + відмітити на сторінці поле з тендера questions title jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)> | ||
318 | + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)> | ||
319 | + [return] ${return_value} | ||
320 | + | ||
321 | +отримати інформацію про questions[${question_id}].description | ||
322 | + відмітити на сторінці поле з тендера questions description jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)> | ||
323 | + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)> | ||
324 | + [return] ${return_value} | ||
325 | + | ||
326 | +отримати інформацію про questions[${question_id}].date | ||
327 | + відмітити на сторінці поле з тендера question date jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)> | ||
328 | + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)> | ||
329 | + [return] ${return_value} | ||
330 | + | ||
331 | +отримати інформацію про questions[${question_id}].answer | ||
332 | + відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last> | ||
333 | + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last> | ||
334 | + [return] ${return_value} | ||
335 | + | ||
336 | +Подати цінову пропозицію | ||
337 | + [Arguments] @{ARGUMENTS} | ||
338 | + [Documentation] | ||
339 | + ... ${ARGUMENTS[0]} == username | ||
340 | + ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID} | ||
341 | + ... ${ARGUMENTS[2]} == test_bid_data | ||
342 | + | ||
343 | + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount | ||
344 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
345 | + Wait Until Page Contains Інформація про процедуру закупівлі 100 | ||
346 | + Wait Until Page Contains Element id=amount 10 | ||
347 | + Input text id=amount ${bid} | ||
348 | + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції'] | ||
349 | + | ||
350 | +Задати питання | ||
351 | + [Arguments] @{ARGUMENTS} | ||
352 | + [Documentation] | ||
353 | + ... ${ARGUMENTS[0]} = username | ||
354 | + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | ||
355 | + ... ${ARGUMENTS[2]} = question_data | ||
356 | + | ||
357 | + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
358 | + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
359 | + | ||
360 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
361 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | ||
362 | + | ||
363 | + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100 | ||
364 | + Click Element jquery=a[href^="#/addQuestion/"] | ||
365 | + Wait Until Page Contains Element id=title | ||
366 | + Input text id=title ${title} | ||
367 | + Input text id=description ${description} | ||
368 | + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | ||
369 | + | ||
370 | +Відповісти на питання | ||
371 | + [Arguments] @{ARGUMENTS} | ||
372 | + [Documentation] | ||
373 | + ... ${ARGUMENTS[0]} = username | ||
374 | + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | ||
375 | + ... ${ARGUMENTS[2]} = 0 | ||
376 | + ... ${ARGUMENTS[3]} = answer_data | ||
377 | + | ||
378 | + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | ||
379 | + | ||
380 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
381 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | ||
382 | + | ||
383 | + Click Element xpath=//div[div/pre[1]]/div[1] | ||
384 | + Input text xpath=//div[textarea]/textarea ${answer} | ||
385 | + Click Element xpath=//div[textarea]/span/button[1] |
@@ -9,7 +9,7 @@ ${question_id} 0 | @@ -9,7 +9,7 @@ ${question_id} 0 | ||
9 | *** Keywords *** | 9 | *** Keywords *** |
10 | отримати internal id по UAid | 10 | отримати internal id по UAid |
11 | [Arguments] @{ARGUMENTS} | 11 | [Arguments] @{ARGUMENTS} |
12 | - [Documentation] | 12 | + [Documentation] |
13 | ... ${ARGUMENTS[0]} == username | 13 | ... ${ARGUMENTS[0]} == username |
14 | ... ${ARGUMENTS[1]} == tenderid | 14 | ... ${ARGUMENTS[1]} == tenderid |
15 | log many @{ARGUMENTS} | 15 | log many @{ARGUMENTS} |
@@ -42,10 +42,11 @@ ${question_id} 0 | @@ -42,10 +42,11 @@ ${question_id} 0 | ||
42 | Log object data ${TENDER_DATA} cteated_tender | 42 | Log object data ${TENDER_DATA} cteated_tender |
43 | ${access_token}= Get Variable Value ${TENDER_DATA.access.token} | 43 | ${access_token}= Get Variable Value ${TENDER_DATA.access.token} |
44 | Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} access_token ${access_token} | 44 | Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} access_token ${access_token} |
45 | - Log access_token: ${access_token} | ||
46 | - Log tender_id: ${TENDER_DATA.data.id} | ||
47 | - Set Global Variable ${TENDER_DATA} | ||
48 | - [return] ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id} | 45 | + Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} TENDER_DATA ${TENDER_DATA} |
46 | + Log ${access_token} | ||
47 | + Log ${TENDER_DATA.data.id} | ||
48 | + Log ${USERS.users['${ARGUMENTS[0]}'].TENDER_DATA} | ||
49 | + [return] ${TENDER_DATA.data.tenderID} | ||
49 | 50 | ||
50 | Створити багатопредметний тендер | 51 | Створити багатопредметний тендер |
51 | [Arguments] @{ARGUMENTS} | 52 | [Arguments] @{ARGUMENTS} |
@@ -66,19 +67,16 @@ ${question_id} 0 | @@ -66,19 +67,16 @@ ${question_id} 0 | ||
66 | [Documentation] | 67 | [Documentation] |
67 | ... ${ARGUMENTS[0]} == username | 68 | ... ${ARGUMENTS[0]} == username |
68 | ... ${ARGUMENTS[1]} == tenderId | 69 | ... ${ARGUMENTS[1]} == tenderId |
69 | - ... ${ARGUMENTS[2]} == id | ||
70 | ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | 70 | ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
71 | ${tender_data}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} | 71 | ${tender_data}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} |
72 | Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} tender_data ${tender_data} | 72 | Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} tender_data ${tender_data} |
73 | [return] ${tender_data} | 73 | [return] ${tender_data} |
74 | 74 | ||
75 | - | ||
76 | Обновити сторінку з тендером | 75 | Обновити сторінку з тендером |
77 | [Arguments] @{ARGUMENTS} | 76 | [Arguments] @{ARGUMENTS} |
78 | [Documentation] | 77 | [Documentation] |
79 | ... ${ARGUMENTS[0]} == username | 78 | ... ${ARGUMENTS[0]} == username |
80 | ... ${ARGUMENTS[1]} == tenderId | 79 | ... ${ARGUMENTS[1]} == tenderId |
81 | - ... ${ARGUMENTS[2]} == id | ||
82 | openprocurement_client.Пошук тендера по ідентифікатору @{ARGUMENTS} | 80 | openprocurement_client.Пошук тендера по ідентифікатору @{ARGUMENTS} |
83 | 81 | ||
84 | отримати інформацію із тендера | 82 | отримати інформацію із тендера |
@@ -149,13 +147,13 @@ ${question_id} 0 | @@ -149,13 +147,13 @@ ${question_id} 0 | ||
149 | Set_To_Object ${TENDER_DATA.data} items ${items} | 147 | Set_To_Object ${TENDER_DATA.data} items ${items} |
150 | ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token} | 148 | ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token} |
151 | ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA} | 149 | ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA} |
152 | - | 150 | + |
153 | 151 | ||
154 | Задати питання | 152 | Задати питання |
155 | [Documentation] | 153 | [Documentation] |
156 | ... ${ARGUMENTS[0]} == username | 154 | ... ${ARGUMENTS[0]} == username |
157 | ... ${ARGUMENTS[1]} == tender_uid | 155 | ... ${ARGUMENTS[1]} == tender_uid |
158 | - ... ${ARGUMENTS[2]} == bid | 156 | + ... ${ARGUMENTS[2]} == question |
159 | [Arguments] @{ARGUMENTS} | 157 | [Arguments] @{ARGUMENTS} |
160 | log many @{ARGUMENTS} | 158 | log many @{ARGUMENTS} |
161 | ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | 159 | ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
@@ -163,7 +161,7 @@ ${question_id} 0 | @@ -163,7 +161,7 @@ ${question_id} 0 | ||
163 | log ${USERS.users['${ARGUMENTS[0]}']} | 161 | log ${USERS.users['${ARGUMENTS[0]}']} |
164 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]} | 162 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]} |
165 | [return] ${biddingresponce} | 163 | [return] ${biddingresponce} |
166 | - | 164 | + |
167 | Відповісти на питання | 165 | Відповісти на питання |
168 | [Documentation] | 166 | [Documentation] |
169 | ... ${ARGUMENTS[0]} == username | 167 | ... ${ARGUMENTS[0]} == username |
@@ -192,7 +190,7 @@ ${question_id} 0 | @@ -192,7 +190,7 @@ ${question_id} 0 | ||
192 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} | 190 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} |
193 | ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints | 191 | ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints |
194 | Log object data ${complaint} complaint | 192 | Log object data ${complaint} complaint |
195 | - | 193 | + |
196 | порівняти скаргу | 194 | порівняти скаргу |
197 | [Documentation] | 195 | [Documentation] |
198 | ... ${ARGUMENTS[0]} == username | 196 | ... ${ARGUMENTS[0]} == username |
@@ -209,7 +207,7 @@ ${question_id} 0 | @@ -209,7 +207,7 @@ ${question_id} 0 | ||
209 | #:FOR ${element} IN ${ARGUMENTS[2].data} | 207 | #:FOR ${element} IN ${ARGUMENTS[2].data} |
210 | #\ log ${element} | 208 | #\ log ${element} |
211 | #\ Dictionary Should Contain Value ${complaint} ${element} | 209 | #\ Dictionary Should Contain Value ${complaint} ${element} |
212 | - | 210 | + |
213 | Обробити скаргу | 211 | Обробити скаргу |
214 | [Documentation] | 212 | [Documentation] |
215 | ... ${ARGUMENTS[0]} == username | 213 | ... ${ARGUMENTS[0]} == username |
@@ -238,7 +236,7 @@ ${question_id} 0 | @@ -238,7 +236,7 @@ ${question_id} 0 | ||
238 | log ${tender}отримати | 236 | log ${tender}отримати |
239 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]} | 237 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]} |
240 | [return] ${biddingresponce} | 238 | [return] ${biddingresponce} |
241 | - | 239 | + |
242 | Змінити цінову пропозицію | 240 | Змінити цінову пропозицію |
243 | [Documentation] | 241 | [Documentation] |
244 | ... ${ARGUMENTS[0]} == username | 242 | ... ${ARGUMENTS[0]} == username |
@@ -264,7 +262,7 @@ ${question_id} 0 | @@ -264,7 +262,7 @@ ${question_id} 0 | ||
264 | ${changed_bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_bid ${tender} ${ARGUMENTS[2]} | 262 | ${changed_bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_bid ${tender} ${ARGUMENTS[2]} |
265 | Log ${changed_bid} | 263 | Log ${changed_bid} |
266 | [return] ${changed_bid} | 264 | [return] ${changed_bid} |
267 | - | 265 | + |
268 | Прийняти цінову пропозицію | 266 | Прийняти цінову пропозицію |
269 | [Documentation] | 267 | [Documentation] |
270 | ... ${ARGUMENTS[0]} == username | 268 | ... ${ARGUMENTS[0]} == username |
@@ -281,42 +279,49 @@ ${question_id} 0 | @@ -281,42 +279,49 @@ ${question_id} 0 | ||
281 | Завантажити документ в ставку | 279 | Завантажити документ в ставку |
282 | [Documentation] | 280 | [Documentation] |
283 | ... ${ARGUMENTS[0]} == username | 281 | ... ${ARGUMENTS[0]} == username |
284 | - ... ${ARGUMENTS[1]} == token | ||
285 | - ... ${ARGUMENTS[2]} == bid_id | 282 | + ... ${ARGUMENTS[1]} == path |
283 | + ... ${ARGUMENTS[2]} == tenderid | ||
286 | [Arguments] @{ARGUMENTS} | 284 | [Arguments] @{ARGUMENTS} |
287 | log ${ARGUMENTS[0]} | 285 | log ${ARGUMENTS[0]} |
288 | log ${ARGUMENTS[1]} | 286 | log ${ARGUMENTS[1]} |
289 | - ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id} | ||
290 | - ${tender}= set_access_key ${tender} ${ARGUMENTS[1]} | ||
291 | - ${filename}= Set Variable file.txt | ||
292 | - Set_To_Object ${TENDER_DATA.data} documents.title ${filename} | ||
293 | - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${filename} ${tender} ${ARGUMENTS[2]} | ||
294 | - Log object data ${reply} reply | ||
295 | - [return] ${reply} | ||
296 | - | 287 | + log ${ARGUMENTS[2]} |
288 | + ${bid_id}= Get Variable Value ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].data.id} | ||
289 | + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]} | ||
290 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} | ||
291 | + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token} | ||
292 | + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${ARGUMENTS[1]} ${tender} ${bid_id} | ||
293 | + ${uploaded_file} = Create Dictionary filepath ${ARGUMENTS[1]} upload_responce ${responce} | ||
294 | + log ${responce} | ||
295 | + Log object data ${uploaded_file} | ||
296 | + [return] ${uploaded_file} | ||
297 | + | ||
297 | Змінити документ в ставці | 298 | Змінити документ в ставці |
298 | [Documentation] | 299 | [Documentation] |
299 | ... ${ARGUMENTS[0]} == username | 300 | ... ${ARGUMENTS[0]} == username |
300 | - ... ${ARGUMENTS[1]} == token | ||
301 | - ... ${ARGUMENTS[2]} == bid_id | ||
302 | - ... ${ARGUMENTS[3]} == file_id | 301 | + ... ${ARGUMENTS[1]} == path |
302 | + ... ${ARGUMENTS[2]} == bidid | ||
303 | + ... ${ARGUMENTS[3]} == docid | ||
303 | [Arguments] @{ARGUMENTS} | 304 | [Arguments] @{ARGUMENTS} |
304 | log ${ARGUMENTS[0]} | 305 | log ${ARGUMENTS[0]} |
305 | log ${ARGUMENTS[1]} | 306 | log ${ARGUMENTS[1]} |
306 | log ${ARGUMENTS[2]} | 307 | log ${ARGUMENTS[2]} |
307 | - log ${ARGUMENTS[3]} | ||
308 | - ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id} | ||
309 | - ${tender}= set_access_key ${tender} ${ARGUMENTS[1]} | ||
310 | - ${filename}= Set Variable newfile.txt | ||
311 | - Set_To_Object ${TENDER_DATA.data} documents.title ${filename} | ||
312 | - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${filename} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | ||
313 | - Log object data ${reply} replyотримати | 308 | + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${TENDER['TENDER_UAID']} |
309 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} | ||
310 | + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token} | ||
311 | + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${ARGUMENTS[1]} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | ||
312 | + ${uploaded_file} = Create Dictionary filepath ${ARGUMENTS[1]} upload_responce ${responce} | ||
313 | + log ${responce} | ||
314 | + Log object data ${uploaded_file} | ||
315 | + [return] ${uploaded_file} | ||
316 | + | ||
317 | + | ||
318 | + | ||
314 | 319 | ||
315 | -Завантажити документ | 320 | +Завантажити документ |
316 | [Documentation] | 321 | [Documentation] |
317 | ... ${ARGUMENTS[0]} == username | 322 | ... ${ARGUMENTS[0]} == username |
318 | - ... ${ARGUMENTS[1]} == filename | ||
319 | - ... ${ARGUMENTS[2]} == tenderID | 323 | + ... ${ARGUMENTS[1]} == filepath |
324 | + ... ${ARGUMENTS[2]} == tenderUAID | ||
320 | [Arguments] @{ARGUMENTS} | 325 | [Arguments] @{ARGUMENTS} |
321 | log ${ARGUMENTS[0]} | 326 | log ${ARGUMENTS[0]} |
322 | log ${ARGUMENTS[1]} | 327 | log ${ARGUMENTS[1]} |
@@ -324,7 +329,36 @@ ${question_id} 0 | @@ -324,7 +329,36 @@ ${question_id} 0 | ||
324 | ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]} | 329 | ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]} |
325 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} | 330 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} |
326 | ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} | 331 | ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} |
327 | - Set_To_Object ${TENDER_DATA.data} documents.title ${filename} | ||
328 | - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_tender_document ${filename} ${tender} | 332 | + ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_document ${tender} ${ARGUMENTS[1]} |
329 | Log object data ${reply} reply | 333 | Log object data ${reply} reply |
330 | - | ||
334 | + [return] ${reply} | ||
335 | + | ||
336 | +Отримати пропозиції | ||
337 | + [Documentation] | ||
338 | + ... ${ARGUMENTS[0]} == username | ||
339 | + ... ${ARGUMENTS[1]} == tender_uid | ||
340 | + ... ${ARGUMENTS[2]} == bid_id | ||
341 | + ... ${ARGUMENTS[3]} == token | ||
342 | + [Arguments] @{ARGUMENTS} | ||
343 | + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
344 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} | ||
345 | + ${bids}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_bid ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | ||
346 | + Log ${bids} | ||
347 | + [return] ${bids} | ||
348 | + | ||
349 | +отримати документ | ||
350 | + [Documentation] | ||
351 | + ... ${ARGUMENTS[0]} == username | ||
352 | + ... ${ARGUMENTS[1]} == tenderUaID | ||
353 | + ... ${ARGUMENTS[2]} == url | ||
354 | + [Arguments] @{ARGUMENTS} | ||
355 | + log ${ARGUMENTS[0]} | ||
356 | + log ${ARGUMENTS[1]} | ||
357 | + log ${ARGUMENTS[2]} | ||
358 | + ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
359 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} | ||
360 | + ${token}= Get Variable Value ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token} | ||
361 | + ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | ||
362 | + log ${contents} | ||
363 | + log ${filename} | ||
364 | + [return] ${contents} ${filename} |
@@ -3,14 +3,152 @@ Library Selenium2Screenshots | @@ -3,14 +3,152 @@ Library Selenium2Screenshots | ||
3 | Library String | 3 | Library String |
4 | Library DateTime | 4 | Library DateTime |
5 | 5 | ||
6 | +*** Variables *** | ||
7 | +${file_path} local_path_to_file("TestDocument.docx") | ||
8 | +# ${file_path} /home/vbilos/openprocurement.robottests.buildout/Document.docx | ||
9 | +${mail} test@mail.com | ||
10 | +${telephone} +380976535447 | ||
11 | + | ||
6 | *** Keywords *** | 12 | *** Keywords *** |
7 | Підготувати клієнт для користувача | 13 | Підготувати клієнт для користувача |
8 | - [Arguments] ${username} | 14 | + [Arguments] @{ARGUMENTS} |
9 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо | 15 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо |
10 | - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${username} | ||
11 | - Set Window Position @{USERS.users['${username}'].position} | ||
12 | - Set Window Size @{USERS.users['${username}'].size} | ||
13 | - Log Variables | 16 | + ... ${ARGUMENTS[0]} == username |
17 | + Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]} | ||
18 | + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | ||
19 | + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | ||
20 | + | ||
21 | +# login | ||
22 | + Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:j_idt54 10 | ||
23 | + Click Element id=mForm:j_idt54 | ||
24 | + Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:email 10 | ||
25 | + Input text id=mForm:email ${USERS.users['${username}'].login} | ||
26 | + Input text id=mForm:pwd ${USERS.users['${username}'].password} | ||
27 | + Click Button id=mForm:login | ||
28 | + | ||
29 | +Створити тендер | ||
30 | + [Arguments] @{ARGUMENTS} | ||
31 | + [Documentation] | ||
32 | + ... ${ARGUMENTS[0]} == username | ||
33 | + ... ${ARGUMENTS[1]} == tender_data | ||
34 | + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]} | ||
35 | + ${items}= Get From Dictionary ${tender_data.data} items | ||
36 | + ${title}= Get From Dictionary ${tender_data.data} title | ||
37 | + ${description}= Get From Dictionary ${tender_data.data} description | ||
38 | + ${budget}= Get From Dictionary ${tender_data.data.value} amount | ||
39 | + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount | ||
40 | + ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName | ||
41 | + ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate | ||
42 | + ${delivery_end_date}= convert_date_to_prom_format ${delivery_end_date} | ||
43 | + ${cpv}= Get From Dictionary ${items[0].classification} description_ua | ||
44 | + ${cpv_id}= Get From Dictionary ${items[0].classification} id | ||
45 | + ${cpv_id_1}= Get Substring ${cpv_id} 0 3 | ||
46 | + ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | ||
47 | + ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | ||
48 | + ${code}= Get From Dictionary ${items[0].unit} code | ||
49 | + ${quantity}= Get From Dictionary ${items[0]} quantity | ||
50 | + ${name}= Get From Dictionary ${tender_data.data.procuringEntity.contactPoint} name | ||
51 | + | ||
52 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
53 | + Wait Until Page Contains Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля'] 10 | ||
54 | + Click Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля'] | ||
55 | + Wait Until Page Contains Element id=mForm:data:name | ||
56 | + Input text id=mForm:data:name ${title} | ||
57 | + Input text id=mForm:data:desc ${description} | ||
58 | + Input text id=mForm:data:budget ${budget} | ||
59 | + Input text id=mForm:data:step ${step_rate} | ||
60 | + Click Element xpath=//*[@id='mForm:data:vat']/tbody/tr/td[1]//span | ||
61 | + Input text id=mForm:data:dEPr_input ${delivery_end_date} | ||
62 | + Click Element id=mForm:data:cKind_label | ||
63 | + Click Element xpath=//div[@id='mForm:data:cKind_panel']//li[3] | ||
64 | + Input text id=mForm:data:cCpvGr_input ${cpv_id_1} | ||
65 | + Wait Until Page Contains Element xpath=.//*[@id='mForm:data:cCpvGr_panel']/table/tbody/tr/td[2]/span 10 | ||
66 | + Click Element xpath=.//*[@id='mForm:data:cCpvGr_panel']/table/tbody/tr/td[2]/span | ||
67 | + Input text id=mForm:data:subject0 ${dkpp_desc} | ||
68 | + Input text id=mForm:data:cCpv0_input ${cpv_id} | ||
69 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv0_panel']//td[1]/span 10 | ||
70 | + Click Element xpath=//div[@id='mForm:data:cCpv0_panel']//td[1]/span | ||
71 | + Input text id=mForm:data:unit0_input ${code} | ||
72 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit0_panel']//tr/td[1] 10 | ||
73 | + Click Element xpath=//div[@id='mForm:data:unit0_panel']//tr/td[1] | ||
74 | + Input text id=mForm:data:amount0 ${quantity} | ||
75 | + Input text id=mForm:data:cDkpp0_input ${dkpp_id} | ||
76 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp0_panel']//tr[1]/td[2]/span 10 | ||
77 | + Click Element xpath=//div[@id='mForm:data:cDkpp0_panel']//tr[1]/td[2]/span | ||
78 | + Input text id=mForm:data:rName ${name} | ||
79 | + Input text id=mForm:data:rPhone ${telephone} | ||
80 | + Input text id=mForm:data:rMail ${mail} | ||
81 | + Choose File id=mForm:data:docFile_input ${file_path} | ||
82 | + Run Keyword if '${mode}' == 'multi' Додати предмет items | ||
83 | + Click Element id=mForm:bSave | ||
84 | + Sleep 5 | ||
85 | + ${tender_UAid}= Get Text id=mForm:nBid | ||
86 | + ${tender_UAid}= Get Substring ${tender_UAid} 19 | ||
87 | + ${Ids} Convert To String ${tender_UAid} | ||
88 | + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid} | ||
89 | + [return] ${Ids} | ||
90 | + | ||
91 | +Set Multi Ids | ||
92 | + [Arguments] @{ARGUMENTS} | ||
93 | + [Documentation] | ||
94 | + ... ${ARGUMENTS[0]} == ${tender_UAid} | ||
95 | + ${id}= Get Text id=mForm:nBid | ||
96 | + ${Ids} Create List ${tender_UAid} ${id} | ||
97 | + | ||
98 | +Додати предмет | ||
99 | + [Arguments] @{ARGUMENTS} | ||
100 | + [Documentation] | ||
101 | + ... ${ARGUMENTS[0]} == items | ||
102 | + ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description | ||
103 | + ${dkpp_id11}= Get From Dictionary ${items[1].additionalClassifications[0]} id | ||
104 | + ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description | ||
105 | + ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id | ||
106 | + ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description | ||
107 | + ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id | ||
108 | + | ||
109 | + Wait Until Page Contains Element xpath=//button[@class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"] 10 | ||
110 | + Wait Until Page Contains Element xpath=//button[contains(@class, 'ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only')] 10 | ||
111 | + Wait Until Page Contains Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"] 10 | ||
112 | + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"] | ||
113 | + Wait Until Page Contains Element id=mForm:data:subject1 10 | ||
114 | + Input text id=mForm:data:subject1 ${dkpp_desc1} | ||
115 | + Input text id=mForm:data:cCpv1_input ${cpv_id} | ||
116 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv1_panel']/table/tbody/tr/td[1]/span 10 | ||
117 | + Click Element xpath=//div[@id='mForm:data:cCpv1_panel']/table/tbody/tr/td[1]/span | ||
118 | + Input text id=mForm:data:unit1_input ${code} | ||
119 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit1_panel']/table/tbody/tr/td[1] 10 | ||
120 | + Click Element xpath=//div[@id='mForm:data:unit1_panel']/table/tbody/tr/td[1] | ||
121 | + Input text id=mForm:data:amount1 ${quantity} | ||
122 | + Input text id=mForm:data:cDkpp1_input ${dkpp_id11} | ||
123 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp1_panel']/table/tbody/tr/td[1]/span 10 | ||
124 | + Click Element xpath=//div[@id='mForm:data:cDkpp1_panel']/table/tbody/tr/td[1]/span | ||
125 | + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"] | ||
126 | + Wait Until Page Contains Element id=mForm:data:subject2 10 | ||
127 | + Input text id=mForm:data:subject2 ${dkpp_desc2} | ||
128 | + Input text id=mForm:data:cCpv2_input ${cpv_id} | ||
129 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv2_panel']/table/tbody/tr/td[1]/span 10 | ||
130 | + Click Element xpath=//div[@id='mForm:data:cCpv2_panel']/table/tbody/tr/td[1]/span | ||
131 | + Input text id=mForm:data:unit2_input ${code} | ||
132 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit2_panel']/table/tbody/tr/td[1] 10 | ||
133 | + Click Element xpath=//div[@id='mForm:data:unit2_panel']/table/tbody/tr/td[1] | ||
134 | + Input text id=mForm:data:amount2 ${quantity} | ||
135 | + Input text id=mForm:data:cDkpp2_input ${dkpp_id2} | ||
136 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp2_panel']/table/tbody/tr/td[1]/span 10 | ||
137 | + Click Element xpath=//div[@id='mForm:data:cDkpp2_panel']/table/tbody/tr/td[1]/span | ||
138 | + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"] | ||
139 | + Wait Until Page Contains Element id=mForm:data:subject3 10 | ||
140 | + Input text id=mForm:data:subject3 ${dkpp_desc3} | ||
141 | + Input text id=mForm:data:cCpv3_input ${cpv_id} | ||
142 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv3_panel']/table/tbody/tr/td[1]/span 10 | ||
143 | + Click Element xpath=//div[@id='mForm:data:cCpv3_panel']/table/tbody/tr/td[1]/span | ||
144 | + Input text id=mForm:data:unit3_input ${code} | ||
145 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit3_panel']/table/tbody/tr/td[1] 10 | ||
146 | + Click Element xpath=//div[@id='mForm:data:unit3_panel']/table/tbody/tr/td[1] | ||
147 | + Input text id=mForm:data:amount3 ${quantity} | ||
148 | + Input text id=mForm:data:cDkpp3_input ${dkpp_id3} | ||
149 | + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span 10 | ||
150 | + Click Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span | ||
151 | + | ||
14 | 152 | ||
15 | Пошук тендера по ідентифікатору | 153 | Пошук тендера по ідентифікатору |
16 | [Arguments] @{ARGUMENTS} | 154 | [Arguments] @{ARGUMENTS} |
@@ -29,3 +29,15 @@ Netcast: | @@ -29,3 +29,15 @@ Netcast: | ||
29 | password: uStudio | 29 | password: uStudio |
30 | timout_on_wait: 15 | 30 | timout_on_wait: 15 |
31 | period_interval: 2 | 31 | period_interval: 2 |
32 | +Netcast: | ||
33 | + keywords_file: netcast | ||
34 | + url: "http://dz2.byustudio.in.ua" | ||
35 | + login: admin | ||
36 | + password: uStudio | ||
37 | + timout_on_wait: 15 | ||
38 | + period_interval: 2 | ||
39 | +Newtend: | ||
40 | + keywords_file: newtend | ||
41 | + url: http://openprocurement:test@dev23.newtend.com | ||
42 | + timout_on_wait: 15 | ||
43 | + period_interval: 2 |
@@ -27,7 +27,7 @@ users: | @@ -27,7 +27,7 @@ users: | ||
27 | login: st_org | 27 | login: st_org |
28 | password: 12345678 | 28 | password: 12345678 |
29 | browser: firefox | 29 | browser: firefox |
30 | - position: [0, 0] | 30 | + position: [700, 0] |
31 | size: [640, 450] | 31 | size: [640, 450] |
32 | E-tender_Provider2: | 32 | E-tender_Provider2: |
33 | broker: E-tender | 33 | broker: E-tender |
@@ -41,7 +41,7 @@ users: | @@ -41,7 +41,7 @@ users: | ||
41 | E-tender_Viewer: | 41 | E-tender_Viewer: |
42 | broker: E-tender | 42 | broker: E-tender |
43 | username: E-tendertest | 43 | username: E-tendertest |
44 | - browser: chrome | 44 | + browser: firefox |
45 | position: [0, 0] | 45 | position: [0, 0] |
46 | size: [640, 450] | 46 | size: [640, 450] |
47 | Prom_Owner: | 47 | Prom_Owner: |
@@ -74,6 +74,15 @@ users: | @@ -74,6 +74,15 @@ users: | ||
74 | browser: chrome | 74 | browser: chrome |
75 | position: [0, 450] | 75 | position: [0, 450] |
76 | size: [640, 450] | 76 | size: [640, 450] |
77 | + Newtend_Owner: | ||
78 | + broker: Newtend | ||
79 | + username: Newtendtest | ||
80 | + homepage: "http://dev23.newtend.com/openprocurement/#/home/page/1" | ||
81 | + login: openprocurement@mailinator.com | ||
82 | + password: 123123 | ||
83 | + browser: firefox | ||
84 | + position: [0, 0] | ||
85 | + size: [640, 450] | ||
77 | Netcast_Owner: | 86 | Netcast_Owner: |
78 | broker: Netcast | 87 | broker: Netcast |
79 | username: Netcasttest | 88 | username: Netcasttest |
@@ -81,7 +90,7 @@ users: | @@ -81,7 +90,7 @@ users: | ||
81 | login: ovramet.s@gmail.com | 90 | login: ovramet.s@gmail.com |
82 | password: Password1 | 91 | password: Password1 |
83 | browser: firefox | 92 | browser: firefox |
84 | - position: [0, 1080] | 93 | + position: [0, 0] |
85 | size: [1920, 1080] | 94 | size: [1920, 1080] |
86 | Netcast_Provider1: | 95 | Netcast_Provider1: |
87 | broker: Netcast | 96 | broker: Netcast |
@@ -90,5 +99,29 @@ users: | @@ -90,5 +99,29 @@ users: | ||
90 | login: halyna.khimka@gmail.com | 99 | login: halyna.khimka@gmail.com |
91 | password: JHO5VUp5n | 100 | password: JHO5VUp5n |
92 | browser: firefox | 101 | browser: firefox |
93 | - position: [0, 1080] | ||
94 | - size: [1920, 1080] | ||
102 | + position: [0, 450] | ||
103 | + size: [1920, 1080] | ||
104 | + Publicbid_Owner: | ||
105 | + broker: Publicbid | ||
106 | + username: Publicbid | ||
107 | + homepage: "https://public-bid.com.ua/test/" | ||
108 | + login: yaroslav1boyko@gmail.com | ||
109 | + password: Password1 | ||
110 | + browser: firefox | ||
111 | + position: [0, 0] | ||
112 | + size: [740, 550] | ||
113 | + Newtend_Provider2: | ||
114 | + broker: Newtend | ||
115 | + username: Newtendtest | ||
116 | + homepage: "http://dev23.newtend.com/openprocurement/tenders" | ||
117 | + login: openprocboss@mailinator.com | ||
118 | + password: 123123 | ||
119 | + browser: firefox | ||
120 | + position: [700, 0] | ||
121 | + size: [640, 450] | ||
122 | + Newtend_Viewer: | ||
123 | + broker: Newtend | ||
124 | + username: Newtendtest | ||
125 | + browser: firefox | ||
126 | + position: [0, 0] | ||
127 | + size: [640, 450] |
@@ -6,6 +6,14 @@ from faker import Factory | @@ -6,6 +6,14 @@ from faker import Factory | ||
6 | fake = Factory.create('uk_UA') | 6 | fake = Factory.create('uk_UA') |
7 | fake_ru = Factory.create('ru') | 7 | fake_ru = Factory.create('ru') |
8 | fake_en = Factory.create() | 8 | fake_en = Factory.create() |
9 | +from tempfile import NamedTemporaryFile | ||
10 | + | ||
11 | +def create_fake_doc(): | ||
12 | + content = fake.text() | ||
13 | + tf = NamedTemporaryFile(delete=False) | ||
14 | + tf.write(content) | ||
15 | + tf.close() | ||
16 | + return tf.name | ||
9 | 17 | ||
10 | def test_tender_data(period_interval=2): | 18 | def test_tender_data(period_interval=2): |
11 | now = datetime.now() | 19 | now = datetime.now() |
@@ -83,8 +91,8 @@ def test_tender_data(period_interval=2): | @@ -83,8 +91,8 @@ def test_tender_data(period_interval=2): | ||
83 | } | 91 | } |
84 | ], | 92 | ], |
85 | "enquiryPeriod": { | 93 | "enquiryPeriod": { |
86 | - "startDate": (now + timedelta(minutes=2)).isoformat(), | ||
87 | - "endDate": (now + timedelta(minutes=3)).isoformat() | 94 | + "startDate": (now).isoformat(), |
95 | + "endDate": (now + timedelta(minutes=1)).isoformat() | ||
88 | }, | 96 | }, |
89 | "tenderPeriod": { | 97 | "tenderPeriod": { |
90 | "startDate": (now + timedelta(minutes=2)).isoformat(), | 98 | "startDate": (now + timedelta(minutes=2)).isoformat(), |
@@ -134,7 +142,7 @@ def prom_test_tender_data(): | @@ -134,7 +142,7 @@ def prom_test_tender_data(): | ||
134 | { | 142 | { |
135 | "description": fake.catch_phrase(), | 143 | "description": fake.catch_phrase(), |
136 | "deliveryDate": { | 144 | "deliveryDate": { |
137 | - "startDate": (now + timedelta(days=4)).isoformat(), | 145 | + "startDate": (now + timedelta(days=4)).isoformat(), |
138 | "endDate": (now + timedelta(days=5)).isoformat() | 146 | "endDate": (now + timedelta(days=5)).isoformat() |
139 | }, | 147 | }, |
140 | "deliveryLocation": { | 148 | "deliveryLocation": { |
@@ -151,7 +159,7 @@ def prom_test_tender_data(): | @@ -151,7 +159,7 @@ def prom_test_tender_data(): | ||
151 | "classification": { | 159 | "classification": { |
152 | "scheme": u"CPV", | 160 | "scheme": u"CPV", |
153 | "id": u"44617100-9", | 161 | "id": u"44617100-9", |
154 | - "description": u"Cartons" | 162 | + "description": u"Cartons", |
155 | }, | 163 | }, |
156 | "additionalClassifications": [ | 164 | "additionalClassifications": [ |
157 | { | 165 | { |
@@ -180,40 +188,40 @@ def prom_test_tender_data(): | @@ -180,40 +188,40 @@ def prom_test_tender_data(): | ||
180 | def test_tender_data_multiple_lots(period_interval=2): | 188 | def test_tender_data_multiple_lots(period_interval=2): |
181 | now = datetime.now() | 189 | now = datetime.now() |
182 | return { | 190 | return { |
183 | - "title": fake.catch_phrase(), | ||
184 | - "mode": "test", | ||
185 | - "submissionMethodDetails": "quick", | ||
186 | - "description": u"Тестовий тендер", | ||
187 | - "description_en": "Test tender", | ||
188 | - "description_ru": "Тестовый тендер", | ||
189 | - "procuringEntity": { | ||
190 | - "name": fake.company(), | ||
191 | - "name_ru": fake_ru.company(), | ||
192 | - "name_en": fake_en.company(), | ||
193 | - "identifier": { | ||
194 | - "scheme": u"UA-EDR", | ||
195 | - "id": u"0000{}".format(fake.pyint()), | ||
196 | - "uri": fake.image_url(width=None, height=None) | ||
197 | - }, | ||
198 | - "address": { | ||
199 | - "countryName": u"Україна", | ||
200 | - "postalCode": fake.postalcode(), | ||
201 | - "region": u"м. Київ", | ||
202 | - "locality": u"м. Київ", | ||
203 | - "streetAddress": fake.street_address() | ||
204 | - }, | ||
205 | - "contactPoint": { | ||
206 | - "name": fake.name(), | ||
207 | - "telephone": fake.phone_number() | ||
208 | - } | 191 | + "title": fake.catch_phrase(), |
192 | + "mode": "test", | ||
193 | + "submissionMethodDetails": "quick", | ||
194 | + "description": u"Тестовий тендер", | ||
195 | + "description_en": "Test tender", | ||
196 | + "description_ru": "Тестовый тендер", | ||
197 | + "procuringEntity": { | ||
198 | + "name": fake.company(), | ||
199 | + "name_ru": fake_ru.company(), | ||
200 | + "name_en": fake_en.company(), | ||
201 | + "identifier": { | ||
202 | + "scheme": u"UA-EDR", | ||
203 | + "id": u"0000{}".format(fake.pyint()), | ||
204 | + "uri": fake.image_url(width=None, height=None) | ||
205 | + }, | ||
206 | + "address": { | ||
207 | + "countryName": u"Україна", | ||
208 | + "postalCode": fake.postalcode(), | ||
209 | + "region": u"м. Київ", | ||
210 | + "locality": u"м. Київ", | ||
211 | + "streetAddress": fake.street_address() | ||
212 | + }, | ||
213 | + "contactPoint": { | ||
214 | + "name": fake.name(), | ||
215 | + "telephone": fake.phone_number() | ||
216 | + } | ||
209 | }, | 217 | }, |
210 | "value": { | 218 | "value": { |
211 | - "amount": 50000, | ||
212 | - "currency": u"UAH" | ||
213 | - }, | ||
214 | - "minimalStep": { | ||
215 | - "amount": 100, | ||
216 | - "currency": u"UAH" | 219 | + "amount": 50000, |
220 | + "currency": u"UAH" | ||
221 | + }, | ||
222 | + "minimalStep": { | ||
223 | + "amount": 100, | ||
224 | + "currency": u"UAH" | ||
217 | }, | 225 | }, |
218 | "items": [ | 226 | "items": [ |
219 | { | 227 | { |
@@ -270,7 +278,8 @@ def test_tender_data_multiple_lots(period_interval=2): | @@ -270,7 +278,8 @@ def test_tender_data_multiple_lots(period_interval=2): | ||
270 | "classification": { | 278 | "classification": { |
271 | "scheme": u"CPV", | 279 | "scheme": u"CPV", |
272 | "id": u"44617100-9", | 280 | "id": u"44617100-9", |
273 | - "description": u"Cartons" | 281 | + "description": u"Cartons", |
282 | + "description_ua": u"Картонки" | ||
274 | }, | 283 | }, |
275 | "additionalClassifications": [ | 284 | "additionalClassifications": [ |
276 | { | 285 | { |
@@ -304,7 +313,8 @@ def test_tender_data_multiple_lots(period_interval=2): | @@ -304,7 +313,8 @@ def test_tender_data_multiple_lots(period_interval=2): | ||
304 | "classification": { | 313 | "classification": { |
305 | "scheme": u"CPV", | 314 | "scheme": u"CPV", |
306 | "id": u"44617100-9", | 315 | "id": u"44617100-9", |
307 | - "description": u"Cartons" | 316 | + "description": u"Cartons", |
317 | + "description_ua": u"Картонки" | ||
308 | }, | 318 | }, |
309 | "additionalClassifications": [ | 319 | "additionalClassifications": [ |
310 | { | 320 | { |
@@ -338,7 +348,8 @@ def test_tender_data_multiple_lots(period_interval=2): | @@ -338,7 +348,8 @@ def test_tender_data_multiple_lots(period_interval=2): | ||
338 | "classification": { | 348 | "classification": { |
339 | "scheme": u"CPV", | 349 | "scheme": u"CPV", |
340 | "id": u"44617100-9", | 350 | "id": u"44617100-9", |
341 | - "description": u"Cartons" | 351 | + "description": u"Cartons", |
352 | + "description_ua": u"Картонки" | ||
342 | }, | 353 | }, |
343 | "additionalClassifications": [ | 354 | "additionalClassifications": [ |
344 | { | 355 | { |
@@ -355,12 +366,12 @@ def test_tender_data_multiple_lots(period_interval=2): | @@ -355,12 +366,12 @@ def test_tender_data_multiple_lots(period_interval=2): | ||
355 | } | 366 | } |
356 | ], | 367 | ], |
357 | "enquiryPeriod": { | 368 | "enquiryPeriod": { |
358 | - "startDate": (now + timedelta(minutes=3)).isoformat(), | ||
359 | - "endDate": (now + timedelta(minutes=4)).isoformat() | 369 | + "startDate": (now).isoformat(), |
370 | + "endDate": (now + timedelta(minutes=1)).isoformat() | ||
360 | }, | 371 | }, |
361 | "tenderPeriod": { | 372 | "tenderPeriod": { |
362 | - "startDate": (now + timedelta(minutes=4)).isoformat(), | ||
363 | - "endDate": (now + timedelta(minutes=(5+period_interval))).isoformat() | 373 | + "startDate": (now + timedelta(minutes=2)).isoformat(), |
374 | + "endDate": (now + timedelta(minutes=(2+period_interval))).isoformat() | ||
364 | } | 375 | } |
365 | } | 376 | } |
366 | 377 | ||
@@ -462,7 +473,7 @@ def test_bid_data(): | @@ -462,7 +473,7 @@ def test_bid_data(): | ||
462 | } | 473 | } |
463 | } | 474 | } |
464 | }) | 475 | }) |
465 | - | 476 | + |
466 | def auction_bid(): | 477 | def auction_bid(): |
467 | return munchify({ | 478 | return munchify({ |
468 | "data": {"value": { | 479 | "data": {"value": { |
@@ -56,6 +56,9 @@ TestSuiteSetup | @@ -56,6 +56,9 @@ TestSuiteSetup | ||
56 | Set Global Variable ${REPLIES} | 56 | Set Global Variable ${REPLIES} |
57 | ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode} | 57 | ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode} |
58 | Set Global Variable ${INITIAL_TENDER_DATA} | 58 | Set Global Variable ${INITIAL_TENDER_DATA} |
59 | + ${TENDER}= Create Dictionary | ||
60 | + Set Global Variable ${TENDER} | ||
61 | + Log ${TENDER} | ||
59 | Log ${INITIAL_TENDER_DATA} | 62 | Log ${INITIAL_TENDER_DATA} |
60 | 63 | ||
61 | Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки | 64 | Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки |
@@ -71,7 +74,7 @@ TestSuiteSetup | @@ -71,7 +74,7 @@ TestSuiteSetup | ||
71 | ... ${ARGUMENTS[2]} == id | 74 | ... ${ARGUMENTS[2]} == id |
72 | 75 | ||
73 | ${now}= Get Current Date | 76 | ${now}= Get Current Date |
74 | - ${delta}= Subtract Date From Date ${now} ${LAST_MODIFICATION_DATE} | 77 | + ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']} |
75 | ${wait_timout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait} ${delta} | 78 | ${wait_timout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait} ${delta} |
76 | Run Keyword If ${wait_timout}>0 Sleep ${wait_timout} | 79 | Run Keyword If ${wait_timout}>0 Sleep ${wait_timout} |
77 | 80 | ||
@@ -83,23 +86,29 @@ TestSuiteSetup | @@ -83,23 +86,29 @@ TestSuiteSetup | ||
83 | Звірити поле | 86 | Звірити поле |
84 | [Arguments] ${username} ${field} ${subject} | 87 | [Arguments] ${username} ${field} ${subject} |
85 | ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field} | 88 | ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field} |
89 | + Should Not Be Equal ${field_response} ${None} | ||
86 | Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker} | 90 | Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker} |
87 | 91 | ||
88 | Звірити поле створеного тендера | 92 | Звірити поле створеного тендера |
89 | [Arguments] ${initial} ${tender_data} ${field} | 93 | [Arguments] ${initial} ${tender_data} ${field} |
90 | ${field_value}= Get_From_Object ${initial} ${field} | 94 | ${field_value}= Get_From_Object ${initial} ${field} |
91 | ${field_response}= Get_From_Object ${tender_data} ${field} | 95 | ${field_response}= Get_From_Object ${tender_data} ${field} |
96 | + Should Not Be Equal ${field_response} ${None} | ||
97 | + Should Not Be Equal ${field_value} ${None} | ||
92 | Should Be Equal ${field_value} ${field_response} | 98 | Should Be Equal ${field_value} ${field_response} |
93 | 99 | ||
94 | Звірити дату тендера | 100 | Звірити дату тендера |
95 | [Arguments] ${username} ${field} | 101 | [Arguments] ${username} ${field} |
96 | ${isodate}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field} | 102 | ${isodate}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field} |
103 | + Should Not Be Equal ${isodate} ${None} | ||
97 | Звірити дату ${username} ${field} ${isodate} | 104 | Звірити дату ${username} ${field} ${isodate} |
98 | 105 | ||
99 | Звірити дату | 106 | Звірити дату |
100 | [Arguments] ${username} ${field} ${subject} | 107 | [Arguments] ${username} ${field} ${subject} |
101 | ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field} | 108 | ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field} |
102 | ${returned}= compare_date ${subject} ${field_date} | 109 | ${returned}= compare_date ${subject} ${field_date} |
110 | + Should Not Be Equal ${field_date} ${None} | ||
111 | + Should Not Be Equal ${returned} ${None} | ||
103 | Should Be True '${returned}' == 'True' | 112 | Should Be True '${returned}' == 'True' |
104 | 113 | ||
105 | Звірити поля предметів закупівлі багатопредметного тендера | 114 | Звірити поля предметів закупівлі багатопредметного тендера |
1 | +#!/usr/bin/env python | ||
1 | # -*- coding: utf-8 - | 2 | # -*- coding: utf-8 - |
2 | import os | 3 | import os |
3 | from munch import munchify, Munch, fromYAML | 4 | from munch import munchify, Munch, fromYAML |
@@ -17,8 +18,9 @@ import time | @@ -17,8 +18,9 @@ import time | ||
17 | from .initial_data import ( | 18 | from .initial_data import ( |
18 | test_tender_data, test_question_data, test_question_answer_data, | 19 | test_tender_data, test_question_data, test_question_answer_data, |
19 | test_bid_data, test_award_data, test_complaint_data, test_complaint_reply_data, test_tender_data_multiple_lots, | 20 | test_bid_data, test_award_data, test_complaint_data, test_complaint_reply_data, test_tender_data_multiple_lots, |
20 | - auction_bid, prom_test_tender_data | 21 | + auction_bid, prom_test_tender_data, create_fake_doc |
21 | ) | 22 | ) |
23 | +import calendar | ||
22 | 24 | ||
23 | TIMEZONE = timezone('Europe/Kiev') | 25 | TIMEZONE = timezone('Europe/Kiev') |
24 | 26 | ||
@@ -161,4 +163,29 @@ def wait_to_date(date_stamp): | @@ -161,4 +163,29 @@ def wait_to_date(date_stamp): | ||
161 | wait_seconds += 2 | 163 | wait_seconds += 2 |
162 | if wait_seconds < 0: | 164 | if wait_seconds < 0: |
163 | return 0 | 165 | return 0 |
164 | - return wait_seconds | ||
166 | + return wait_seconds | ||
167 | + | ||
168 | +def newtend_date_picker_index(isodate): | ||
169 | + now = datetime.today() | ||
170 | + date_str = '01' + str(now.month) + str(now.year) | ||
171 | + first_day_of_month = datetime.strptime(date_str, "%d%m%Y") | ||
172 | + mod = first_day_of_month.isoweekday() - 2 | ||
173 | + iso_dt=parse_date(isodate) | ||
174 | + last_day_of_month = calendar.monthrange(now.year, now.month)[1] | ||
175 | + #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO")) | ||
176 | + if now.day>iso_dt.day: | ||
177 | + mod = calendar.monthrange(now.year, now.month)[1] + mod | ||
178 | + return mod + iso_dt.day | ||
179 | + | ||
180 | +def Add_time_for_GUI_FrontEnds(INITIAL_TENDER_DATA): | ||
181 | + now = datetime.now() | ||
182 | + INITIAL_TENDER_DATA.data.enquiryPeriod['startDate'] = (now + timedelta(minutes=2)).isoformat() | ||
183 | + INITIAL_TENDER_DATA.data.enquiryPeriod['endDate'] = (now + timedelta(minutes=3)).isoformat() | ||
184 | + INITIAL_TENDER_DATA.data.tenderPeriod['startDate'] = (now + timedelta(minutes=4)).isoformat() | ||
185 | + INITIAL_TENDER_DATA.data.tenderPeriod['endDate'] = (now + timedelta(minutes=5)).isoformat() | ||
186 | + return INITIAL_TENDER_DATA | ||
187 | + | ||
188 | +def local_path_to_file( file_name ): | ||
189 | + path = os.getcwd() | ||
190 | + path = path.split("brokers", 1)[0] + "documents/" + file_name | ||
191 | + return path |
@@ -26,36 +26,43 @@ ${question_id} 0 | @@ -26,36 +26,43 @@ ${question_id} 0 | ||
26 | *** Test Cases *** | 26 | *** Test Cases *** |
27 | Можливість оголосити однопредметний тендер | 27 | Можливість оголосити однопредметний тендер |
28 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 28 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
29 | - ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | ||
30 | - ${TENDER_ID}= Get From List ${ids} 0 | ||
31 | - Set Global Variable ${TENDER_ID} | 29 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), |
30 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | ||
32 | ${LAST_MODIFICATION_DATE}= Get Current Date | 31 | ${LAST_MODIFICATION_DATE}= Get Current Date |
33 | - Set Global Variable ${LAST_MODIFICATION_DATE} | 32 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} |
33 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
34 | + log ${TENDER} | ||
34 | 35 | ||
35 | Можливасть додати тендерну документацію | 36 | Можливасть додати тендерну документацію |
36 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | 37 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ |
37 | - ${filename}= Set Variable file.txt | 38 | + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі |
39 | + ${filepath}= create_fake_doc | ||
40 | + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']} | ||
41 | + ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply} | ||
42 | + log ${file_upload_process_data} | ||
43 | + Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data} | ||
44 | + Log ${USERS.users['${tender_owner}']} | ||
38 | 45 | ||
39 | - Викликати для учасника ${tender_owner} Завантажити документ ${filename} ${TENDER_ID} | ||
40 | 46 | ||
41 | Можливість подати скаргу на умови | 47 | Можливість подати скаргу на умови |
42 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | 48 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови |
43 | - Викликати для учасника ${provider} Подати скаргу ${TENDER_ID} ${COMPLAINTS[0]} | 49 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі |
50 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} | ||
44 | ${LAST_MODIFICATION_DATE}= Get Current Date | 51 | ${LAST_MODIFICATION_DATE}= Get Current Date |
45 | - Set Global Variable ${LAST_MODIFICATION_DATE} | 52 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} |
46 | 53 | ||
47 | Можливість побачити скаргу користувачем | 54 | Можливість побачити скаргу користувачем |
48 | [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | 55 | [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера |
49 | - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} | 56 | + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} |
50 | 57 | ||
51 | можливість побачити скаргу анонімом | 58 | можливість побачити скаргу анонімом |
52 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 59 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
53 | - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} | 60 | + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} |
54 | 61 | ||
55 | Пошук однопредметного тендера по ідентифікатору | 62 | Пошук однопредметного тендера по ідентифікатору |
56 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 63 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
57 | Дочекатись синхронізації з майданчиком ${viewer} | 64 | Дочекатись синхронізації з майданчиком ${viewer} |
58 | - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} | 65 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
59 | 66 | ||
60 | ###### | 67 | ###### |
61 | #Відображення основних даних оголошеного тендера: | 68 | #Відображення основних даних оголошеного тендера: |
@@ -77,7 +84,7 @@ ${question_id} 0 | @@ -77,7 +84,7 @@ ${question_id} 0 | ||
77 | Відображення tenderID оголошеного тендера | 84 | Відображення tenderID оголошеного тендера |
78 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 85 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
79 | ${field_response}= Викликати для учасника ${viewer} отримати інформацію із тендера tenderID | 86 | ${field_response}= Викликати для учасника ${viewer} отримати інформацію із тендера tenderID |
80 | - Should Be Equal ${TENDER_ID} ${field_response} Майданчик ${USERS.users['${viewer}'].broker} | 87 | + Should Be Equal ${TENDER['TENDER_UAID']} ${field_response} Майданчик ${USERS.users['${viewer}'].broker} |
81 | 88 | ||
82 | Відображення procuringEntity.name оголошеного тендера | 89 | Відображення procuringEntity.name оголошеного тендера |
83 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 90 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
@@ -103,26 +110,18 @@ ${question_id} 0 | @@ -103,26 +110,18 @@ ${question_id} 0 | ||
103 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 110 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
104 | Звірити поле тендера ${viewer} minimalStep.amount | 111 | Звірити поле тендера ${viewer} minimalStep.amount |
105 | 112 | ||
106 | -Відображення тендерної документації оголошеного тендера | ||
107 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
108 | - Звірити поле тендера ${viewer} documents.title | ||
109 | - #documents.format | ||
110 | - #documents.url | ||
111 | - #documents.datePublished | ||
112 | - #documents.dateModified | ||
113 | - #documents.id | ||
114 | - | ||
115 | Можливість редагувати однопредметний тендер | 113 | Можливість редагувати однопредметний тендер |
116 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 114 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
117 | - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER_ID} description description | 115 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description |
116 | + | ||
117 | +Можливість додати позицію закупівлі в тендер | ||
118 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
119 | + Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER['TENDER_UAID']} 3 | ||
120 | + | ||
121 | +Можливість видалити позиції закупівлі тендера | ||
122 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
123 | + Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER['TENDER_UAID']} 2 | ||
118 | 124 | ||
119 | -#Можливість додати позицію закупівлі в тендер | ||
120 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
121 | -# Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER_ID} 3 | ||
122 | -# | ||
123 | -#Можливість видалити позиції закупівлі тендера | ||
124 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
125 | -# Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER_ID} 2 | ||
126 | 125 | ||
127 | ####### | 126 | ####### |
128 | #Відображення однопредметного тендера | 127 | #Відображення однопредметного тендера |
@@ -178,15 +177,15 @@ ${question_id} 0 | @@ -178,15 +177,15 @@ ${question_id} 0 | ||
178 | 177 | ||
179 | Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера | 178 | Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера |
180 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера | 179 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера |
181 | - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.scheme | 180 | + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].scheme |
182 | 181 | ||
183 | Відображення ідентифікатора додаткової класифікації позицій закупівлі однопредметного тендера | 182 | Відображення ідентифікатора додаткової класифікації позицій закупівлі однопредметного тендера |
184 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера | 183 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера |
185 | - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.id | 184 | + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].id |
186 | 185 | ||
187 | Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера | 186 | Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера |
188 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера | 187 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера |
189 | - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.description | 188 | + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].description |
190 | 189 | ||
191 | Відображення назви одиниці позицій закупівлі однопредметного тендера | 190 | Відображення назви одиниці позицій закупівлі однопредметного тендера |
192 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера | 191 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера |
@@ -205,14 +204,14 @@ ${question_id} 0 | @@ -205,14 +204,14 @@ ${question_id} 0 | ||
205 | 204 | ||
206 | Задати питання | 205 | Задати питання |
207 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 206 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
208 | - Викликати для учасника ${provider} Задати питання ${TENDER_ID} ${QUESTIONS[${question_id}]} | 207 | + Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} |
209 | ${now}= Get Current Date | 208 | ${now}= Get Current Date |
210 | Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} | 209 | Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} |
211 | 210 | ||
212 | Відображення заголовоку анонімного питання без відповіді | 211 | Відображення заголовоку анонімного питання без відповіді |
213 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей | 212 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей |
214 | Дочекатись синхронізації з майданчиком ${viewer} | 213 | Дочекатись синхронізації з майданчиком ${viewer} |
215 | - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID} | 214 | + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']} |
216 | Звірити поле ${viewer} questions[${question_id}].title ${QUESTIONS[${question_id}].data.title} | 215 | Звірити поле ${viewer} questions[${question_id}].title ${QUESTIONS[${question_id}].data.title} |
217 | 216 | ||
218 | Відображення опис анонімного питання без відповіді | 217 | Відображення опис анонімного питання без відповіді |
@@ -227,183 +226,181 @@ ${question_id} 0 | @@ -227,183 +226,181 @@ ${question_id} 0 | ||
227 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 226 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
228 | ${bid}= test bid data | 227 | ${bid}= test bid data |
229 | Log ${bid} | 228 | Log ${bid} |
230 | - ${biddingresponce1}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER_ID} ${bid} | 229 | + ${bidresponces}= Create Dictionary |
230 | + ${bid_before_biddperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
231 | + Set To Dictionary ${bidresponces} bid_before_biddperiod_resp ${bid_before_biddperiod_resp} | ||
232 | + Set To Dictionary ${USERS.users['${provider}']} bidresponces ${bidresponces} | ||
233 | + log ${USERS.users['${provider}']} | ||
231 | 234 | ||
232 | ####### | 235 | ####### |
233 | #Відображення відповіді на запитання | 236 | #Відображення відповіді на запитання |
234 | # | 237 | # |
235 | Відповісти на запитання | 238 | Відповісти на запитання |
236 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 239 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
237 | - Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER_ID} 0 ${ANSWERS[0]} | 240 | + Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]} |
238 | ${now}= Get Current Date | 241 | ${now}= Get Current Date |
239 | Set To Dictionary ${ANSWERS[${question_id}].data} date ${now} | 242 | Set To Dictionary ${ANSWERS[${question_id}].data} date ${now} |
240 | 243 | ||
241 | Відображення відповіді на запитання | 244 | Відображення відповіді на запитання |
242 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання | 245 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання |
243 | Дочекатись синхронізації з майданчиком ${viewer} | 246 | Дочекатись синхронізації з майданчиком ${viewer} |
244 | - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID} | 247 | + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']} |
245 | Звірити поле ${viewer} questions[${question_id}].answer ${ANSWERS[${question_id}].data.answer} | 248 | Звірити поле ${viewer} questions[${question_id}].answer ${ANSWERS[${question_id}].data.answer} |
246 | 249 | ||
247 | Можливість побачити скаргу користувачем під час періоду уточнень | 250 | Можливість побачити скаргу користувачем під час періоду уточнень |
248 | [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | 251 | [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера |
249 | - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} | 252 | + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} |
250 | 253 | ||
251 | можливість побачити скаргу анонімом під час періоду уточнень | 254 | можливість побачити скаргу анонімом під час періоду уточнень |
252 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 255 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
253 | - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} | 256 | + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} |
254 | 257 | ||
255 | Подати цінову пропозицію bidder | 258 | Подати цінову пропозицію bidder |
256 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 259 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
257 | Дочекатись дати початоку прийому пропозицій | 260 | Дочекатись дати початоку прийому пропозицій |
258 | ${bid}= test bid data | 261 | ${bid}= test bid data |
259 | Log ${bid} | 262 | Log ${bid} |
260 | - ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_ID} ${bid} | 263 | + ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
261 | Set Global Variable ${biddingresponce0} | 264 | Set Global Variable ${biddingresponce0} |
262 | log ${biddingresponce0} | 265 | log ${biddingresponce0} |
263 | 266 | ||
264 | Можливість скасувати цінову пропозицію | 267 | Можливість скасувати цінову пропозицію |
265 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 268 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
266 | - ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER_ID} ${biddingresponce0} | 269 | + ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponce0} |
267 | 270 | ||
268 | -Подати цінову пропозицію bidder1 | 271 | +Подати повторно цінову пропозицію першим учасником |
269 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 272 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
270 | Дочекатись дати початоку прийому пропозицій | 273 | Дочекатись дати початоку прийому пропозицій |
271 | ${bid}= test bid data | 274 | ${bid}= test bid data |
272 | Log ${bid} | 275 | Log ${bid} |
273 | - ${biddingresponce1}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_ID} ${bid} | ||
274 | - Set Global Variable ${biddingresponce1} | ||
275 | - log ${biddingresponce1} | 276 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
277 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces} resp ${resp} | ||
278 | + log ${resp} | ||
279 | + log ${USERS.users['${provider}'].bidresponces} | ||
276 | 280 | ||
277 | -Можливість змінити цінову пропозицію до 50000 | 281 | +Можливість змінити повторну цінову пропозицію до 50000 |
278 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 282 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
279 | - Set To Dictionary ${biddingresponce1.data.value} amount 50000 | ||
280 | - Log ${biddingresponce1.data.value} | ||
281 | - ${biddingresponce2}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1} | ||
282 | - Set Global Variable ${biddingresponce2} | ||
283 | - log ${biddingresponce2} | 283 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces['resp'].data.value} amount 50000 |
284 | + Log ${USERS.users['${provider}'].bidresponces['resp'].data.value} | ||
285 | + ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponces['resp']} | ||
286 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces} fixbidto50000resp ${fixbidto50000resp} | ||
287 | + log ${fixbidto50000resp} | ||
284 | 288 | ||
285 | -Можливість змінити цінову пропозицію до 1 | 289 | +Можливість змінити повторну цінову пропозицію до 10 |
286 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 290 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
287 | - Set To Dictionary ${biddingresponce1.data.value} amount 1 | ||
288 | - Log ${biddingresponce1.data.value} | ||
289 | - ${biddingresponce3}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1} | ||
290 | - Set Global Variable ${biddingresponce3} | ||
291 | - log ${biddingresponce3} | 291 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces['resp'].data.value} amount 10 |
292 | + Log ${USERS.users['${provider}'].bidresponces['fixbidto50000resp'].data.value} | ||
293 | + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponces['resp']} | ||
294 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces} fixbidto10resp ${fixbidto10resp} | ||
295 | + log ${fixbidto10resp} | ||
292 | 296 | ||
293 | -Завантажити документ першим учасником | 297 | +Завантажити документ першим учасником в повторну пропозицію |
294 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | 298 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
295 | log ${USERS.users['${provider}'].broker} | 299 | log ${USERS.users['${provider}'].broker} |
296 | - log ${biddingresponce1} | ||
297 | - ${bid_id}= get variable value ${biddingresponce1.data.id} | ||
298 | - ${token1}= Get Variable Value ${biddingresponce1.access.token} | ||
299 | - log ${token1} | ||
300 | - ${upload_doc_responce}= Викликати для учасника ${provider} Завантажити документ в ставку ${token1} ${bid_id} | ||
301 | - Set Global Variable ${upload_doc_responce} | 300 | + ${filepath}= create_fake_doc |
301 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | ||
302 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_upload ${bid_doc_upload} | ||
303 | + | ||
304 | +порівняти документ | ||
305 | + [Tags] ${USERS.users['${provider}'].broker}: вичитати документ | ||
306 | + ${url}= Get Variable Value ${USERS.users['${provider}'].bidresponces['bid_doc_upload']['upload_responce'].data.url} | ||
307 | + ${doc} ${flnnm}= Викликати для учасника ${provider} отримати документ ${TENDER['TENDER_UAID']} ${url} | ||
308 | + | ||
309 | + FIXME: finish the keyword | ||
310 | + | ||
311 | + Should Be Equal ${flcntnt} ${doc} | ||
312 | + Should Be Equal ${flpth} ${flnnm} | ||
302 | 313 | ||
303 | Можливість змінити документацію цінової пропозиції | 314 | Можливість змінити документацію цінової пропозиції |
304 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | 315 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
305 | log ${USERS.users['${provider}'].broker} | 316 | log ${USERS.users['${provider}'].broker} |
306 | - log ${biddingresponce1} | ||
307 | - ${bid_id}= get variable value ${biddingresponce1.data.id} | ||
308 | - ${token1}= Get Variable Value ${biddingresponce1.access.token} | ||
309 | - ${upload_doc_responce_id}= get variable value ${upload_doc_responce.data.id} | ||
310 | - log ${token1} | ||
311 | - Викликати для учасника ${provider} Змінити документ в ставці ${token1} ${bid_id} ${upload_doc_responce_id} | 317 | + ${filepath}= create_fake_doc |
318 | + ${bidid}= Get Variable Value ${USERS.users['${provider}'].bidresponces['resp'].data.id} | ||
319 | + ${docid}= Get Variable Value ${USERS.users['${provider}'].bidresponces['bid_doc_upload']['upload_responce'].data.id} | ||
320 | + ${bid_doc_modified}= Викликати для учасника ${provider} Змінити документ в ставці ${filepath} ${bidid} ${docid} | ||
321 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_modified ${bid_doc_modified} | ||
312 | 322 | ||
313 | Неможливість задати запитання після закінчення періоду уточнень | 323 | Неможливість задати запитання після закінчення періоду уточнень |
314 | [Documentation] | 324 | [Documentation] |
315 | ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | 325 | ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" |
316 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 326 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
317 | - ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER_ID} ${questions[${question_id}]} | 327 | + ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER['TENDER_UAID']} ${questions[${question_id}]} |
318 | 328 | ||
319 | -Подати цінову пропозицію bidder2 | 329 | +Подати цінову пропозицію другим учасником |
320 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | 330 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
321 | Дочекатись дати початоку прийому пропозицій | 331 | Дочекатись дати початоку прийому пропозицій |
322 | ${bid}= test bid data | 332 | ${bid}= test bid data |
323 | Log ${bid} | 333 | Log ${bid} |
324 | - ${biddingresponce5}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER_ID} ${bid} | ||
325 | - Set Global Variable ${biddingresponce5} | ||
326 | - log ${biddingresponce5} | 334 | + ${bidresponces}= Create Dictionary |
335 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
336 | + Set To Dictionary ${bidresponces} resp ${resp} | ||
337 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponces ${bidresponces} | ||
338 | + log ${resp} | ||
339 | + log ${USERS.users['${provider1}'].bidresponces} | ||
327 | 340 | ||
328 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | 341 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій |
329 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 342 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
330 | - ${field_date}= Викликати для учасника ${viewer} отримати інформацію із тендера B | 343 | + |
344 | + FIXME: finish the keyword | ||
345 | + | ||
346 | + ${field_date}= Викликати для учасника ${viewer} отримати інформацію із тендера | ||
331 | 347 | ||
332 | Завантажити документ другим учасником | 348 | Завантажити документ другим учасником |
333 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | 349 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість прийняти пропозицію переможця |
334 | log ${USERS.users['${provider1}'].broker} | 350 | log ${USERS.users['${provider1}'].broker} |
335 | - ${bid_id2}= get variable value ${biddingresponce5.data.id} | ||
336 | - ${token2}= Get Variable Value ${biddingresponce5.access.token} | ||
337 | - log ${token2} | ||
338 | - Викликати для учасника ${provider1} Завантажити документ в ставку ${token2} ${bid_id2} | 351 | + ${filepath}= create_fake_doc |
352 | + ${bid_doc_upload}= Викликати для учасника ${provider1} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | ||
353 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} bid_doc_upload ${bid_doc_upload} | ||
339 | 354 | ||
340 | Можливість побачити скаргу користувачем під час подачі пропозицій | 355 | Можливість побачити скаргу користувачем під час подачі пропозицій |
341 | [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | 356 | [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера |
342 | - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} | 357 | + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} |
343 | 358 | ||
344 | можливість побачити скаргу анонімом під час подачі пропозицій | 359 | можливість побачити скаргу анонімом під час подачі пропозицій |
345 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 360 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
346 | - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} | ||
347 | - | 361 | + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]} |
348 | 362 | ||
349 | Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | 363 | Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій |
350 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | 364 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій |
351 | Дочекатись дати закінчення прийому пропозицій | 365 | Дочекатись дати закінчення прийому пропозицій |
352 | - Set To Dictionary ${biddingresponce1.data.value} amount 50000 | ||
353 | - Log ${biddingresponce5.data.value} | ||
354 | - ${biddingresponce6}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} | ||
355 | - Set Global Variable ${biddingresponce6} | ||
356 | - log ${biddingresponce6} | 366 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponces['resp'].data.value} amount 50000 |
367 | + Log ${USERS.users['${provider1}'].bidresponces['resp'].data.value} | ||
368 | + ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']} | ||
369 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} failfixbidto50000resp ${failfixbidto50000resp} | ||
370 | + log ${failfixbidto50000resp} | ||
357 | 371 | ||
358 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 372 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
359 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 373 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
360 | - Set To Dictionary ${biddingresponce5.data.value} amount 1 | ||
361 | - Log ${biddingresponce1.data.value} | ||
362 | - ${biddingresponce7}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} | ||
363 | - Set Global Variable ${biddingresponce7} | ||
364 | - log ${biddingresponce3} | 374 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponces['resp'].data.value} amount 1 |
375 | + Log ${USERS.users['${provider1}'].bidresponces['resp'].data.value} | ||
376 | + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']} | ||
377 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} failfixbidto1resp ${failfixbidto1resp} | ||
378 | + log ${failfixbidto1resp} | ||
365 | 379 | ||
366 | Неможливість скасувати цінову пропозицію | 380 | Неможливість скасувати цінову пропозицію |
367 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | ||
368 | - ${biddingresponce8}= Викликати для учасника ${provider} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} | 381 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію |
382 | + ${biddingresponce}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']} | ||
369 | 383 | ||
370 | Неможливість завантажити документ другим учасником після закінчення прийому пропозицій | 384 | Неможливість завантажити документ другим учасником після закінчення прийому пропозицій |
371 | - [Tags] ${USERS.users['${provider}'].broker}: Неможливість документ першим учасником після закінчення прийому пропозицій | ||
372 | - log ${USERS.users['${provider1}'].broker} | ||
373 | - log ${biddingresponce5} | ||
374 | - ${bid_id}= get variable value ${biddingresponce5.data.id} | ||
375 | - ${token1}= Get Variable Value ${biddingresponce5.access.token} | ||
376 | - log ${token1} | ||
377 | - ${upload_doc_responce2}= Викликати для учасника ${provider1} Завантажити документ в ставку shouldfail ${token1} ${bid_id} | ||
378 | - log ${upload_doc_responce_2} | ||
379 | - Set Global Variable ${upload_doc_responce2} | ||
380 | - | ||
381 | -Неможливість змінити документацію цінової пропозиції після закінчення прийому пропозицій | ||
382 | - [Tags] ${USERS.users['${provider}'].broker}: Неможливість змінити документацію цінової пропозиції після закінчення прийому пропозицій | ||
383 | - log ${USERS.users['${provider}'].broker} | ||
384 | - log ${biddingresponce5} | ||
385 | - ${bid_id}= get variable value ${biddingresponce5.data.id} | ||
386 | - ${token1}= Get Variable Value ${biddingresponce5.access.token} | ||
387 | - ${upload_doc_responce_id2}= get variable value ${upload_doc_responce2.data.id} | ||
388 | - log ${upload_doc_responce_id2} | ||
389 | - log ${token1} | ||
390 | - Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id2} | 385 | + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість документ першим учасником після закінчення прийому пропозицій |
386 | + ${filepath}= create_fake_doc | ||
387 | + ${bid_doc_upload_fail}= Викликати для учасника ${provider1} Завантажити документ в ставку shouldfail ${filepath} ${TENDER['TENDER_UAID']} | ||
388 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} bid_doc_upload_fail ${bid_doc_upload_fail} | ||
391 | 389 | ||
392 | 390 | ||
393 | Неможливість змінити існуючу документацію цінової пропозиції після закінчення прийому пропозицій | 391 | Неможливість змінити існуючу документацію цінової пропозиції після закінчення прийому пропозицій |
394 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
395 | - log ${USERS.users['${provider}'].broker} | ||
396 | - log ${biddingresponce1} | ||
397 | - ${bid_id}= get variable value ${biddingresponce1.data.id} | ||
398 | - ${token1}= Get Variable Value ${biddingresponce1.access.token} | ||
399 | - ${upload_doc_responce_id}= get variable value ${upload_doc_responce.data.id} | ||
400 | - log ${token1} | ||
401 | - Викликати для учасника ${provider} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id} | 392 | + [Tags] ${USERS.users['${provider1}'].broker}: |
393 | + ${filepath}= create_fake_doc | ||
394 | + ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id} | ||
395 | + ${docid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['bid_doc_upload']['upload_responce'].data.id} | ||
396 | + ${bid_doc_modified_failed}= Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${filepath} ${bidid} ${docid} | ||
397 | + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_modified_failed ${bid_doc_modified_failed} | ||
402 | 398 | ||
403 | 399 | ||
404 | -Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій | ||
405 | - [Tags] ${USERS.users['${provider}'].broker}: Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій | ||
406 | - ${biddingresponce8}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} | ||
407 | - Set Global Variable ${biddingresponce8} | ||
408 | - log ${biddingresponce8} | ||
409 | - | 400 | +Вичитати цінову пропозицію |
401 | +# sleep 120 | ||
402 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
403 | + ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id} | ||
404 | + ${token}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].access.token} | ||
405 | + ${bids}= Викликати для учасника ${provider1} Отримати пропозиції ${TENDER['TENDER_UAID']} ${bidid} ${token} | ||
406 | + log ${bids} |
Please
register
or
login
to post a comment