Commit c66d0cfe0674332f189ee117ffed8d64ae158044
Merge branch 'e-tender_+_netcast'
Conflicts: op_robot_tests/tests_files/data/brokers.yaml op_robot_tests/tests_files/data/users.yaml op_robot_tests/tests_files/initial_data.py
Showing
11 changed files
with
433 additions
and
316 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 | - |
... | ... | @@ -3,18 +3,8 @@ Library Selenium2Screenshots |
3 | 3 | Library String |
4 | 4 | Library DateTime |
5 | 5 | |
6 | - | |
7 | 6 | *** Variables *** |
8 | 7 | ${locator.tenderId} jquery=h3 |
9 | -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)> | |
10 | -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)> | |
11 | -${locator.minimalStep.amount} jquery=tender-subject-info>div.row:contains("Мінімальний крок аукціону, грн.:")>:eq(1)> | |
12 | -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)> | |
13 | -${locator.value.amount} jquery=tender-subject-info>div.row:contains("Повний доступний бюджет закупівлі, грн.:")>:eq(1)> | |
14 | -${locator.tenderPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок прийому пропозицій:")>:eq(1)> | |
15 | -${locator.tenderPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення прийому пропозицій:")>:eq(1)> | |
16 | -${locator.enquiryPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок періоду уточнень:")>:eq(1)> | |
17 | -${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення періоду уточнень:")>:eq(1)> | |
18 | 8 | |
19 | 9 | *** Keywords *** |
20 | 10 | Підготувати дані для оголошення тендера |
... | ... | @@ -32,6 +22,7 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai |
32 | 22 | # login |
33 | 23 | Wait Until Page Contains Element id=inputUsername 100 |
34 | 24 | Input text id=inputUsername ${USERS.users['${username}'].login} |
25 | + Wait Until Page Contains Element id=inputPassword 100 | |
35 | 26 | Input text id=inputPassword ${USERS.users['${username}'].password} |
36 | 27 | Click Button id=btn_submit |
37 | 28 | |
... | ... | @@ -78,43 +69,41 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai |
78 | 69 | Input text id=minimalStep ${step_rate} |
79 | 70 | Input text id=itemsDescription ${items_description} |
80 | 71 | Input text id=itemsQuantity ${quantity} |
72 | + Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 100 | |
81 | 73 | Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] |
82 | 74 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date} |
83 | 75 | 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} |
84 | - | |
85 | 76 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='startDate'] ${start_date} |
86 | 77 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.startDate'] ${start_time} |
87 | 78 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='endDate'] ${end_date} |
88 | 79 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.endDate'] ${end_time} |
89 | - | |
90 | 80 | Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#classification'] |
91 | - Wait Until Page Contains Оберіть класифікатор CPV 100 | |
92 | - Input text xpath=//div[contains(@class, 'modal-content')]//input[@ng-model='searchstring'] ${cpv} | |
93 | - Wait Until Page Contains Картонки 100 | |
94 | - Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-table-rowselected ng-scope ng-table')]//tr[1]//td[1] | |
95 | - Wait Until Page Contains 44617100-9 Картонки 100 | |
81 | + Wait Until Element Is Visible xpath=//div[contains(@role,'dialog')] | |
82 | + Input text xpath=//div[contains(@class, 'modal-content')]//input[@ng-model='searchstring'] ${cpv} | |
83 | + Wait Until Page Contains ${cpv} | |
84 | + Click Element xpath=//td[contains(., '${cpv}')] | |
96 | 85 | Click Element xpath=//div[contains(@class, 'modal-content')]//button[@ng-click='choose()'] |
97 | - | |
98 | 86 | Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'] |
99 | - Wait Until Page Contains Класифікатор ДКПП 100 | |
87 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
100 | 88 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc} |
101 | - Wait Until Page Contains ${dkpp_id} 100 | |
102 | - Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-table-rowselected ng-scope ng-table')]//tr[2]//td[1] | |
103 | - Wait Until Page Contains 17.21.1 "Папір і картон гофровані, паперова й картонна тара" 100 | |
89 | + Wait Until Page Contains ${dkpp_id} | |
90 | + Click Element xpath=//td[contains(., '${dkpp_id}')] | |
104 | 91 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] |
92 | + Run Keyword if '${mode}' == 'multi' Додати предмет items | |
93 | + Wait Until Page Contains Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | |
105 | 94 | Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] |
106 | 95 | Wait Until Page Contains [ТЕСТУВАННЯ] 100 |
107 | 96 | Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a |
108 | 97 | ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid |
109 | 98 | ### harcode Idis bacause issues on the E-tender side, to remove, 1 line: |
110 | - ${tender_UAid}= Convert To String UA-2015-06-30-000012 | |
111 | - ${Ids} Create List ${tender_UAid} | |
99 | + ${tender_UAid}= Convert To String UA-2015-08-03-000025 | |
100 | + ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${tender_UAid} | |
101 | + ${Ids} Create List ${tender_UAid} ${id} | |
112 | 102 | [return] ${Ids} |
113 | 103 | |
114 | 104 | get tender UAid |
115 | 105 | ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")] |
116 | 106 | ${tender_UAid}= Get Substring ${tender_UAid} 7 27 |
117 | - [return] ${tender_UAid} | |
118 | 107 | |
119 | 108 | Oтримати internal id по UAid |
120 | 109 | [Arguments] @{ARGUMENTS} |
... | ... | @@ -124,10 +113,49 @@ Oтримати internal id по UAid |
124 | 113 | etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
125 | 114 | ${current_location}= Get Location |
126 | 115 | ${tender_id}= Fetch From Right ${current_location} / |
127 | -### harcode Idis bacause issues on the E-tender side, to remove, 1 line: | |
116 | +## harcode Idis bacause issues on the E-tender side, to remove, 1 line: | |
128 | 117 | ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2 |
129 | - log ${internal_id} | |
130 | - [return] ${internal_id} | |
118 | + log ${tender_id} | |
119 | + [return] ${tender_id} | |
120 | + | |
121 | +Додати предмет | |
122 | + [Arguments] @{ARGUMENTS} | |
123 | + [Documentation] | |
124 | + ... ${ARGUMENTS[0]} == items | |
125 | + ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description | |
126 | + ${dkpp_id1}= Get From Dictionary ${items[1].additionalClassifications[0]} id | |
127 | + ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description | |
128 | + ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id | |
129 | + ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description | |
130 | + ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id | |
131 | + | |
132 | + Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100 | |
133 | + Click Element xpath=.//*[@id='myform']/tender-form/div/button | |
134 | + Sleep 2 | |
135 | + Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2] | |
136 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
137 | + Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc1} | |
138 | + Wait Until Page Contains ${dkpp_id1} | |
139 | + Click Element xpath=//td[contains(., '${dkpp_id1}')] | |
140 | + Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | |
141 | + Sleep 2 | |
142 | + Click Element xpath=.//*[@id='myform']/tender-form/div/button | |
143 | + Sleep 2 | |
144 | + Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3] | |
145 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
146 | + Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc2} | |
147 | + Wait Until Page Contains ${dkpp_id2} | |
148 | + Click Element xpath=//td[contains(., '${dkpp_id2}')] | |
149 | + Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | |
150 | + Sleep 2 | |
151 | + Click Element xpath=.//*[@id='myform']/tender-form/div/button | |
152 | + Sleep 2 | |
153 | + Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4] | |
154 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
155 | + Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc3} | |
156 | + Wait Until Page Contains ${dkpp_id3} | |
157 | + Click Element xpath=//td[contains(., '${dkpp_id3}')] | |
158 | + Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | |
131 | 159 | |
132 | 160 | Пошук тендера по ідентифікатору |
133 | 161 | [Arguments] @{ARGUMENTS} |
... | ... | @@ -136,17 +164,68 @@ Oтримати internal id по UAid |
136 | 164 | ... ${ARGUMENTS[1]} == tenderId |
137 | 165 | |
138 | 166 | Switch browser ${ARGUMENTS[0]} |
139 | - Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} | |
167 | + Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} | |
140 | 168 | Wait Until Page Contains Список закупівель 10 |
141 | - sleep 1 | |
142 | - Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]} | |
143 | - Click Link jquery=a[ng-click='search()'] | |
144 | - sleep 2 | |
169 | + sleep 1 | |
170 | + Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]} | |
171 | + Click Link jquery=a[ng-click='search()'] | |
172 | + sleep 2 | |
145 | 173 | Click Link jquery=a[href^="#/tenderDetailes"] |
146 | 174 | Wait Until Page Contains ${ARGUMENTS[1]} 10 |
147 | 175 | sleep 1 |
148 | 176 | Capture Page Screenshot |
149 | 177 | |
178 | + Подати цінову пропозицію | |
179 | + [Arguments] @{ARGUMENTS} | |
180 | + [Documentation] | |
181 | + ... ${ARGUMENTS[0]} == username | |
182 | + ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID} | |
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]} = ${INTERNAL_TENDER_ID} | |
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]} ${TENDER_ID} | |
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]} = ${INTERNAL_TENDER_ID} | |
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]} ${TENDER_ID} | |
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 | + | |
150 | 229 | обновити сторінку з тендером |
151 | 230 | [Arguments] @{ARGUMENTS} |
152 | 231 | [Documentation] |
... | ... | @@ -281,54 +360,3 @@ Oтримати internal id по UAid |
281 | 360 | відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last> |
282 | 361 | ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last> |
283 | 362 | [return] ${return_value} |
284 | - | |
285 | -Подати цінову пропозицію | |
286 | - [Arguments] @{ARGUMENTS} | |
287 | - [Documentation] | |
288 | - ... ${ARGUMENTS[0]} == username | |
289 | - ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID} | |
290 | - ... ${ARGUMENTS[2]} == test_bid_data | |
291 | - | |
292 | - ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount | |
293 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
294 | - Wait Until Page Contains Інформація про процедуру закупівлі 100 | |
295 | - Wait Until Page Contains Element id=amount 10 | |
296 | - Input text id=amount ${bid} | |
297 | - Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції'] | |
298 | - | |
299 | -Задати питання | |
300 | - [Arguments] @{ARGUMENTS} | |
301 | - [Documentation] | |
302 | - ... ${ARGUMENTS[0]} = username | |
303 | - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | |
304 | - ... ${ARGUMENTS[2]} = question_data | |
305 | - | |
306 | - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | |
307 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | |
308 | - | |
309 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
310 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | |
311 | - | |
312 | - Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100 | |
313 | - Click Element jquery=a[href^="#/addQuestion/"] | |
314 | - Wait Until Page Contains Element id=title | |
315 | - Input text id=title ${title} | |
316 | - Input text id=description ${description} | |
317 | - Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | |
318 | - | |
319 | -Відповісти на питання | |
320 | - [Arguments] @{ARGUMENTS} | |
321 | - [Documentation] | |
322 | - ... ${ARGUMENTS[0]} = username | |
323 | - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | |
324 | - ... ${ARGUMENTS[2]} = 0 | |
325 | - ... ${ARGUMENTS[3]} = answer_data | |
326 | - | |
327 | - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | |
328 | - | |
329 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
330 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | |
331 | - | |
332 | - Click Element xpath=//div[div/pre[1]]/div[1] | |
333 | - Input text xpath=//div[textarea]/textarea ${answer} | |
334 | - Click Element xpath=//div[textarea]/span/button[1] | ... | ... |
... | ... | @@ -5,25 +5,170 @@ Library DateTime |
5 | 5 | |
6 | 6 | *** Variables *** |
7 | 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 | - | |
18 | 8 | |
19 | 9 | *** Keywords *** |
20 | 10 | Підготувати клієнт для користувача |
21 | - [Arguments] ${username} | |
11 | + [Arguments] @{ARGUMENTS} | |
22 | 12 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо |
23 | - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${username} | |
24 | - Set Window Position @{USERS.users['${username}'].position} | |
25 | - Set Window Size @{USERS.users['${username}'].size} | |
26 | - Log Variables | |
13 | + ... ${ARGUMENTS[0]} == username | |
14 | + Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]} | |
15 | + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | |
16 | + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | |
17 | + | |
18 | +# login | |
19 | + Wait Until Page Contains Element name=siteLogin 100 | |
20 | + Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login} | |
21 | + Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password} | |
22 | + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | |
23 | + | |
24 | + Wait Until Page Contains Element jquery=a[href="/cabinet"] | |
25 | + Click Element jquery=a[href="/cabinet"] | |
26 | + Wait Until Page Contains Element name=email 100 | |
27 | + Input text name=email mail | |
28 | + Sleep 1 | |
29 | + Input text name=email ${USERS.users['${username}'].login} | |
30 | + Sleep 2 | |
31 | + Input text name=psw ${USERS.users['${username}'].password} | |
32 | + Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100 | |
33 | + Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] | |
34 | + | |
35 | +Створити тендер | |
36 | + [Arguments] @{ARGUMENTS} | |
37 | + [Documentation] | |
38 | + ... ${ARGUMENTS[0]} == username | |
39 | + ... ${ARGUMENTS[1]} == tender_data | |
40 | + | |
41 | + ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | |
42 | + ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | |
43 | + ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | |
44 | + ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | |
45 | + ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | |
46 | + ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description | |
47 | + ${quantity}= Get From Dictionary ${items[0]} quantity | |
48 | + ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName | |
49 | + ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate | |
50 | + ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} | |
51 | + ${cpv}= Get From Dictionary ${items[0].classification} description_ua | |
52 | + ${cpv_id}= Get From Dictionary ${items[0].classification} id | |
53 | + ${cpv_id1}= Replace String ${cpv_id} - _ | |
54 | + ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | |
55 | + ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | |
56 | + ${dkpp_id1}= Replace String ${dkpp_id} - _ | |
57 | + ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | |
58 | + ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} | |
59 | + ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | |
60 | + ${end_date}= convert_date_to_slash_format ${end_date} | |
61 | + | |
62 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
63 | + Wait Until Page Contains Element jquery=a[href="/tenders/new"] 100 | |
64 | + Click Element jquery=a[href="/tenders/new"] | |
65 | + Wait Until Page Contains Element name=tender_title 100 | |
66 | + Input text name=tender_title ${title} | |
67 | + Input text name=tender_description ${description} | |
68 | + Input text name=tender_value_amount ${budget} | |
69 | + Input text name=tender_minimalStep_amount ${step_rate} | |
70 | + Input text name=items[0][item_description] ${items_description} | |
71 | + Input text name=items[0][item_quantity] ${quantity} | |
72 | + Input text name=items[0][item_deliveryAddress_countryName] ${countryName} | |
73 | + Input text name=items[0][item_deliveryDate_endDate] ${delivery_end_date} | |
74 | + Click Element xpath=//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'] | |
75 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
76 | + Input text id=search ${cpv} | |
77 | + Wait Until Page Contains ${cpv_id} | |
78 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
79 | + Click Element xpath=.//*[@id='select'] | |
80 | + Unselect Frame | |
81 | + Click Element xpath=//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'] | |
82 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
83 | + Input text id=search ${dkpp_desc} | |
84 | + Wait Until Page Contains ${dkpp_id} | |
85 | + Click Element xpath=//a[contains(@id,'${dkpp_id1}')] | |
86 | + Click Element xpath=.//*[@id='select'] | |
87 | + Unselect Frame | |
88 | + Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} | |
89 | + Input text name=tender_tenderPeriod_endDate ${end_date} | |
90 | + Run Keyword if '${mode}' == 'multi' Додати предмет items | |
91 | + Wait Until Page Contains Element name=do 100 | |
92 | + Click Element name=do | |
93 | + Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100 | |
94 | + Click Element xpath=//a[contains(@class, 'button pubBtn')] | |
95 | + Wait Until Page Contains Тендер опубліковано 100 | |
96 | + ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2] | |
97 | + ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2] | |
98 | + ${Ids} Create List ${tender_UAid} ${id} | |
99 | + [return] ${Ids} | |
100 | + | |
101 | +Додати предмет | |
102 | + [Arguments] @{ARGUMENTS} | |
103 | + [Documentation] | |
104 | + ... ${ARGUMENTS[0]} == items | |
105 | + ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description | |
106 | + ${dkpp_id11}= Get From Dictionary ${items[1].additionalClassifications[0]} id | |
107 | + ${dkpp_1id}= Replace String ${dkpp_id11} - _ | |
108 | + ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description | |
109 | + ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id | |
110 | + ${dkpp_id2_1}= Replace String ${dkpp_id2} - _ | |
111 | + ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description | |
112 | + ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id | |
113 | + ${dkpp_id3_1}= Replace String ${dkpp_id3} - _ | |
114 | + | |
115 | + Wait Until Page Contains Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
116 | + Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
117 | + Wait Until Page Contains Element name=items[1][item_description] 100 | |
118 | + Input text name=items[1][item_description] ${description} | |
119 | + Input text name=items[1][item_quantity] ${quantity} | |
120 | + Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[2] | |
121 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
122 | + Input text id=search ${cpv} | |
123 | + Wait Until Page Contains ${cpv_id} | |
124 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
125 | + Click Element xpath=.//*[@id='select'] | |
126 | + Unselect Frame | |
127 | + Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[2] | |
128 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
129 | + Input text id=search ${dkpp_desc1} | |
130 | + Wait Until Page Contains ${dkpp_id11} | |
131 | + Click Element xpath=//a[contains(@id,'${dkpp_1id}')] | |
132 | + Click Element xpath=.//*[@id='select'] | |
133 | + Unselect Frame | |
134 | + Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
135 | + Wait Until Page Contains Element name=items[2][item_description] 100 | |
136 | + Input text name=items[2][item_description] ${description} | |
137 | + Input text name=items[2][item_quantity] ${quantity} | |
138 | + Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[3] | |
139 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
140 | + Input text id=search ${cpv} | |
141 | + Wait Until Page Contains ${cpv_id} | |
142 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
143 | + Click Element xpath=.//*[@id='select'] | |
144 | + Unselect Frame | |
145 | + Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[3] | |
146 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
147 | + Input text id=search ${dkpp_desc2} | |
148 | + Wait Until Page Contains ${dkpp_id2} | |
149 | + Click Element xpath=//a[contains(@id,'${dkpp_id2_1}')] | |
150 | + Click Element xpath=.//*[@id='select'] | |
151 | + Unselect Frame | |
152 | + Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
153 | + Wait Until Page Contains Element name=items[3][item_description] 100 | |
154 | + Input text name=items[3][item_description] ${description} | |
155 | + Input text name=items[3][item_quantity] ${quantity} | |
156 | + Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[4] | |
157 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
158 | + Input text id=search ${cpv} | |
159 | + Wait Until Page Contains ${cpv_id} | |
160 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
161 | + Click Element xpath=.//*[@id='select'] | |
162 | + Unselect Frame | |
163 | + Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[4] | |
164 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
165 | + Input text id=search ${dkpp_desc3} | |
166 | + Wait Until Page Contains ${dkpp_id3} | |
167 | + Click Element xpath=//a[contains(@id,'${dkpp_id3_1}')] | |
168 | + Click Element xpath=.//*[@id='select'] | |
169 | + Unselect Frame | |
170 | + Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} | |
171 | + Input text name=tender_tenderPeriod_endDate ${end_date} | |
27 | 172 | |
28 | 173 | Пошук тендера по ідентифікатору |
29 | 174 | [Arguments] @{ARGUMENTS} | ... | ... |
... | ... | @@ -149,13 +149,13 @@ ${question_id} 0 |
149 | 149 | Set_To_Object ${TENDER_DATA.data} items ${items} |
150 | 150 | ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token} |
151 | 151 | ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA} |
152 | - | |
152 | + | |
153 | 153 | |
154 | 154 | Задати питання |
155 | 155 | [Documentation] |
156 | 156 | ... ${ARGUMENTS[0]} == username |
157 | 157 | ... ${ARGUMENTS[1]} == tender_uid |
158 | - ... ${ARGUMENTS[2]} == bid | |
158 | + ... ${ARGUMENTS[2]} == question | |
159 | 159 | [Arguments] @{ARGUMENTS} |
160 | 160 | log many @{ARGUMENTS} |
161 | 161 | ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
... | ... | @@ -163,7 +163,7 @@ ${question_id} 0 |
163 | 163 | log ${USERS.users['${ARGUMENTS[0]}']} |
164 | 164 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]} |
165 | 165 | [return] ${biddingresponce} |
166 | - | |
166 | + | |
167 | 167 | Відповісти на питання |
168 | 168 | [Documentation] |
169 | 169 | ... ${ARGUMENTS[0]} == username |
... | ... | @@ -192,7 +192,7 @@ ${question_id} 0 |
192 | 192 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} |
193 | 193 | ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints |
194 | 194 | Log object data ${complaint} complaint |
195 | - | |
195 | + | |
196 | 196 | порівняти скаргу |
197 | 197 | [Documentation] |
198 | 198 | ... ${ARGUMENTS[0]} == username |
... | ... | @@ -209,7 +209,7 @@ ${question_id} 0 |
209 | 209 | #:FOR ${element} IN ${ARGUMENTS[2].data} |
210 | 210 | #\ log ${element} |
211 | 211 | #\ Dictionary Should Contain Value ${complaint} ${element} |
212 | - | |
212 | + | |
213 | 213 | Обробити скаргу |
214 | 214 | [Documentation] |
215 | 215 | ... ${ARGUMENTS[0]} == username |
... | ... | @@ -238,7 +238,7 @@ ${question_id} 0 |
238 | 238 | log ${tender}отримати |
239 | 239 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]} |
240 | 240 | [return] ${biddingresponce} |
241 | - | |
241 | + | |
242 | 242 | Змінити цінову пропозицію |
243 | 243 | [Documentation] |
244 | 244 | ... ${ARGUMENTS[0]} == username |
... | ... | @@ -264,7 +264,7 @@ ${question_id} 0 |
264 | 264 | ${changed_bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_bid ${tender} ${ARGUMENTS[2]} |
265 | 265 | Log ${changed_bid} |
266 | 266 | [return] ${changed_bid} |
267 | - | |
267 | + | |
268 | 268 | Прийняти цінову пропозицію |
269 | 269 | [Documentation] |
270 | 270 | ... ${ARGUMENTS[0]} == username |
... | ... | @@ -286,14 +286,20 @@ ${question_id} 0 |
286 | 286 | [Arguments] @{ARGUMENTS} |
287 | 287 | log ${ARGUMENTS[0]} |
288 | 288 | log ${ARGUMENTS[1]} |
289 | + | |
290 | + # Built-in variables related to the operating system ease making the test data operating-system-agnostic. | |
291 | + log ${TEMPDIR} # An absolute path to the directory where the test data file is located. This variable is case-sensitive. | |
292 | + log ${CURDIR} # An absolute path to the system temporary directory. In UNIX-like systems this is typically /tmp, and in Windows c:\Documents and Settings\<user>\Local Settings\Temp. | |
293 | + | |
294 | + ${filecontent} = Set Variable somestring | |
295 | + ${created_file_path}= create_file ${filecontent} | |
289 | 296 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id} |
290 | 297 | ${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 | - | |
298 | + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${created_file_path} ${tender} ${ARGUMENTS[2]} | |
299 | + ${uploaded_file} = Create Dictionary filepath ${created_file_path} filecontent ${filecontent} upload_responce ${responce} | |
300 | + Log object data ${uploaded_file} | |
301 | + [return] ${uploaded_file} | |
302 | + | |
297 | 303 | Змінити документ в ставці |
298 | 304 | [Documentation] |
299 | 305 | ... ${ARGUMENTS[0]} == username |
... | ... | @@ -310,7 +316,7 @@ ${question_id} 0 |
310 | 316 | ${filename}= Set Variable newfile.txt |
311 | 317 | Set_To_Object ${TENDER_DATA.data} documents.title ${filename} |
312 | 318 | ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${filename} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} |
313 | - Log object data ${reply} replyотримати | |
319 | + Log object data ${reply} reply | |
314 | 320 | |
315 | 321 | Завантажити документ |
316 | 322 | [Documentation] |
... | ... | @@ -327,4 +333,33 @@ ${question_id} 0 |
327 | 333 | Set_To_Object ${TENDER_DATA.data} documents.title ${filename} |
328 | 334 | ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_tender_document ${filename} ${tender} |
329 | 335 | Log object data ${reply} reply |
330 | - | |
\ No newline at end of file | ||
336 | + | |
337 | +Отримати пропозиції | |
338 | + [Documentation] | |
339 | + ... ${ARGUMENTS[0]} == username | |
340 | + ... ${ARGUMENTS[1]} == tender_uid | |
341 | + ... ${ARGUMENTS[2]} == bid_id | |
342 | + ... ${ARGUMENTS[3]} == token | |
343 | + [Arguments] @{ARGUMENTS} | |
344 | + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
345 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} | |
346 | + ${bids}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_bid ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | |
347 | + Log ${bids} | |
348 | + [return] ${bids} | |
349 | + | |
350 | +отримати документ | |
351 | + [Documentation] | |
352 | + ... ${ARGUMENTS[0]} == username | |
353 | + ... ${ARGUMENTS[1]} == tenderUaID | |
354 | + ... ${ARGUMENTS[2]} == url | |
355 | + ... ${ARGUMENTS[3]} == token | |
356 | + [Arguments] @{ARGUMENTS} | |
357 | + log ${ARGUMENTS[0]} | |
358 | + log ${ARGUMENTS[1]} | |
359 | + log ${ARGUMENTS[2]} | |
360 | + ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
361 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} | |
362 | + ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | |
363 | + log ${contents} | |
364 | + log ${filename} | |
365 | + [return] ${contents} ${filename} | |
\ No newline at end of file | ... | ... |
... | ... | @@ -24,8 +24,18 @@ Publicbid: |
24 | 24 | period_interval: 2 |
25 | 25 | Netcast: |
26 | 26 | keywords_file: netcast |
27 | - url: http://dz2.byustudio.in.ua | |
27 | + url: "http://dz2.byustudio.in.ua" | |
28 | + login: admin | |
29 | + password: uStudio | |
28 | 30 | timout_on_wait: 15 |
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 | |
29 | 39 | Newtend: |
30 | 40 | keywords_file: newtend |
31 | 41 | url: http://openprocurement:test@dev23.newtend.com | ... | ... |
... | ... | @@ -19,7 +19,7 @@ users: |
19 | 19 | password: Password1 |
20 | 20 | browser: firefox |
21 | 21 | position: [0, 0] |
22 | - size: [640, 450] | |
22 | + size: [740, 550] | |
23 | 23 | E-tender_Provider1: |
24 | 24 | broker: E-tender |
25 | 25 | username: E-tendertest |
... | ... | @@ -83,6 +83,15 @@ users: |
83 | 83 | browser: firefox |
84 | 84 | position: [0, 0] |
85 | 85 | size: [640, 450] |
86 | + Netcast_Owner: | |
87 | + broker: Netcast | |
88 | + username: Netcasttest | |
89 | + homepage: "http://dz2.byustudio.in.ua" | |
90 | + login: ovramet.s@gmail.com | |
91 | + password: Password1 | |
92 | + browser: firefox | |
93 | + position: [0, 450] | |
94 | + size: [640, 450] | |
86 | 95 | Newtend_Provider1: |
87 | 96 | broker: Newtend |
88 | 97 | username: Newtendtest |
... | ... | @@ -90,8 +99,17 @@ users: |
90 | 99 | login: qtest@mailinator.com |
91 | 100 | password: 123123 |
92 | 101 | browser: firefox |
93 | - position: [700, 0] | |
94 | - size: [640, 450] | |
102 | + position: [0, 450] | |
103 | + size: [640, 450] | |
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] | |
95 | 113 | Newtend_Provider2: |
96 | 114 | broker: Newtend |
97 | 115 | username: Newtendtest | ... | ... |
... | ... | @@ -66,7 +66,7 @@ def test_tender_data(period_interval=2): |
66 | 66 | "scheme": u"CPV", |
67 | 67 | "id": u"44617100-9", |
68 | 68 | "description": u"Cartons", |
69 | - "description_ua": u"Картонки" | |
69 | + "description_ua": u"Картонки", | |
70 | 70 | }, |
71 | 71 | "additionalClassifications": [ |
72 | 72 | { |
... | ... | @@ -134,7 +134,7 @@ def prom_test_tender_data(): |
134 | 134 | { |
135 | 135 | "description": fake.catch_phrase(), |
136 | 136 | "deliveryDate": { |
137 | - "startDate": (now + timedelta(days=4)).isoformat(), | |
137 | + "startDate": (now + timedelta(days=4)).isoformat(), | |
138 | 138 | "endDate": (now + timedelta(days=5)).isoformat() |
139 | 139 | }, |
140 | 140 | "deliveryLocation": { |
... | ... | @@ -206,15 +206,15 @@ def test_tender_data_multiple_lots(period_interval=2): |
206 | 206 | "name": fake.name(), |
207 | 207 | "telephone": fake.phone_number() |
208 | 208 | } |
209 | - }, | |
210 | - "value": { | |
209 | + }, | |
210 | + "value": { | |
211 | 211 | "amount": 50000, |
212 | 212 | "currency": u"UAH" |
213 | 213 | }, |
214 | 214 | "minimalStep": { |
215 | - "amount": 100, | |
216 | - "currency": u"UAH" | |
217 | - }, | |
215 | + "amount": 100, | |
216 | + "currency": u"UAH" | |
217 | + }, | |
218 | 218 | "items": [ |
219 | 219 | { |
220 | 220 | "description": fake.catch_phrase(), |
... | ... | @@ -236,7 +236,7 @@ def test_tender_data_multiple_lots(period_interval=2): |
236 | 236 | "scheme": u"CPV", |
237 | 237 | "id": u"44617100-9", |
238 | 238 | "description": u"Cartons", |
239 | - "description_ua": u"Картонки" | |
239 | + "description_ua": u"Картонки", | |
240 | 240 | }, |
241 | 241 | "additionalClassifications": [ |
242 | 242 | { |
... | ... | @@ -358,12 +358,12 @@ def test_tender_data_multiple_lots(period_interval=2): |
358 | 358 | } |
359 | 359 | ], |
360 | 360 | "enquiryPeriod": { |
361 | - "startDate": (now).isoformat(), | |
362 | - "endDate": (now + timedelta(minutes=1)).isoformat() | |
361 | + "startDate": (now + timedelta(minutes=3)).isoformat(), | |
362 | + "endDate": (now + timedelta(minutes=4)).isoformat() | |
363 | 363 | }, |
364 | 364 | "tenderPeriod": { |
365 | - "startDate": (now + timedelta(minutes=2)).isoformat(), | |
366 | - "endDate": (now + timedelta(minutes=(2+period_interval))).isoformat() | |
365 | + "startDate": (now + timedelta(minutes=4)).isoformat(), | |
366 | + "endDate": (now + timedelta(minutes=(5+period_interval))).isoformat() | |
367 | 367 | } |
368 | 368 | } |
369 | 369 | |
... | ... | @@ -465,7 +465,7 @@ def test_bid_data(): |
465 | 465 | } |
466 | 466 | } |
467 | 467 | }) |
468 | - | |
468 | + | |
469 | 469 | def auction_bid(): |
470 | 470 | return munchify({ |
471 | 471 | "data": {"value": { | ... | ... |
... | ... | @@ -25,9 +25,9 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
25 | 25 | |
26 | 26 | Можливість оголосити багатопредметний тендер |
27 | 27 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
28 | - ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | |
29 | - ${TENDER_ID}= Get From List ${ids} 0 | |
30 | - ${INTERNAL_TENDER_ID}= Get From List ${ids} 1 | |
28 | + ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | |
29 | + ${TENDER_ID}= Get From List ${ids} 0 | |
30 | + ${INTERNAL_TENDER_ID}= Get From List ${ids} 1 | |
31 | 31 | Set Global Variable ${INTERNAL_TENDER_ID} |
32 | 32 | Set Global Variable ${TENDER_ID} |
33 | 33 | ${LAST_MODIFICATION_DATE}= Get Current Date |
... | ... | @@ -36,12 +36,12 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
36 | 36 | Отримати багатопредметний тендер по ідентифікатору |
37 | 37 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
38 | 38 | Дочекатись синхронізації з майданчиком ${viewer} |
39 | - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID} | |
40 | - | |
39 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID} | |
40 | + | |
41 | 41 | Відображення опису позицій закупівлі багатопредметного тендера |
42 | 42 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
43 | 43 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} description |
44 | - | |
44 | + | |
45 | 45 | Відображення дати доставки позицій закупівлі багатопредметного тендера |
46 | 46 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
47 | 47 | Звірити дату предметів закупівлі багатопредметного тендера ${viewer} deliveryDate.endDate |
... | ... | @@ -49,11 +49,11 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
49 | 49 | Відображення координат широти доставки позицій закупівлі багатопредметного тендера |
50 | 50 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
51 | 51 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.latitude |
52 | - | |
52 | + | |
53 | 53 | Відображення координат довготи доставки позицій закупівлі багатопредметного тендера |
54 | 54 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
55 | 55 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.longitude |
56 | - | |
56 | + | |
57 | 57 | Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера |
58 | 58 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
59 | 59 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.countryName |
... | ... | @@ -61,53 +61,53 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
61 | 61 | Відображення пошт коду доставки позицій закупівлі багатопредметного тендера |
62 | 62 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
63 | 63 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.postalCode |
64 | - | |
64 | + | |
65 | 65 | Відображення регіону доставки позицій закупівлі багатопредметного тендера |
66 | 66 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
67 | 67 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.region |
68 | - | |
68 | + | |
69 | 69 | Відображення locality адреси доставки позицій закупівлі багатопредметного тендера |
70 | 70 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
71 | 71 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.locality |
72 | - | |
72 | + | |
73 | 73 | Відображення вулиці доставки позицій закупівлі багатопредметного тендера |
74 | 74 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
75 | 75 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.streetAddress |
76 | - | |
76 | + | |
77 | 77 | Відображення схеми класифікації позицій закупівлі багатопредметного тендера |
78 | 78 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
79 | 79 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.scheme |
80 | - | |
80 | + | |
81 | 81 | Відображення ідентифйікатора класифікації позицій закупівлі багатопредметного тендера |
82 | 82 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
83 | 83 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.id |
84 | - | |
84 | + | |
85 | 85 | Відображення опису класифікації позицій закупівлі багатопредметного тендера |
86 | 86 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
87 | 87 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.description |
88 | - | |
88 | + | |
89 | 89 | Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера |
90 | 90 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
91 | 91 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.scheme |
92 | - | |
92 | + | |
93 | 93 | Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера |
94 | 94 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
95 | 95 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.id |
96 | - | |
96 | + | |
97 | 97 | Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера |
98 | 98 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
99 | 99 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.description |
100 | - | |
100 | + | |
101 | 101 | Відображення назви одиниці позицій закупівлі багатопредметного тендера |
102 | 102 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
103 | 103 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.name |
104 | - | |
104 | + | |
105 | 105 | Відображення коду одиниці позицій закупівлі багатопредметного тендера |
106 | 106 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
107 | 107 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.code |
108 | - | |
108 | + | |
109 | 109 | Відображення кількості позицій закупівлі багатопредметного тендера |
110 | 110 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
111 | 111 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} quantity |
112 | - | |
113 | - | |
112 | + | |
113 | + | ... | ... |
1 | +#!/usr/bin/env python | |
1 | 2 | # -*- coding: utf-8 - |
2 | 3 | import os |
3 | 4 | from munch import munchify, Munch, fromYAML |
... | ... | @@ -22,9 +23,15 @@ from .initial_data import ( |
22 | 23 | import calendar |
23 | 24 | |
24 | 25 | TIMEZONE = timezone('Europe/Kiev') |
26 | + | |
25 | 27 | def get_date(): |
26 | 28 | return datetime.now().isoformat() |
27 | 29 | |
30 | +def convert_date_to_slash_format(isodate): | |
31 | + iso_dt=parse_date(isodate) | |
32 | + date_string = iso_dt.strftime("%d/%m/%Y") | |
33 | + return date_string | |
34 | + | |
28 | 35 | def convert_date_to_etender_format(isodate): |
29 | 36 | iso_dt=parse_date(isodate) |
30 | 37 | date_string = iso_dt.strftime("%d-%m-%Y") |
... | ... | @@ -168,4 +175,4 @@ def newtend_date_picker_index(isodate): |
168 | 175 | #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO")) |
169 | 176 | if now.day>iso_dt.day: |
170 | 177 | mod = calendar.monthrange(now.year, now.month)[1] + mod |
171 | - return mod + iso_dt.day | |
\ No newline at end of file | ||
178 | + return mod + iso_dt.day | ... | ... |
... | ... | @@ -26,6 +26,8 @@ ${question_id} 0 |
26 | 26 | *** Test Cases *** |
27 | 27 | Можливість оголосити однопредметний тендер |
28 | 28 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
29 | + log ${TEMPDIR} | |
30 | + log ${CURDIR} | |
29 | 31 | ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} |
30 | 32 | ${TENDER_ID}= Get From List ${ids} 0 |
31 | 33 | Set Global Variable ${TENDER_ID} |
... | ... | @@ -35,7 +37,6 @@ ${question_id} 0 |
35 | 37 | Можливасть додати тендерну документацію |
36 | 38 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ |
37 | 39 | ${filename}= Set Variable file.txt |
38 | - | |
39 | 40 | Викликати для учасника ${tender_owner} Завантажити документ ${filename} ${TENDER_ID} |
40 | 41 | |
41 | 42 | Можливість подати скаргу на умови |
... | ... | @@ -265,7 +266,7 @@ ${question_id} 0 |
265 | 266 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
266 | 267 | ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER_ID} ${biddingresponce0} |
267 | 268 | |
268 | -Подати цінову пропозицію bidder1 | |
269 | +Подати повторно цінову пропозицію першим учасником | |
269 | 270 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
270 | 271 | Дочекатись дати початоку прийому пропозицій |
271 | 272 | ${bid}= test bid data |
... | ... | @@ -274,7 +275,7 @@ ${question_id} 0 |
274 | 275 | Set Global Variable ${biddingresponce1} |
275 | 276 | log ${biddingresponce1} |
276 | 277 | |
277 | -Можливість змінити цінову пропозицію до 50000 | |
278 | +Можливість змінити повторну цінову пропозицію до 50000 | |
278 | 279 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
279 | 280 | Set To Dictionary ${biddingresponce1.data.value} amount 50000 |
280 | 281 | Log ${biddingresponce1.data.value} |
... | ... | @@ -282,23 +283,37 @@ ${question_id} 0 |
282 | 283 | Set Global Variable ${biddingresponce2} |
283 | 284 | log ${biddingresponce2} |
284 | 285 | |
285 | -Можливість змінити цінову пропозицію до 1 | |
286 | +Можливість змінити повторну цінову пропозицію до 400 | |
286 | 287 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
287 | - Set To Dictionary ${biddingresponce1.data.value} amount 1 | |
288 | + Set To Dictionary ${biddingresponce1.data.value} amount 400 | |
288 | 289 | Log ${biddingresponce1.data.value} |
289 | 290 | ${biddingresponce3}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1} |
290 | 291 | Set Global Variable ${biddingresponce3} |
291 | 292 | log ${biddingresponce3} |
292 | 293 | |
293 | -Завантажити документ першим учасником | |
294 | +Завантажити документ першим учасником в повторну пропозицію | |
294 | 295 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
295 | 296 | log ${USERS.users['${provider}'].broker} |
296 | 297 | log ${biddingresponce1} |
297 | 298 | ${bid_id}= get variable value ${biddingresponce1.data.id} |
298 | 299 | ${token1}= Get Variable Value ${biddingresponce1.access.token} |
299 | 300 | log ${token1} |
300 | - ${upload_doc_responce}= Викликати для учасника ${provider} Завантажити документ в ставку ${token1} ${bid_id} | |
301 | - Set Global Variable ${upload_doc_responce} | |
301 | + ${uploaded_file_data}= Викликати для учасника ${provider} Завантажити документ в ставку ${token1} ${bid_id} | |
302 | + log ${uploaded_file_data} | |
303 | + Set Global Variable ${uploaded_file_data} | |
304 | + | |
305 | + | |
306 | +порівняти документ | |
307 | + [Tags] ${USERS.users['${provider}'].broker}: вичитати документ | |
308 | + ${flcntnt}= Get From Dictionary ${uploaded_file_data} filecontent | |
309 | + ${resp}= Get From Dictionary ${uploaded_file_data} upload_responce | |
310 | + ${flpth}= Get From Dictionary ${uploaded_file_data} filepath | |
311 | + ${url} = Get Variable Value ${resp.data.url} | |
312 | + ${token1}= Get Variable Value ${biddingresponce1.access.token} | |
313 | + ${doc} ${flnnm}= Викликати для учасника ${provider} отримати документ ${TENDER_ID} ${url} ${token1} | |
314 | + Should Be Equal ${flcntnt} ${doc} | |
315 | + Should Be Equal ${flpth} ${flnnm} | |
316 | + | |
302 | 317 | |
303 | 318 | Можливість змінити документацію цінової пропозиції |
304 | 319 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
... | ... | @@ -306,7 +321,8 @@ ${question_id} 0 |
306 | 321 | log ${biddingresponce1} |
307 | 322 | ${bid_id}= get variable value ${biddingresponce1.data.id} |
308 | 323 | ${token1}= Get Variable Value ${biddingresponce1.access.token} |
309 | - ${upload_doc_responce_id}= get variable value ${upload_doc_responce.data.id} | |
324 | + ${resp}= Get From Dictionary ${uploaded_file_data} upload_responce | |
325 | + ${upload_doc_responce_id}= get variable value ${resp.data.id} | |
310 | 326 | log ${token1} |
311 | 327 | Викликати для учасника ${provider} Змінити документ в ставці ${token1} ${bid_id} ${upload_doc_responce_id} |
312 | 328 | |
... | ... | @@ -316,7 +332,7 @@ ${question_id} 0 |
316 | 332 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
317 | 333 | ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER_ID} ${questions[${question_id}]} |
318 | 334 | |
319 | -Подати цінову пропозицію bidder2 | |
335 | +Подати цінову пропозицію другим учасником | |
320 | 336 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
321 | 337 | Дочекатись дати початоку прийому пропозицій |
322 | 338 | ${bid}= test bid data |
... | ... | @@ -345,7 +361,6 @@ ${question_id} 0 |
345 | 361 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
346 | 362 | Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} |
347 | 363 | |
348 | - | |
349 | 364 | Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій |
350 | 365 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій |
351 | 366 | Дочекатись дати закінчення прийому пропозицій |
... | ... | @@ -384,7 +399,7 @@ ${question_id} 0 |
384 | 399 | log ${biddingresponce5} |
385 | 400 | ${bid_id}= get variable value ${biddingresponce5.data.id} |
386 | 401 | ${token1}= Get Variable Value ${biddingresponce5.access.token} |
387 | - ${upload_doc_responce_id2}= get variable value ${upload_doc_responce2.data.id} | |
402 | + ${upload_doc_responce_id2}= get variable value ${upload_doc_responce2[0].data.id} | |
388 | 403 | log ${upload_doc_responce_id2} |
389 | 404 | log ${token1} |
390 | 405 | Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id2} |
... | ... | @@ -396,14 +411,20 @@ ${question_id} 0 |
396 | 411 | log ${biddingresponce1} |
397 | 412 | ${bid_id}= get variable value ${biddingresponce1.data.id} |
398 | 413 | ${token1}= Get Variable Value ${biddingresponce1.access.token} |
399 | - ${upload_doc_responce_id}= get variable value ${upload_doc_responce.data.id} | |
414 | + ${upload_doc_responce_id}= get variable value ${upload_doc_responce[0].data.id} | |
400 | 415 | log ${token1} |
401 | 416 | Викликати для учасника ${provider} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id} |
402 | 417 | |
403 | - | |
404 | 418 | Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій |
405 | 419 | [Tags] ${USERS.users['${provider}'].broker}: Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій |
406 | 420 | ${biddingresponce8}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} |
407 | 421 | Set Global Variable ${biddingresponce8} |
408 | 422 | log ${biddingresponce8} |
409 | 423 | |
424 | +Вичитати цінову пропозицію | |
425 | + sleep 120 | |
426 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | |
427 | + ${bid_id} = get variable value ${biddingresponce1.data.id} | |
428 | + ${token1}= Get Variable Value ${biddingresponce1.access.token} | |
429 | + ${bids}= Викликати для учасника ${provider} Отримати пропозиції ${TENDER_ID} ${bid_id} ${token1} | |
430 | + log ${bids} | |
\ No newline at end of file | ... | ... |
Please
register
or
login
to post a comment