Commit f451e93abf997c640da029f63d718ab2f1ac491a

Authored by SavchukRoman
1 parent 601fbee2

Додано метод local_path_to_file у service_keyword.py, Переписано задати питання …

…і відповісти на питання
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 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 8
18 9 *** Keywords ***
19   -Підготувати дані для оголошення тендера
20   - ${INITIAL_TENDER_DATA}= prepare_test_tender_data
21   - [return] ${INITIAL_TENDER_DATA}
22   -
23 10 Підготувати клієнт для користувача
24 11 [Arguments] @{ARGUMENTS}
25 12 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
... ... @@ -27,7 +14,6 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
27 14 Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
28 15 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
29 16 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
30   -
31 17 # login
32 18 Wait Until Page Contains Element id=inputUsername 100
33 19 Input text id=inputUsername ${USERS.users['${username}'].login}
... ... @@ -40,32 +26,30 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
40 26 [Documentation]
41 27 ... ${ARGUMENTS[0]} == username
42 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 36 ${quantity}= Get From Dictionary ${items[0]} quantity
51 37 ${cpv}= Get From Dictionary ${items[0].classification} id
52   - ${cpv_id}= Get From Dictionary ${items[0].classification} id
53 38 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
54 39 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
55 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 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 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 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 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 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 52 ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time}
68   -
69 53 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
70 54 Wait Until Page Contains Мої закупівлі 100
71 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 63 Input text id=minimalStep ${step_rate}
80 64 Input text id=itemsDescription ${items_description}
81 65 Input text id=itemsQuantity ${quantity}
  66 + Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 100
82 67 Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram']
83 68 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date}
84 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 90 Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a
106 91 ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid
107 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 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 106 get tender UAid
114 107 ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")]
115 108 ${tender_UAid}= Get Substring ${tender_UAid} 7 27
116 109
117   -
118 110 Oтримати internal id по UAid
119 111 [Arguments] @{ARGUMENTS}
120 112 [Documentation]
121 113 ... ${ARGUMENTS[0]} == username
122   - ... ${ARGUMENTS[1]} == tenderid
  114 + ... ${ARGUMENTS[1]} == ${tender_UAid}
123 115 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
124 116 ${current_location}= Get Location
125 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 119 ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2
128   - log ${tender_id}
129 120 [return] ${tender_id}
130 121
131 122 Додати предмет
... ... @@ -142,31 +133,24 @@ Oтримати internal id по UAid
142 133 Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100
143 134 Click Element xpath=.//*[@id='myform']/tender-form/div/button
144 135 Sleep 2
145   - Wait Until Page Contains Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2] 100
146 136 Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2]
147 137 Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]
148 138 Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc1}
149 139 Wait Until Page Contains ${dkpp_id1}
150 140 Click Element xpath=//td[contains(., '${dkpp_id1}')]
151 141 Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()']
152   -
153 142 Sleep 2
154   - Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100
155 143 Click Element xpath=.//*[@id='myform']/tender-form/div/button
156 144 Sleep 2
157   - Wait Until Page Contains Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3] 100
158 145 Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3]
159 146 Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]
160 147 Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc2}
161 148 Wait Until Page Contains ${dkpp_id2}
162 149 Click Element xpath=//td[contains(., '${dkpp_id2}')]
163 150 Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()']
164   -
165 151 Sleep 2
166   - Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100
167 152 Click Element xpath=.//*[@id='myform']/tender-form/div/button
168 153 Sleep 2
169   - Wait Until Page Contains Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4] 100
170 154 Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4]
171 155 Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]
172 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 158 Click Element xpath=//td[contains(., '${dkpp_id3}')]
175 159 Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()']
176 160
177   -
178 161 Пошук тендера по ідентифікатору
179 162 [Arguments] @{ARGUMENTS}
180 163 [Documentation]
181 164 ... ${ARGUMENTS[0]} == username
182   - ... ${ARGUMENTS[1]} == tenderId
183   -
  165 + ... ${ARGUMENTS[1]} == ${TENDER_UAID}
184 166 Switch browser ${ARGUMENTS[0]}
185 167 Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
186 168 Wait Until Page Contains Список закупівель 10
... ... @@ -193,6 +175,57 @@ Oтримати internal id по UAid
193 175 sleep 1
194 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 230 [Arguments] @{ARGUMENTS}
198 231 [Documentation]
... ... @@ -327,54 +360,3 @@ Oтримати internal id по UAid
327 360 відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last>
328 361 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
329 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]
\ No newline at end of file
... ...
... ... @@ -5,15 +5,7 @@ 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)>
  8 +${file_path} local_path_to_file("TestDocument.docx")
17 9
18 10 *** Keywords ***
19 11 Підготувати клієнт для користувача
... ... @@ -23,16 +15,11 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
23 15 Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]}
24 16 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
25 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 20 Wait Until Page Contains Element jquery=a[href="/cabinet"]
34 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 23 # Input text name=email mail
37 24 Sleep 1
38 25 Input text name=email ${USERS.users['${username}'].login}
... ... @@ -41,20 +28,29 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
41 28 Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100
42 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 41 [Arguments] @{ARGUMENTS}
46 42 [Documentation]
47 43 ... ${ARGUMENTS[0]} == username
48 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 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 54 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
59 55 ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date}
60 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 59 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
64 60 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
65 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 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 65 ${end_date}= convert_date_to_slash_format ${end_date}
70 66
71 67 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
... ... @@ -80,6 +76,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
80 76 Input text name=items[0][item_quantity] ${quantity}
81 77 Input text name=items[0][item_deliveryAddress_countryName] ${countryName}
82 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 82 Click Element xpath=//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником']
84 83 Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')]
85 84 Input text id=search ${cpv}
... ... @@ -102,11 +101,18 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
102 101 Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100
103 102 Click Element xpath=//a[contains(@class, 'button pubBtn')]
104 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 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 117 [Arguments] @{ARGUMENTS}
112 118 [Documentation]
... ... @@ -179,17 +185,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
179 185 Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date}
180 186 Input text name=tender_tenderPeriod_endDate ${end_date}
181 187
182   -
183 188 Пошук тендера по ідентифікатору
184 189 [Arguments] @{ARGUMENTS}
185 190 [Documentation]
186 191 ... ${ARGUMENTS[0]} == username
187 192 ... ${ARGUMENTS[1]} == tenderId
188   - ... ${ARGUMENTS[2]} == id
189 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 195 Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
194 196 Wait Until Page Contains Держзакупівлі.онлайн 10
195 197 # sleep 1
... ... @@ -205,13 +207,13 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
205 207 [Arguments] @{ARGUMENTS}
206 208 [Documentation]
207 209 ... ${ARGUMENTS[0]} == username
208   - ... ${ARGUMENTS[1]} == tenderId
209   - ... ${ARGUMENTS[2]} == id
  210 + ... ${ARGUMENTS[1]} == tenderUaId
  211 + ... ${ARGUMENTS[2]} == questionId
210 212 ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
211 213 ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
212 214
213 215 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
214   - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  216 + netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
215 217
216 218 Click Element xpath=//a[@class='reverse tenderLink']
217 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 229 [Arguments] @{ARGUMENTS}
228 230 [Documentation]
229 231 ... ${ARGUMENTS[0]} = username
230   - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
  232 + ... ${ARGUMENTS[1]} = tenderUaId
231 233 ... ${ARGUMENTS[2]} = 0
232 234 ... ${ARGUMENTS[3]} = answer_data
233 235
234 236 ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer
235 237 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
236   - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  238 + netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
237 239
238 240 Click Element xpath=//a[@class='reverse tenderLink']
239 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 9 *** Keywords ***
10 10 отримати internal id по UAid
11 11 [Arguments] @{ARGUMENTS}
12   - [Documentation]
  12 + [Documentation]
13 13 ... ${ARGUMENTS[0]} == username
14 14 ... ${ARGUMENTS[1]} == tenderid
15 15 log many @{ARGUMENTS}
... ... @@ -42,10 +42,11 @@ ${question_id} 0
42 42 Log object data ${TENDER_DATA} cteated_tender
43 43 ${access_token}= Get Variable Value ${TENDER_DATA.access.token}
44 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 52 [Arguments] @{ARGUMENTS}
... ... @@ -66,19 +67,16 @@ ${question_id} 0
66 67 [Documentation]
67 68 ... ${ARGUMENTS[0]} == username
68 69 ... ${ARGUMENTS[1]} == tenderId
69   - ... ${ARGUMENTS[2]} == id
70 70 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
71 71 ${tender_data}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
72 72 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} tender_data ${tender_data}
73 73 [return] ${tender_data}
74 74
75   -
76 75 Обновити сторінку з тендером
77 76 [Arguments] @{ARGUMENTS}
78 77 [Documentation]
79 78 ... ${ARGUMENTS[0]} == username
80 79 ... ${ARGUMENTS[1]} == tenderId
81   - ... ${ARGUMENTS[2]} == id
82 80 openprocurement_client.Пошук тендера по ідентифікатору @{ARGUMENTS}
83 81
84 82 отримати інформацію із тендера
... ... @@ -149,13 +147,13 @@ ${question_id} 0
149 147 Set_To_Object ${TENDER_DATA.data} items ${items}
150 148 ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token}
151 149 ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA}
152   -
  150 +
153 151
154 152 Задати питання
155 153 [Documentation]
156 154 ... ${ARGUMENTS[0]} == username
157 155 ... ${ARGUMENTS[1]} == tender_uid
158   - ... ${ARGUMENTS[2]} == bid
  156 + ... ${ARGUMENTS[2]} == question
159 157 [Arguments] @{ARGUMENTS}
160 158 log many @{ARGUMENTS}
161 159 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
... ... @@ -163,7 +161,7 @@ ${question_id} 0
163 161 log ${USERS.users['${ARGUMENTS[0]}']}
164 162 ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]}
165 163 [return] ${biddingresponce}
166   -
  164 +
167 165 Відповісти на питання
168 166 [Documentation]
169 167 ... ${ARGUMENTS[0]} == username
... ... @@ -192,7 +190,7 @@ ${question_id} 0
192 190 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
193 191 ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints
194 192 Log object data ${complaint} complaint
195   -
  193 +
196 194 порівняти скаргу
197 195 [Documentation]
198 196 ... ${ARGUMENTS[0]} == username
... ... @@ -209,7 +207,7 @@ ${question_id} 0
209 207 #:FOR ${element} IN ${ARGUMENTS[2].data}
210 208 #\ log ${element}
211 209 #\ Dictionary Should Contain Value ${complaint} ${element}
212   -
  210 +
213 211 Обробити скаргу
214 212 [Documentation]
215 213 ... ${ARGUMENTS[0]} == username
... ... @@ -238,7 +236,7 @@ ${question_id} 0
238 236 log ${tender}отримати
239 237 ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]}
240 238 [return] ${biddingresponce}
241   -
  239 +
242 240 Змінити цінову пропозицію
243 241 [Documentation]
244 242 ... ${ARGUMENTS[0]} == username
... ... @@ -264,7 +262,7 @@ ${question_id} 0
264 262 ${changed_bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_bid ${tender} ${ARGUMENTS[2]}
265 263 Log ${changed_bid}
266 264 [return] ${changed_bid}
267   -
  265 +
268 266 Прийняти цінову пропозицію
269 267 [Documentation]
270 268 ... ${ARGUMENTS[0]} == username
... ... @@ -281,42 +279,49 @@ ${question_id} 0
281 279 Завантажити документ в ставку
282 280 [Documentation]
283 281 ... ${ARGUMENTS[0]} == username
284   - ... ${ARGUMENTS[1]} == token
285   - ... ${ARGUMENTS[2]} == bid_id
  282 + ... ${ARGUMENTS[1]} == path
  283 + ... ${ARGUMENTS[2]} == tenderid
286 284 [Arguments] @{ARGUMENTS}
287 285 log ${ARGUMENTS[0]}
288 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 299 [Documentation]
299 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 304 [Arguments] @{ARGUMENTS}
304 305 log ${ARGUMENTS[0]}
305 306 log ${ARGUMENTS[1]}
306 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 321 [Documentation]
317 322 ... ${ARGUMENTS[0]} == username
318   - ... ${ARGUMENTS[1]} == filename
319   - ... ${ARGUMENTS[2]} == tenderID
  323 + ... ${ARGUMENTS[1]} == filepath
  324 + ... ${ARGUMENTS[2]} == tenderUAID
320 325 [Arguments] @{ARGUMENTS}
321 326 log ${ARGUMENTS[0]}
322 327 log ${ARGUMENTS[1]}
... ... @@ -324,7 +329,36 @@ ${question_id} 0
324 329 ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]}
325 330 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID}
326 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 333 Log object data ${reply} reply
330   -
\ No newline at end of file
  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}
\ No newline at end of file
... ...
... ... @@ -3,14 +3,152 @@ Library Selenium2Screenshots
3 3 Library String
4 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 12 *** Keywords ***
7 13 Підготувати клієнт для користувача
8   - [Arguments] ${username}
  14 + [Arguments] @{ARGUMENTS}
9 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 154 [Arguments] @{ARGUMENTS}
... ...
... ... @@ -29,3 +29,15 @@ Netcast:
29 29 password: uStudio
30 30 timout_on_wait: 15
31 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
\ No newline at end of file
... ...
... ... @@ -27,7 +27,7 @@ users:
27 27 login: st_org
28 28 password: 12345678
29 29 browser: firefox
30   - position: [0, 0]
  30 + position: [700, 0]
31 31 size: [640, 450]
32 32 E-tender_Provider2:
33 33 broker: E-tender
... ... @@ -41,7 +41,7 @@ users:
41 41 E-tender_Viewer:
42 42 broker: E-tender
43 43 username: E-tendertest
44   - browser: chrome
  44 + browser: firefox
45 45 position: [0, 0]
46 46 size: [640, 450]
47 47 Prom_Owner:
... ... @@ -74,6 +74,15 @@ users:
74 74 browser: chrome
75 75 position: [0, 450]
76 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 86 Netcast_Owner:
78 87 broker: Netcast
79 88 username: Netcasttest
... ... @@ -81,7 +90,7 @@ users:
81 90 login: ovramet.s@gmail.com
82 91 password: Password1
83 92 browser: firefox
84   - position: [0, 1080]
  93 + position: [0, 0]
85 94 size: [1920, 1080]
86 95 Netcast_Provider1:
87 96 broker: Netcast
... ... @@ -90,5 +99,29 @@ users:
90 99 login: halyna.khimka@gmail.com
91 100 password: JHO5VUp5n
92 101 browser: firefox
93   - position: [0, 1080]
94   - size: [1920, 1080]
\ No newline at end of file
  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]
\ No newline at end of file
... ...
... ... @@ -6,6 +6,14 @@ from faker import Factory
6 6 fake = Factory.create('uk_UA')
7 7 fake_ru = Factory.create('ru')
8 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 18 def test_tender_data(period_interval=2):
11 19 now = datetime.now()
... ... @@ -83,8 +91,8 @@ def test_tender_data(period_interval=2):
83 91 }
84 92 ],
85 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 97 "tenderPeriod": {
90 98 "startDate": (now + timedelta(minutes=2)).isoformat(),
... ... @@ -134,7 +142,7 @@ def prom_test_tender_data():
134 142 {
135 143 "description": fake.catch_phrase(),
136 144 "deliveryDate": {
137   - "startDate": (now + timedelta(days=4)).isoformat(),
  145 + "startDate": (now + timedelta(days=4)).isoformat(),
138 146 "endDate": (now + timedelta(days=5)).isoformat()
139 147 },
140 148 "deliveryLocation": {
... ... @@ -151,7 +159,7 @@ def prom_test_tender_data():
151 159 "classification": {
152 160 "scheme": u"CPV",
153 161 "id": u"44617100-9",
154   - "description": u"Cartons"
  162 + "description": u"Cartons",
155 163 },
156 164 "additionalClassifications": [
157 165 {
... ... @@ -180,40 +188,40 @@ def prom_test_tender_data():
180 188 def test_tender_data_multiple_lots(period_interval=2):
181 189 now = datetime.now()
182 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 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 226 "items": [
219 227 {
... ... @@ -270,7 +278,8 @@ def test_tender_data_multiple_lots(period_interval=2):
270 278 "classification": {
271 279 "scheme": u"CPV",
272 280 "id": u"44617100-9",
273   - "description": u"Cartons"
  281 + "description": u"Cartons",
  282 + "description_ua": u"Картонки"
274 283 },
275 284 "additionalClassifications": [
276 285 {
... ... @@ -304,7 +313,8 @@ def test_tender_data_multiple_lots(period_interval=2):
304 313 "classification": {
305 314 "scheme": u"CPV",
306 315 "id": u"44617100-9",
307   - "description": u"Cartons"
  316 + "description": u"Cartons",
  317 + "description_ua": u"Картонки"
308 318 },
309 319 "additionalClassifications": [
310 320 {
... ... @@ -338,7 +348,8 @@ def test_tender_data_multiple_lots(period_interval=2):
338 348 "classification": {
339 349 "scheme": u"CPV",
340 350 "id": u"44617100-9",
341   - "description": u"Cartons"
  351 + "description": u"Cartons",
  352 + "description_ua": u"Картонки"
342 353 },
343 354 "additionalClassifications": [
344 355 {
... ... @@ -355,12 +366,12 @@ def test_tender_data_multiple_lots(period_interval=2):
355 366 }
356 367 ],
357 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 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 473 }
463 474 }
464 475 })
465   -
  476 +
466 477 def auction_bid():
467 478 return munchify({
468 479 "data": {"value": {
... ...
... ... @@ -56,6 +56,9 @@ TestSuiteSetup
56 56 Set Global Variable ${REPLIES}
57 57 ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode}
58 58 Set Global Variable ${INITIAL_TENDER_DATA}
  59 + ${TENDER}= Create Dictionary
  60 + Set Global Variable ${TENDER}
  61 + Log ${TENDER}
59 62 Log ${INITIAL_TENDER_DATA}
60 63
61 64 Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки
... ... @@ -71,7 +74,7 @@ TestSuiteSetup
71 74 ... ${ARGUMENTS[2]} == id
72 75
73 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 78 ${wait_timout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait} ${delta}
76 79 Run Keyword If ${wait_timout}>0 Sleep ${wait_timout}
77 80
... ... @@ -83,23 +86,29 @@ TestSuiteSetup
83 86 Звірити поле
84 87 [Arguments] ${username} ${field} ${subject}
85 88 ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
  89 + Should Not Be Equal ${field_response} ${None}
86 90 Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker}
87 91
88 92 Звірити поле створеного тендера
89 93 [Arguments] ${initial} ${tender_data} ${field}
90 94 ${field_value}= Get_From_Object ${initial} ${field}
91 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 98 Should Be Equal ${field_value} ${field_response}
93 99
94 100 Звірити дату тендера
95 101 [Arguments] ${username} ${field}
96 102 ${isodate}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field}
  103 + Should Not Be Equal ${isodate} ${None}
97 104 Звірити дату ${username} ${field} ${isodate}
98 105
99 106 Звірити дату
100 107 [Arguments] ${username} ${field} ${subject}
101 108 ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
102 109 ${returned}= compare_date ${subject} ${field_date}
  110 + Should Not Be Equal ${field_date} ${None}
  111 + Should Not Be Equal ${returned} ${None}
103 112 Should Be True '${returned}' == 'True'
104 113
105 114 Звірити поля предметів закупівлі багатопредметного тендера
... ...
  1 +#!/usr/bin/env python
1 2 # -*- coding: utf-8 -
2 3 import os
3 4 from munch import munchify, Munch, fromYAML
... ... @@ -17,8 +18,9 @@ import time
17 18 from .initial_data import (
18 19 test_tender_data, test_question_data, test_question_answer_data,
19 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 25 TIMEZONE = timezone('Europe/Kiev')
24 26
... ... @@ -161,4 +163,29 @@ def wait_to_date(date_stamp):
161 163 wait_seconds += 2
162 164 if wait_seconds < 0:
163 165 return 0
164   - return wait_seconds
\ No newline at end of file
  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
\ No newline at end of file
... ...
... ... @@ -26,36 +26,43 @@ ${question_id} 0
26 26 *** Test Cases ***
27 27 Можливість оголосити однопредметний тендер
28 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 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 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 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 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 55 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
49   - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  56 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
50 57
51 58 можливість побачити скаргу анонімом
52 59 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
53   - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  60 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
54 61
55 62 Пошук однопредметного тендера по ідентифікатору
56 63 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору
57 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 84 Відображення tenderID оголошеного тендера
78 85 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
79 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 89 Відображення procuringEntity.name оголошеного тендера
83 90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
... ... @@ -103,26 +110,18 @@ ${question_id} 0
103 110 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
104 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 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 177
179 178 Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера
180 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 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 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 191 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
... ... @@ -205,14 +204,14 @@ ${question_id} 0
205 204
206 205 Задати питання
207 206 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання
208   - Викликати для учасника ${provider} Задати питання ${TENDER_ID} ${QUESTIONS[${question_id}]}
  207 + Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]}
209 208 ${now}= Get Current Date
210 209 Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now}
211 210
212 211 Відображення заголовоку анонімного питання без відповіді
213 212 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
214 213 Дочекатись синхронізації з майданчиком ${viewer}
215   - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID}
  214 + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']}
216 215 Звірити поле ${viewer} questions[${question_id}].title ${QUESTIONS[${question_id}].data.title}
217 216
218 217 Відображення опис анонімного питання без відповіді
... ... @@ -227,183 +226,181 @@ ${question_id} 0
227 226 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
228 227 ${bid}= test bid data
229 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 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 241 ${now}= Get Current Date
239 242 Set To Dictionary ${ANSWERS[${question_id}].data} date ${now}
240 243
241 244 Відображення відповіді на запитання
242 245 [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання
243 246 Дочекатись синхронізації з майданчиком ${viewer}
244   - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID}
  247 + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']}
245 248 Звірити поле ${viewer} questions[${question_id}].answer ${ANSWERS[${question_id}].data.answer}
246 249
247 250 Можливість побачити скаргу користувачем під час періоду уточнень
248 251 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
249   - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  252 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
250 253
251 254 можливість побачити скаргу анонімом під час періоду уточнень
252 255 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
253   - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  256 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
254 257
255 258 Подати цінову пропозицію bidder
256 259 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
257 260 Дочекатись дати початоку прийому пропозицій
258 261 ${bid}= test bid data
259 262 Log ${bid}
260   - ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_ID} ${bid}
  263 + ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
261 264 Set Global Variable ${biddingresponce0}
262 265 log ${biddingresponce0}
263 266
264 267 Можливість скасувати цінову пропозицію
265 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 272 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
270 273 Дочекатись дати початоку прийому пропозицій
271 274 ${bid}= test bid data
272 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 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 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 298 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
295 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 315 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
305 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 324 [Documentation]
315 325 ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed"
316 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 330 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
321 331 Дочекатись дати початоку прийому пропозицій
322 332 ${bid}= test bid data
323 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 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 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 356 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
342   - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  357 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
343 358
344 359 можливість побачити скаргу анонімом під час подачі пропозицій
345 360 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
346   - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
347   -
  361 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
348 362
349 363 Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій
350 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 372 Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій
359 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}
\ No newline at end of file
... ...
Please register or login to post a comment