Commit 195c06630e27ecda5542f93d84e0bb0ff23f0c40

Authored by SavchukRoman
2 parents 45c54ed5 d78942d6

Merge branches 'netcast' and 'master' into netcast

@@ -5,6 +5,12 @@ Library DateTime @@ -5,6 +5,12 @@ Library DateTime
5 5
6 *** Variables *** 6 *** Variables ***
7 ${locator.tenderId} jquery=h3 7 ${locator.tenderId} jquery=h3
  8 +##Використовую такий шлях у кожного буде мінятись /yboi/. Міняйте на сві шлях до файлу
  9 +${file_add} /home/yboi/openprocurement.robottests.buildout/Document.docx
  10 +${locator.title} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[6]
  11 +${locator.description} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[7]
  12 +${locator.minimalStep.amount} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[9]
  13 +${locator.value.amount} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[8]
8 14
9 *** Keywords *** 15 *** Keywords ***
10 Підготувати клієнт для користувача 16 Підготувати клієнт для користувача
@@ -14,7 +20,9 @@ ${locator.tenderId} jquery=h3 @@ -14,7 +20,9 @@ ${locator.tenderId} jquery=h3
14 Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]} 20 Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
15 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} 21 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
16 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} 22 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
17 -# login 23 + Run Keyword If '${username}' != 'E-tender_Viewer' Login
  24 +
  25 +Login
18 Wait Until Page Contains Element id=inputUsername 100 26 Wait Until Page Contains Element id=inputUsername 100
19 Input text id=inputUsername ${USERS.users['${username}'].login} 27 Input text id=inputUsername ${USERS.users['${username}'].login}
20 Wait Until Page Contains Element id=inputPassword 100 28 Wait Until Page Contains Element id=inputPassword 100
@@ -25,35 +33,35 @@ ${locator.tenderId} jquery=h3 @@ -25,35 +33,35 @@ ${locator.tenderId} jquery=h3
25 [Arguments] @{ARGUMENTS} 33 [Arguments] @{ARGUMENTS}
26 [Documentation] 34 [Documentation]
27 ... ${ARGUMENTS[0]} == username 35 ... ${ARGUMENTS[0]} == username
28 - ... ${ARGUMENTS[1]} == tender_data  
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 36 + ... ${ARGUMENTS[1]} == initial_tender_data
  37 + ${prepared_tender_data}= Add_data_for_GUI_FrontEnds ${ARGUMENTS[1]}
  38 + ${items}= Get From Dictionary ${prepared_tender_data.data} items
  39 + ${title}= Get From Dictionary ${prepared_tender_data.data} title
  40 + ${description}= Get From Dictionary ${prepared_tender_data.data} description
  41 + ${budget}= Get From Dictionary ${prepared_tender_data.data.value} amount
  42 + ${step_rate}= Get From Dictionary ${prepared_tender_data.data.minimalStep} amount
  43 + ${items_description}= Get From Dictionary ${prepared_tender_data.data} description
36 ${quantity}= Get From Dictionary ${items[0]} quantity 44 ${quantity}= Get From Dictionary ${items[0]} quantity
37 ${cpv}= Get From Dictionary ${items[0].classification} id 45 ${cpv}= Get From Dictionary ${items[0].classification} id
38 - ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description  
39 - ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id  
40 ${unit}= Get From Dictionary ${items[0].unit} name 46 ${unit}= Get From Dictionary ${items[0].unit} name
41 - ${start_date}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate 47 + ${start_date}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} startDate
42 ${start_date}= convert_date_to_etender_format ${start_date} 48 ${start_date}= convert_date_to_etender_format ${start_date}
43 - ${start_time}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate 49 + ${start_time}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} startDate
44 ${start_time}= convert_time_to_etender_format ${start_time} 50 ${start_time}= convert_time_to_etender_format ${start_time}
45 - ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate 51 + ${end_date}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} endDate
46 ${end_date}= convert_date_to_etender_format ${end_date} 52 ${end_date}= convert_date_to_etender_format ${end_date}
47 - ${end_time}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate 53 + ${end_time}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} endDate
48 ${end_time}= convert_time_to_etender_format ${end_time} 54 ${end_time}= convert_time_to_etender_format ${end_time}
49 - ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate 55 + ${enquiry_end_date}= Get From Dictionary ${prepared_tender_data.data.enquiryPeriod} endDate
50 ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date} 56 ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date}
51 - ${enquiry_end_time}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate 57 + ${enquiry_end_time}= Get From Dictionary ${prepared_tender_data.data.enquiryPeriod} endDate
52 ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time} 58 ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time}
53 Selenium2Library.Switch Browser ${ARGUMENTS[0]} 59 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
54 - Wait Until Page Contains Мої закупівлі 100 60 + Wait Until Page Contains Мої закупівлі 100
  61 + Sleep 1
55 Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі'] 62 Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі']
56 Wait Until Page Contains Element xpath=//a[contains(@class, 'btn btn-info')] 63 Wait Until Page Contains Element xpath=//a[contains(@class, 'btn btn-info')]
  64 + Sleep 1
57 Click Element xpath=//a[contains(@class, 'btn btn-info')] 65 Click Element xpath=//a[contains(@class, 'btn btn-info')]
58 Wait Until Page Contains Element id=title 66 Wait Until Page Contains Element id=title
59 Input text id=title ${title} 67 Input text id=title ${title}
@@ -63,7 +71,7 @@ ${locator.tenderId} jquery=h3 @@ -63,7 +71,7 @@ ${locator.tenderId} jquery=h3
63 Input text id=minimalStep ${step_rate} 71 Input text id=minimalStep ${step_rate}
64 Input text id=itemsDescription ${items_description} 72 Input text id=itemsDescription ${items_description}
65 Input text id=itemsQuantity ${quantity} 73 Input text id=itemsQuantity ${quantity}
66 - Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 100 74 + Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram']
67 Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 75 Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram']
68 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date} 76 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date}
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} 77 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}
@@ -71,26 +79,28 @@ ${locator.tenderId} jquery=h3 @@ -71,26 +79,28 @@ ${locator.tenderId} jquery=h3
71 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.startDate'] ${start_time} 79 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.startDate'] ${start_time}
72 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='endDate'] ${end_date} 80 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='endDate'] ${end_date}
73 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.endDate'] ${end_time} 81 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.endDate'] ${end_time}
  82 + Sleep 2
74 Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#classification'] 83 Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#classification']
75 - Wait Until Element Is Visible xpath=//div[contains(@role,'dialog')] 84 + Sleep 1
76 Input text xpath=//div[contains(@class, 'modal-content')]//input[@ng-model='searchstring'] ${cpv} 85 Input text xpath=//div[contains(@class, 'modal-content')]//input[@ng-model='searchstring'] ${cpv}
  86 + Sleep 2
77 Wait Until Page Contains ${cpv} 87 Wait Until Page Contains ${cpv}
78 Click Element xpath=//td[contains(., '${cpv}')] 88 Click Element xpath=//td[contains(., '${cpv}')]
  89 + Sleep 1
79 Click Element xpath=//div[contains(@class, 'modal-content')]//button[@ng-click='choose()'] 90 Click Element xpath=//div[contains(@class, 'modal-content')]//button[@ng-click='choose()']
80 - Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification']  
81 - Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]  
82 - Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc}  
83 - Wait Until Page Contains ${dkpp_id}  
84 - Click Element xpath=//td[contains(., '${dkpp_id}')]  
85 - Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()']  
86 - Run Keyword if '${mode}' == 'multi' Додати предмет items 91 + Sleep 1
  92 + Додати предмет ${items[0]} 0
  93 + Run Keyword if '${mode}' == 'multi' Додати багато предметів items
  94 + Sleep 1
87 Wait Until Page Contains Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] 95 Wait Until Page Contains Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
88 Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] 96 Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
  97 + Sleep 1
89 Wait Until Page Contains [ТЕСТУВАННЯ] 100 98 Wait Until Page Contains [ТЕСТУВАННЯ] 100
90 - Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a  
91 - ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid  
92 -### harcode Idis bacause issues on the E-tender side, to remove, 1 line:  
93 - ${tender_UAid}= Convert To String UA-2015-08-03-000025 99 + Sleep 20
  100 + Click Element xpath=//*[text()='${title}']
  101 + Sleep 5
  102 + ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")]
  103 + ${tender_UAid}= Get Substring ${tender_UAid} 10
94 ${Ids}= Convert To String ${tender_UAid} 104 ${Ids}= Convert To String ${tender_UAid}
95 Run keyword if '${mode}' == 'multi' Set Multi Ids ${ARGUMENTS[0]} ${tender_UAid} 105 Run keyword if '${mode}' == 'multi' Set Multi Ids ${ARGUMENTS[0]} ${tender_UAid}
96 [return] ${Ids} 106 [return] ${Ids}
@@ -98,14 +108,10 @@ ${locator.tenderId} jquery=h3 @@ -98,14 +108,10 @@ ${locator.tenderId} jquery=h3
98 Set Multi Ids 108 Set Multi Ids
99 [Arguments] @{ARGUMENTS} 109 [Arguments] @{ARGUMENTS}
100 [Documentation] 110 [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 -  
106 -get tender UAid  
107 - ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")]  
108 - ${tender_UAid}= Get Substring ${tender_UAid} 7 27 111 + ... ${ARGUMENTS[0]} == ${tender_UAid}
  112 + ${current_location}= Get Location
  113 + ${id}= Get Substring ${current_location} 10
  114 + ${Ids}= Create List ${tender_UAid} ${id}
109 115
110 Oтримати internal id по UAid 116 Oтримати internal id по UAid
111 [Arguments] @{ARGUMENTS} 117 [Arguments] @{ARGUMENTS}
@@ -115,48 +121,34 @@ Oтримати internal id по UAid @@ -115,48 +121,34 @@ Oтримати internal id по UAid
115 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} 121 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
116 ${current_location}= Get Location 122 ${current_location}= Get Location
117 ${tender_id}= Fetch From Right ${current_location} / 123 ${tender_id}= Fetch From Right ${current_location} /
118 -## harcode Idis bacause issues on the E-tender side, to remove, 1 line:  
119 - ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2  
120 [return] ${tender_id} 124 [return] ${tender_id}
121 125
122 Додати предмет 126 Додати предмет
123 [Arguments] @{ARGUMENTS} 127 [Arguments] @{ARGUMENTS}
124 [Documentation] 128 [Documentation]
125 ... ${ARGUMENTS[0]} == items 129 ... ${ARGUMENTS[0]} == items
126 - ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description  
127 - ${dkpp_id1}= Get From Dictionary ${items[1].additionalClassifications[0]} id  
128 - ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description  
129 - ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id  
130 - ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description  
131 - ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id  
132 -  
133 - Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100  
134 - Click Element xpath=.//*[@id='myform']/tender-form/div/button 130 + ... ${ARGUMENTS[1]} == ${INDEX}
  131 + ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description
  132 + ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id
135 Sleep 2 133 Sleep 2
136 - Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2] 134 + Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[${ARGUMENTS[1]}+1]
137 Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] 135 Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]
138 - Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc1}  
139 - Wait Until Page Contains ${dkpp_id1}  
140 - Click Element xpath=//td[contains(., '${dkpp_id1}')]  
141 - Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()']  
142 - Sleep 2  
143 - Click Element xpath=.//*[@id='myform']/tender-form/div/button  
144 Sleep 2 136 Sleep 2
145 - Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3]  
146 - Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]  
147 - Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc2}  
148 - Wait Until Page Contains ${dkpp_id2}  
149 - Click Element xpath=//td[contains(., '${dkpp_id2}')] 137 + Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc}
  138 + Wait Until Page Contains ${dkpp_id}
  139 + Sleep 1
  140 + Click Element xpath=//td[contains(., '${dkpp_id}')]
150 Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] 141 Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()']
151 Sleep 2 142 Sleep 2
152 - Click Element xpath=.//*[@id='myform']/tender-form/div/button  
153 - Sleep 2  
154 - Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4]  
155 - Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]  
156 - Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc3}  
157 - Wait Until Page Contains ${dkpp_id3}  
158 - Click Element xpath=//td[contains(., '${dkpp_id3}')]  
159 - Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] 143 +
  144 +Додати багато предметів
  145 + [Arguments] @{ARGUMENTS}
  146 + [Documentation]
  147 + ... ${ARGUMENTS[0]} == items
  148 + ${Items_length}= Get Length ${items}
  149 + : FOR ${INDEX} IN RANGE 1 ${Items_length}
  150 + \ Click Element xpath=.//*[@id='myform']/tender-form/div/button
  151 + \ Додати предмет ${items[${INDEX}]} ${INDEX}
160 152
161 Пошук тендера по ідентифікатору 153 Пошук тендера по ідентифікатору
162 [Arguments] @{ARGUMENTS} 154 [Arguments] @{ARGUMENTS}
@@ -238,6 +230,61 @@ Oтримати internal id по UAid @@ -238,6 +230,61 @@ Oтримати internal id по UAid
238 Wait Until Page Contains ${ARGUMENTS[1]} 10 230 Wait Until Page Contains ${ARGUMENTS[1]} 10
239 sleep 1 231 sleep 1
240 232
  233 +Внести зміни в тендер
  234 + [Arguments] @{ARGUMENTS}
  235 + [Documentation]
  236 + ... ${ARGUMENTS[0]} = username
  237 + ... ${ARGUMENTS[1]} = ${TENDER_UAID}
  238 + ${ADDITIONAL_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} single
  239 + ${tender_data}= Add_data_for_GUI_FrontEnds ${ADDITIONAL_DATA}
  240 + ${items}= Get From Dictionary ${tender_data.data} items
  241 + ${description}= Get From Dictionary ${tender_data.data} description
  242 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  243 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  244 + Wait Until Page Contains Element xpath=//a[@class='btn btn-primary ng-scope'] 10
  245 + Click Element xpath=//a[@class='btn btn-primary ng-scope']
  246 + Sleep 2
  247 + Input text id=description ${description}
  248 + Click Element xpath=//button[@class='btn btn-info ng-isolate-scope']
  249 + Capture Page Screenshot
  250 +
  251 +додати предмети закупівлі
  252 + [Arguments] @{ARGUMENTS}
  253 + [Documentation]
  254 + ... ${ARGUMENTS[0]} = username
  255 + ... ${ARGUMENTS[1]} = ${TENDER_UAID}
  256 + ... ${ARGUMENTS[2]} = 3
  257 + ${ADDITIONAL_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} multi
  258 + ${tender_data}= Add_data_for_GUI_FrontEnds ${ADDITIONAL_DATA}
  259 + ${items}= Get From Dictionary ${tender_data.data} items
  260 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  261 + Run keyword if '${TEST NAME}' == 'Можливість додати позицію закупівлі в тендер' додати позицію
  262 + Run keyword if '${TEST NAME}' != 'Можливість додати позицію закупівлі в тендер' видалити позиції
  263 +
  264 +додати позицію
  265 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  266 + Sleep 2
  267 + Click Element xpath=//a[@class='btn btn-primary ng-scope']
  268 + Sleep 2
  269 + : FOR ${INDEX} IN RANGE 1 ${ARGUMENTS[2]} +1
  270 + \ Click Element xpath=.//*[@id='myform']/tender-form/div/button
  271 + \ Додати предмет ${items[${INDEX}]} ${INDEX}
  272 + Sleep 2
  273 + Click Element xpath=//div[@class='form-actions']/button[./text()='Зберегти зміни']
  274 + Wait Until Page Contains [ТЕСТУВАННЯ] 100
  275 +
  276 +видалити позиції
  277 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  278 + Click Element xpath=//a[@class='btn btn-primary ng-scope']
  279 + Sleep 2
  280 + : FOR ${INDEX} IN RANGE 1 ${ARGUMENTS[2]} +1
  281 + \ Click Element xpath=(//button[@class='btn btn-danger ng-scope'])[last()]
  282 + \ Sleep 1
  283 + Sleep 2
  284 + Wait Until Page Contains Element xpath=//div[@class='form-actions']/button[./text()='Зберегти зміни'] 10
  285 + Click Element xpath=//div[@class='form-actions']/button[./text()='Зберегти зміни']
  286 + Wait Until Page Contains [ТЕСТУВАННЯ] 100
  287 +
241 отримати інформацію із тендера 288 отримати інформацію із тендера
242 [Arguments] @{ARGUMENTS} 289 [Arguments] @{ARGUMENTS}
243 [Documentation] 290 [Documentation]
@@ -245,15 +292,9 @@ Oтримати internal id по UAid @@ -245,15 +292,9 @@ Oтримати internal id по UAid
245 ... ${ARGUMENTS[1]} == fieldname 292 ... ${ARGUMENTS[1]} == fieldname
246 Switch browser ${ARGUMENTS[0]} 293 Switch browser ${ARGUMENTS[0]}
247 ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]} 294 ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]}
  295 + Log ${return_value}
248 [return] ${return_value} 296 [return] ${return_value}
249 297
250 -Відмітити на сторінці поле з тендера  
251 - [Arguments] ${fieldname} ${locator}  
252 - ${last_note_id}= Add pointy note ${locator} Found ${fieldname} width=200 position=bottom  
253 - Align elements horizontally ${locator} ${last_note_id}  
254 - sleep 1  
255 - Remove element ${last_note_id}  
256 -  
257 Отримати тест із поля і показати на сторінці 298 Отримати тест із поля і показати на сторінці
258 [Arguments] ${fieldname} 299 [Arguments] ${fieldname}
259 sleep 3 300 sleep 3
@@ -261,16 +302,12 @@ Oтримати internal id по UAid @@ -261,16 +302,12 @@ Oтримати internal id по UAid
261 ${return_value}= Get Text ${locator.${fieldname}} 302 ${return_value}= Get Text ${locator.${fieldname}}
262 [return] ${return_value} 303 [return] ${return_value}
263 304
264 -отримати інформацію про tenderId  
265 - ${return_value}= Отримати тест із поля і показати на сторінці tenderId  
266 - [return] ${return_value.split(' ')[1]}  
267 -  
268 отримати інформацію про title 305 отримати інформацію про title
269 ${return_value}= Отримати тест із поля і показати на сторінці title 306 ${return_value}= Отримати тест із поля і показати на сторінці title
270 [return] ${return_value} 307 [return] ${return_value}
271 308
272 отримати інформацію про description 309 отримати інформацію про description
273 - ${return_value}= Отримати тест із поля і показати на сторінці description 310 + ${return_value}= Отримати тест із поля і показати на сторінці description
274 [return] ${return_value} 311 [return] ${return_value}
275 312
276 отримати інформацію про minimalStep.amount 313 отримати інформацію про minimalStep.amount
@@ -278,17 +315,28 @@ Oтримати internal id по UAid @@ -278,17 +315,28 @@ Oтримати internal id по UAid
278 ${return_value}= Convert To Number ${return_value.split(' ')[0]} 315 ${return_value}= Convert To Number ${return_value.split(' ')[0]}
279 [return] ${return_value} 316 [return] ${return_value}
280 317
281 -отримати інформацію про procuringEntity.name  
282 - ${return_value}= Отримати тест із поля і показати на сторінці procuringEntity.name  
283 - [return] ${return_value}  
284 -  
285 -  
286 отримати інформацію про value.amount 318 отримати інформацію про value.amount
287 - ${return_value}= Отримати тест із поля і показати на сторінці value.amount 319 + ${return_value}= Отримати тест із поля і показати на сторінці value.amount
288 ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3]) 320 ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3])
289 ${return_value}= Convert To Number ${return_value} 321 ${return_value}= Convert To Number ${return_value}
290 [return] ${return_value} 322 [return] ${return_value}
291 323
  324 +Відмітити на сторінці поле з тендера
  325 + [Arguments] ${fieldname} ${locator}
  326 + ${last_note_id}= Add pointy note ${locator} Found ${fieldname} width=200 position=bottom
  327 + Align elements horizontally ${locator} ${last_note_id}
  328 + sleep 1
  329 + Remove element ${last_note_id}
  330 +
  331 +отримати інформацію про tenderId
  332 + ${return_value}= отримати тест із поля і показати на сторінці tenderId
  333 + ${return_value}= Get Substring ${return_value} 10
  334 + [return] ${return_value}
  335 +
  336 +отримати інформацію про procuringEntity.name
  337 + ${return_value}= Отримати тест із поля і показати на сторінці procuringEntity.name
  338 + [return] ${return_value}
  339 +
292 отримати інформацію про tenderPeriod.startDate 340 отримати інформацію про tenderPeriod.startDate
293 ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.startDate 341 ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.startDate
294 [return] ${return_value} 342 [return] ${return_value}
@@ -305,7 +353,6 @@ Oтримати internal id по UAid @@ -305,7 +353,6 @@ Oтримати internal id по UAid
305 ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.endDate 353 ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.endDate
306 [return] ${return_value} 354 [return] ${return_value}
307 355
308 -  
309 отримати інформацію про items[${item_id}].description 356 отримати інформацію про items[${item_id}].description
310 відмітити на сторінці поле з тендера items[${item_id}].description jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)> 357 відмітити на сторінці поле з тендера items[${item_id}].description jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
311 ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)> 358 ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
@@ -37,6 +37,7 @@ ${locator.questions[0].answer} xpath=//div[@class = 'answer relative']//di @@ -37,6 +37,7 @@ ${locator.questions[0].answer} xpath=//div[@class = 'answer relative']//di
37 Login 37 Login
38 [Arguments] @{ARGUMENTS} 38 [Arguments] @{ARGUMENTS}
39 Wait Until Page Contains Element name=email 10 39 Wait Until Page Contains Element name=email 10
  40 + Input text name=email mail
40 Sleep 1 41 Sleep 1
41 Input text name=email ${USERS.users['${username}'].login} 42 Input text name=email ${USERS.users['${username}'].login}
42 Sleep 2 43 Sleep 2
@@ -69,7 +70,7 @@ Pre Login @@ -69,7 +70,7 @@ Pre Login
69 ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName 70 ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName
70 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate 71 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
71 ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} 72 ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date}
72 - ${cpv}= Get From Dictionary ${items[0].classification} description_ua 73 + ${cpv}= Convert To String Картонки
73 ${cpv_id}= Get From Dictionary ${items[0].classification} id 74 ${cpv_id}= Get From Dictionary ${items[0].classification} id
74 ${cpv_id1}= Replace String ${cpv_id} - _ 75 ${cpv_id1}= Replace String ${cpv_id} - _
75 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description 76 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
@@ -408,4 +409,4 @@ Set Multi Ids @@ -408,4 +409,4 @@ Set Multi Ids
408 sleep 1 409 sleep 1
409 Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] 410 Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']]
410 ${questionsAnswer}= отримати тест із поля і показати на сторінці questions[0].answer 411 ${questionsAnswer}= отримати тест із поля і показати на сторінці questions[0].answer
411 - [return] ${questionsAnswer}  
  412 + [return] ${questionsAnswer}
@@ -15,34 +15,40 @@ ${locator.tenderId} jquery=h3 @@ -15,34 +15,40 @@ ${locator.tenderId} jquery=h3
15 [Arguments] @{ARGUMENTS} 15 [Arguments] @{ARGUMENTS}
16 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо 16 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
17 ... ${ARGUMENTS[0]} == username 17 ... ${ARGUMENTS[0]} == username
18 -  
19 Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]} 18 Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
20 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} 19 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
21 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} 20 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
22 - Wait Until Page Contains Element id=indexpage_login 100 21 +
  22 +# sleep 10
  23 + Run Keyword If '${username}' != 'Newtend_Viewer' Login
  24 +
  25 +Login
  26 + Wait Until Page Contains Element id=indexpage_login 20
23 Click Element id=indexpage_login 27 Click Element id=indexpage_login
24 - Wait Until Page Contains Element id=password 100 28 + Wait Until Page Contains Element id=password 20
25 Input text id=login-email ${USERS.users['${username}'].login} 29 Input text id=login-email ${USERS.users['${username}'].login}
26 Input text id=password ${USERS.users['${username}'].password} 30 Input text id=password ${USERS.users['${username}'].password}
27 Click Element id=submit-login-button 31 Click Element id=submit-login-button
28 - Wait Until Page Contains Element xpath=//div[@class="introjs-overlay"] 100 32 + Wait Until Page Contains Element xpath =//a[@class="close-modal-dialog"] 20
  33 + Go to ${USERS.users['${ARGUMENTS[0]}'].homepage}
  34 +# Wait Until Page Contains Element xpath=//div[@class="introjs-overlay"] 20
29 35
30 Створити тендер 36 Створити тендер
31 [Arguments] @{ARGUMENTS} 37 [Arguments] @{ARGUMENTS}
32 [Documentation] 38 [Documentation]
33 ... ${ARGUMENTS[0]} == username 39 ... ${ARGUMENTS[0]} == username
34 - ... ${ARGUMENTS[1]} == tender_data  
35 - 40 + ... ${ARGUMENTS[1]} == initial_tender_data
36 ## Inicialisation 41 ## 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 42 + ${prepared_tender_data}= Add_data_for_GUI_FrontEnds ${ARGUMENTS[1]}
  43 + ${items}= Get From Dictionary ${prepared_tender_data.data} items
  44 + ${title}= Get From Dictionary ${prepared_tender_data.data} title
  45 + ${description}= Get From Dictionary ${prepared_tender_data.data} description
  46 + ${budget}= Get From Dictionary ${prepared_tender_data.data.value} amount
  47 + ${step_rate}= Get From Dictionary ${prepared_tender_data.data.minimalStep} amount
  48 + ${start_date}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} startDate
  49 + ${end_date}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} endDate
  50 + ${enquiry_start_date}= Get From Dictionary ${prepared_tender_data.data.enquiryPeriod} startDate
  51 + ${enquiry_end_date}= Get From Dictionary ${prepared_tender_data.data.enquiryPeriod} endDate
46 52
47 Selenium2Library.Switch Browser ${ARGUMENTS[0]} 53 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
48 Go To ${USERS.users['${username}'].homepage} 54 Go To ${USERS.users['${username}'].homepage}
@@ -109,7 +115,7 @@ Set datetime @@ -109,7 +115,7 @@ Set datetime
109 ## Get values for item 115 ## Get values for item
110 ${items_description}= Get From Dictionary ${ARGUMENTS[0]} description 116 ${items_description}= Get From Dictionary ${ARGUMENTS[0]} description
111 ${quantity}= Get From Dictionary ${ARGUMENTS[0]} quantity 117 ${quantity}= Get From Dictionary ${ARGUMENTS[0]} quantity
112 - ${cpv}= Get From Dictionary ${ARGUMENTS[0].classification} description_ua 118 + ${cpv}= Convert To String Картонки
113 ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description 119 ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description
114 ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id 120 ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id
115 ${unit}= Get From Dictionary ${ARGUMENTS[0].unit} name 121 ${unit}= Get From Dictionary ${ARGUMENTS[0].unit} name
@@ -159,227 +165,22 @@ Set datetime @@ -159,227 +165,22 @@ Set datetime
159 \ Click Element xpath=//a[@class="icon-black plus-black remove-field ng-scope"] 165 \ Click Element xpath=//a[@class="icon-black plus-black remove-field ng-scope"]
160 \ Додати придмет ${items[${INDEX}]} ${INDEX} 166 \ Додати придмет ${items[${INDEX}]} ${INDEX}
161 167
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 Пошук тендера по ідентифікатору 168 Пошук тендера по ідентифікатору
184 [Arguments] @{ARGUMENTS} 169 [Arguments] @{ARGUMENTS}
185 [Documentation] 170 [Documentation]
186 ... ${ARGUMENTS[0]} == username 171 ... ${ARGUMENTS[0]} == username
187 - ... ${ARGUMENTS[1]} == tenderId  
188 - 172 + ... ${ARGUMENTS[1]} == ${TENDER_UAID}
189 Switch browser ${ARGUMENTS[0]} 173 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] 174 + Go to ${USERS.users['${ARGUMENTS[0]}'].homepage}
  175 + Wait Until Page Contains Element xpath=//div[@class="search-field"]/input 20
  176 +# ${ARGUMENTS[1]}= Convert To String UA-2015-06-08-000023
  177 + Input text xpath=//div[@class="search-field"]/input ${ARGUMENTS[1]}
  178 + : FOR ${INDEX} IN RANGE 1 30
  179 + \ Log To Console . no_newline=true
  180 +# \ sleep 1
  181 + \ ${count}= Get Matching Xpath Count xpath=//a[@class="row tender-info ng-scope"]
  182 + \ Exit For Loop If '${count}' == '1'
  183 + Click Element xpath=//a[@class="row tender-info ng-scope"]
  184 + Wait Until Page Contains Element xpath=//a[@class="ng-binding ng-scope"] 30
  185 + ${fould_title}= Get Text xpath=//a[@class="ng-binding ng-scope"]
  186 + Should Be Equal ${fould_title} ${ARGUMENTS[1]}
@@ -13,7 +13,7 @@ ${question_id} 0 @@ -13,7 +13,7 @@ ${question_id} 0
13 ... ${ARGUMENTS[0]} == username 13 ... ${ARGUMENTS[0]} == username
14 ... ${ARGUMENTS[1]} == tenderid 14 ... ${ARGUMENTS[1]} == tenderid
15 log many @{ARGUMENTS} 15 log many @{ARGUMENTS}
16 - ${tenders}= get_internal_id ${USERS.users['${ARGUMENTS[0]}'].client.get_tenders} ${USERS.users['${ARGUMENTS[0]}'].creation_date} 16 + ${tenders}= get_internal_id ${USERS.users['${ARGUMENTS[0]}'].client.get_tenders} ${USERS.users['${ARGUMENTS[0]}'].creation_date}
17 :FOR ${tender} IN @{tenders} 17 :FOR ${tender} IN @{tenders}
18 \ log ${tender} 18 \ log ${tender}
19 \ ${internal_id}= Run Keyword And Return If '${tender.tenderID}' == '${ARGUMENTS[1]}' Get Variable Value ${tender.id} 19 \ ${internal_id}= Run Keyword And Return If '${tender.tenderID}' == '${ARGUMENTS[1]}' Get Variable Value ${tender.id}
@@ -26,16 +26,16 @@ ${question_id} 0 @@ -26,16 +26,16 @@ ${question_id} 0
26 Підготувати клієнт для користувача 26 Підготувати клієнт для користувача
27 [Arguments] @{ARGUMENTS} 27 [Arguments] @{ARGUMENTS}
28 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо 28 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
29 - ${api_wrapper}= prepare_api_wrapper ${USERS.users['${ARGUMENTS[0]}'].api_key} ${API_HOST_URL} ${api_version} 29 + ${api_wrapper}= prepare_api_wrapper ${USERS.users['${ARGUMENTS[0]}'].api_key} ${API_HOST_URL} ${api_version}
30 ${creation_date} = get_date 30 ${creation_date} = get_date
31 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} creation_date ${creation_date} 31 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} creation_date ${creation_date}
32 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} client ${api_wrapper} 32 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} client ${api_wrapper}
33 Log Variables 33 Log Variables
34 -  
35 -Підготувати дані для оголошення тендера 34 +
  35 +Підготувати дані для оголошення тендера
36 ${INITIAL_TENDER_DATA}= prepare_test_tender_data 36 ${INITIAL_TENDER_DATA}= prepare_test_tender_data
37 [return] ${INITIAL_TENDER_DATA} 37 [return] ${INITIAL_TENDER_DATA}
38 - 38 +
39 Створити тендер 39 Створити тендер
40 [Arguments] @{ARGUMENTS} 40 [Arguments] @{ARGUMENTS}
41 ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_tender ${ARGUMENTS[1]} 41 ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_tender ${ARGUMENTS[1]}
@@ -61,7 +61,7 @@ ${question_id} 0 @@ -61,7 +61,7 @@ ${question_id} 0
61 Log tender_id: ${TENDER_DATA.data.id} 61 Log tender_id: ${TENDER_DATA.data.id}
62 Set Global Variable ${TENDER_DATA} 62 Set Global Variable ${TENDER_DATA}
63 [return] ${TENDER_DATA} 63 [return] ${TENDER_DATA}
64 - 64 +
65 Пошук тендера по ідентифікатору 65 Пошук тендера по ідентифікатору
66 [Arguments] @{ARGUMENTS} 66 [Arguments] @{ARGUMENTS}
67 [Documentation] 67 [Documentation]
@@ -191,7 +191,7 @@ ${question_id} 0 @@ -191,7 +191,7 @@ ${question_id} 0
191 ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints 191 ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints
192 Log object data ${complaint} complaint 192 Log object data ${complaint} complaint
193 193
194 -порівняти скаргу 194 +порівняти скаргу
195 [Documentation] 195 [Documentation]
196 ... ${ARGUMENTS[0]} == username 196 ... ${ARGUMENTS[0]} == username
197 ... ${ARGUMENTS[1]} == tender_uid 197 ... ${ARGUMENTS[1]} == tender_uid
@@ -199,10 +199,10 @@ ${question_id} 0 @@ -199,10 +199,10 @@ ${question_id} 0
199 [Arguments] @{ARGUMENTS} 199 [Arguments] @{ARGUMENTS}
200 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} 200 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
201 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} 201 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
202 - ${complaint}= Get Variable Value ${tender.data.complaints[0]} 202 + ${complaint}= Get Variable Value ${tender.data.complaints[0]}
203 log ${complaint} 203 log ${complaint}
204 log ${ARGUMENTS[2]} 204 log ${ARGUMENTS[2]}
205 - #TODO: COMPARE 205 + #TODO: COMPARE
206 #Dictionary Should Contain Sub Dictionary ${complaint} ${ARGUMENTS[2].data} 206 #Dictionary Should Contain Sub Dictionary ${complaint} ${ARGUMENTS[2].data}
207 #:FOR ${element} IN ${ARGUMENTS[2].data} 207 #:FOR ${element} IN ${ARGUMENTS[2].data}
208 #\ log ${element} 208 #\ log ${element}
@@ -315,9 +315,9 @@ ${question_id} 0 @@ -315,9 +315,9 @@ ${question_id} 0
315 [return] ${uploaded_file} 315 [return] ${uploaded_file}
316 316
317 317
318 -  
319 318
320 -Завантажити документ 319 +
  320 +Завантажити документ
321 [Documentation] 321 [Documentation]
322 ... ${ARGUMENTS[0]} == username 322 ... ${ARGUMENTS[0]} == username
323 ... ${ARGUMENTS[1]} == filepath 323 ... ${ARGUMENTS[1]} == filepath
@@ -332,7 +332,7 @@ ${question_id} 0 @@ -332,7 +332,7 @@ ${question_id} 0
332 ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_document ${tender} ${ARGUMENTS[1]} 332 ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_document ${tender} ${ARGUMENTS[1]}
333 Log object data ${reply} reply 333 Log object data ${reply} reply
334 [return] ${reply} 334 [return] ${reply}
335 - 335 +
336 Отримати пропозиції 336 Отримати пропозиції
337 [Documentation] 337 [Documentation]
338 ... ${ARGUMENTS[0]} == username 338 ... ${ARGUMENTS[0]} == username
@@ -4,11 +4,10 @@ Library String @@ -4,11 +4,10 @@ Library String
4 Library DateTime 4 Library DateTime
5 5
6 *** Variables *** 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 7 ${mail} test@mail.com
10 ${telephone} +380976535447 8 ${telephone} +380976535447
11 9
  10 +
12 *** Keywords *** 11 *** Keywords ***
13 Підготувати клієнт для користувача 12 Підготувати клієнт для користувача
14 [Arguments] @{ARGUMENTS} 13 [Arguments] @{ARGUMENTS}
@@ -23,6 +22,7 @@ ${telephone} +380976535447 @@ -23,6 +22,7 @@ ${telephone} +380976535447
23 Click Element id=mForm:j_idt54 22 Click Element id=mForm:j_idt54
24 Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:email 10 23 Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:email 10
25 Input text id=mForm:email ${USERS.users['${username}'].login} 24 Input text id=mForm:email ${USERS.users['${username}'].login}
  25 + Sleep 2
26 Input text id=mForm:pwd ${USERS.users['${username}'].password} 26 Input text id=mForm:pwd ${USERS.users['${username}'].password}
27 Click Button id=mForm:login 27 Click Button id=mForm:login
28 28
@@ -31,23 +31,24 @@ ${telephone} +380976535447 @@ -31,23 +31,24 @@ ${telephone} +380976535447
31 [Documentation] 31 [Documentation]
32 ... ${ARGUMENTS[0]} == username 32 ... ${ARGUMENTS[0]} == username
33 ... ${ARGUMENTS[1]} == tender_data 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 34 + ${file_path}= local_path_to_file TestDocument.docx
  35 + ${prepared_tender_data}= Add_data_for_GUI_FrontEnds ${ARGUMENTS[1]}
  36 + ${items}= Get From Dictionary ${prepared_tender_data.data} items
  37 + ${title}= Get From Dictionary ${prepared_tender_data.data} title
  38 + ${description}= Get From Dictionary ${prepared_tender_data.data} description
  39 + ${budget}= Get From Dictionary ${prepared_tender_data.data.value} amount
  40 + ${step_rate}= Get From Dictionary ${prepared_tender_data.data.minimalStep} amount
  41 + ${countryName}= Get From Dictionary ${prepared_tender_data.data.procuringEntity.address} countryName
41 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate 42 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
42 ${delivery_end_date}= convert_date_to_prom_format ${delivery_end_date} 43 ${delivery_end_date}= convert_date_to_prom_format ${delivery_end_date}
43 - ${cpv}= Get From Dictionary ${items[0].classification} description_ua 44 + ${cpv}= Convert To String "Картонки"
44 ${cpv_id}= Get From Dictionary ${items[0].classification} id 45 ${cpv_id}= Get From Dictionary ${items[0].classification} id
45 ${cpv_id_1}= Get Substring ${cpv_id} 0 3 46 ${cpv_id_1}= Get Substring ${cpv_id} 0 3
46 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description 47 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
47 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id 48 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
48 ${code}= Get From Dictionary ${items[0].unit} code 49 ${code}= Get From Dictionary ${items[0].unit} code
49 ${quantity}= Get From Dictionary ${items[0]} quantity 50 ${quantity}= Get From Dictionary ${items[0]} quantity
50 - ${name}= Get From Dictionary ${tender_data.data.procuringEntity.contactPoint} name 51 + ${name}= Get From Dictionary ${prepared_tender_data.data.procuringEntity.contactPoint} name
51 52
52 Selenium2Library.Switch Browser ${ARGUMENTS[0]} 53 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
53 Wait Until Page Contains Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля'] 10 54 Wait Until Page Contains Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля'] 10
@@ -79,9 +80,11 @@ ${telephone} +380976535447 @@ -79,9 +80,11 @@ ${telephone} +380976535447
79 Input text id=mForm:data:rPhone ${telephone} 80 Input text id=mForm:data:rPhone ${telephone}
80 Input text id=mForm:data:rMail ${mail} 81 Input text id=mForm:data:rMail ${mail}
81 Choose File id=mForm:data:docFile_input ${file_path} 82 Choose File id=mForm:data:docFile_input ${file_path}
  83 + Sleep 2
82 Run Keyword if '${mode}' == 'multi' Додати предмет items 84 Run Keyword if '${mode}' == 'multi' Додати предмет items
83 Click Element id=mForm:bSave 85 Click Element id=mForm:bSave
84 - Sleep 5 86 + # More smart wait for id is needed there.
  87 + Sleep 25
85 ${tender_UAid}= Get Text id=mForm:nBid 88 ${tender_UAid}= Get Text id=mForm:nBid
86 ${tender_UAid}= Get Substring ${tender_UAid} 19 89 ${tender_UAid}= Get Substring ${tender_UAid} 19
87 ${Ids} Convert To String ${tender_UAid} 90 ${Ids} Convert To String ${tender_UAid}
@@ -149,7 +152,6 @@ Set Multi Ids @@ -149,7 +152,6 @@ Set Multi Ids
149 Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span 10 152 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 153 Click Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span
151 154
152 -  
153 Пошук тендера по ідентифікатору 155 Пошук тендера по ідентифікатору
154 [Arguments] @{ARGUMENTS} 156 [Arguments] @{ARGUMENTS}
155 [Documentation] 157 [Documentation]
@@ -17,7 +17,7 @@ users: @@ -17,7 +17,7 @@ users:
17 homepage: "http://uat.e-tender.biz/#/profile" 17 homepage: "http://uat.e-tender.biz/#/profile"
18 login: Misha2 18 login: Misha2
19 password: Password1 19 password: Password1
20 - browser: firefox 20 + browser: chrome
21 position: [0, 0] 21 position: [0, 0]
22 size: [800, 800] 22 size: [800, 800]
23 E-tender_Provider1: 23 E-tender_Provider1:
@@ -26,7 +26,7 @@ users: @@ -26,7 +26,7 @@ users:
26 homepage: "http://uat.e-tender.biz/#/profile" 26 homepage: "http://uat.e-tender.biz/#/profile"
27 login: st_org 27 login: st_org
28 password: 12345678 28 password: 12345678
29 - browser: firefox 29 + browser: chrome
30 position: [700, 0] 30 position: [700, 0]
31 size: [700, 800] 31 size: [700, 800]
32 E-tender_Provider2: 32 E-tender_Provider2:
@@ -35,46 +35,22 @@ users: @@ -35,46 +35,22 @@ users:
35 homepage: "http://uat.e-tender.biz/#/profile" 35 homepage: "http://uat.e-tender.biz/#/profile"
36 login: provider2 36 login: provider2
37 password: Qa123456 37 password: Qa123456
38 - browser: firefox 38 + browser: chrome
39 position: [700, 0] 39 position: [700, 0]
40 size: [640, 450] 40 size: [640, 450]
41 E-tender_Viewer: 41 E-tender_Viewer:
42 broker: E-tender 42 broker: E-tender
43 username: E-tendertest 43 username: E-tendertest
44 - browser: firefox  
45 - position: [0, 0]  
46 - size: [640, 450]  
47 - Prom_Owner:  
48 - broker: Prom  
49 - username: Promtest 44 + homepage: "http://uat.e-tender.biz/#/profile"
50 browser: chrome 45 browser: chrome
51 position: [0, 0] 46 position: [0, 0]
52 size: [640, 450] 47 size: [640, 450]
53 - Prom_Viewer:  
54 - broker: Prom  
55 - username: Promtest  
56 - browser: chrome  
57 - position: [640, 0]  
58 - size: [640, 450]  
59 - SmartTender_Viewer:  
60 - broker: SmartTender  
61 - username: SmartTendertest  
62 - browser: chrome  
63 - position: [0, 450]  
64 - size: [640, 450]  
65 - Publicbid_Viewer:  
66 - broker: Publicbid  
67 - username: Publicbid  
68 - browser: chrome  
69 - position: [0, 450]  
70 - size: [640, 450]  
71 Netcast_Owner: 48 Netcast_Owner:
72 broker: Netcast 49 broker: Netcast
73 username: Netcasttest 50 username: Netcasttest
74 homepage: "http://dz2.byustudio.in.ua" 51 homepage: "http://dz2.byustudio.in.ua"
75 login: ovramet.s@gmail.com 52 login: ovramet.s@gmail.com
76 password: Password1 53 password: Password1
77 - #browser: firefox  
78 browser: chrome 54 browser: chrome
79 position: [0, 0] 55 position: [0, 0]
80 size: [700, 800] 56 size: [700, 800]
@@ -84,7 +60,6 @@ users: @@ -84,7 +60,6 @@ users:
84 homepage: "http://dz2.byustudio.in.ua" 60 homepage: "http://dz2.byustudio.in.ua"
85 login: halyna.khimka@gmail.com 61 login: halyna.khimka@gmail.com
86 password: JHO5VUp5n 62 password: JHO5VUp5n
87 - #browser: firefox  
88 browser: chrome 63 browser: chrome
89 position: [0, 0] 64 position: [0, 0]
90 size: [600, 800] 65 size: [600, 800]
@@ -92,40 +67,65 @@ users: @@ -92,40 +67,65 @@ users:
92 broker: Netcast 67 broker: Netcast
93 username: Netcasttest 68 username: Netcasttest
94 homepage: "http://dz2.byustudio.in.ua" 69 homepage: "http://dz2.byustudio.in.ua"
95 - #browser: firefox  
96 browser: chrome 70 browser: chrome
  71 + #browser: chrome
97 position: [0, 0] 72 position: [0, 0]
98 size: [600, 800] 73 size: [600, 800]
99 - Publicbid_Owner:  
100 - broker: Publicbid  
101 - username: Publicbid  
102 - homepage: "https://public-bid.com.ua/test/"  
103 - login: yaroslav1boyko@gmail.com  
104 - password: Password1  
105 - browser: firefox  
106 - position: [0, 0]  
107 - size: [740, 550]  
108 Newtend_Owner: 74 Newtend_Owner:
109 broker: Newtend 75 broker: Newtend
110 username: Newtendtest 76 username: Newtendtest
111 homepage: "http://dev23.newtend.com/openprocurement/#/home/page/1" 77 homepage: "http://dev23.newtend.com/openprocurement/#/home/page/1"
112 login: openprocurement@mailinator.com 78 login: openprocurement@mailinator.com
113 password: 123123 79 password: 123123
114 - browser: firefox 80 + browser: chrome
115 position: [0, 0] 81 position: [0, 0]
116 - size: [640, 450]  
117 - Newtend_Provider2: 82 + size: [1000, 1100]
  83 + Newtend_Provider1:
118 broker: Newtend 84 broker: Newtend
119 username: Newtendtest 85 username: Newtendtest
120 homepage: "http://dev23.newtend.com/openprocurement/tenders" 86 homepage: "http://dev23.newtend.com/openprocurement/tenders"
121 login: openprocboss@mailinator.com 87 login: openprocboss@mailinator.com
122 password: 123123 88 password: 123123
123 - browser: firefox 89 + browser: chrome
124 position: [700, 0] 90 position: [700, 0]
125 - size: [640, 450] 91 + size: [800, 700]
126 Newtend_Viewer: 92 Newtend_Viewer:
127 broker: Newtend 93 broker: Newtend
128 username: Newtendtest 94 username: Newtendtest
129 - browser: firefox 95 + homepage: "http://dev23.newtend.com/openprocurement/tenders"
  96 + browser: chrome
  97 + position: [0, 0]
  98 + size: [640, 450]
  99 + Prom_Owner:
  100 + broker: Prom
  101 + username: Promtest
  102 + browser: chrome
130 position: [0, 0] 103 position: [0, 0]
131 - size: [640, 450]  
  104 + size: [640, 450]
  105 + Prom_Viewer:
  106 + broker: Prom
  107 + username: Promtest
  108 + browser: chrome
  109 + position: [640, 0]
  110 + size: [640, 450]
  111 + Publicbid_Owner:
  112 + broker: Publicbid
  113 + username: Publicbid
  114 + homepage: "https://public-bid.com.ua/test/"
  115 + login: yaroslav1boyko@gmail.com
  116 + password: Password1
  117 + browser: chrome
  118 + position: [0, 0]
  119 + size: [740, 550]
  120 + Publicbid_Viewer:
  121 + broker: Publicbid
  122 + username: Publicbid
  123 + browser: chrome
  124 + position: [0, 450]
  125 + size: [640, 450]
  126 + SmartTender_Viewer:
  127 + broker: SmartTender
  128 + username: SmartTendertest
  129 + browser: chrome
  130 + position: [0, 450]
  131 + size: [640, 450]
@@ -73,8 +73,7 @@ def test_tender_data(period_interval=2): @@ -73,8 +73,7 @@ def test_tender_data(period_interval=2):
73 "classification": { 73 "classification": {
74 "scheme": u"CPV", 74 "scheme": u"CPV",
75 "id": u"44617100-9", 75 "id": u"44617100-9",
76 - "description": u"Cartons",  
77 - "description_ua": u"Картонки", 76 + "description": u"Cartons"
78 }, 77 },
79 "additionalClassifications": [ 78 "additionalClassifications": [
80 { 79 {
@@ -243,8 +242,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -243,8 +242,7 @@ def test_tender_data_multiple_lots(period_interval=2):
243 "classification": { 242 "classification": {
244 "scheme": u"CPV", 243 "scheme": u"CPV",
245 "id": u"44617100-9", 244 "id": u"44617100-9",
246 - "description": u"Cartons",  
247 - "description_ua": u"Картонки", 245 + "description": u"Cartons"
248 }, 246 },
249 "additionalClassifications": [ 247 "additionalClassifications": [
250 { 248 {
@@ -278,8 +276,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -278,8 +276,7 @@ def test_tender_data_multiple_lots(period_interval=2):
278 "classification": { 276 "classification": {
279 "scheme": u"CPV", 277 "scheme": u"CPV",
280 "id": u"44617100-9", 278 "id": u"44617100-9",
281 - "description": u"Cartons",  
282 - "description_ua": u"Картонки" 279 + "description": u"Cartons"
283 }, 280 },
284 "additionalClassifications": [ 281 "additionalClassifications": [
285 { 282 {
@@ -313,8 +310,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -313,8 +310,7 @@ def test_tender_data_multiple_lots(period_interval=2):
313 "classification": { 310 "classification": {
314 "scheme": u"CPV", 311 "scheme": u"CPV",
315 "id": u"44617100-9", 312 "id": u"44617100-9",
316 - "description": u"Cartons",  
317 - "description_ua": u"Картонки" 313 + "description": u"Cartons"
318 }, 314 },
319 "additionalClassifications": [ 315 "additionalClassifications": [
320 { 316 {
@@ -348,8 +344,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -348,8 +344,7 @@ def test_tender_data_multiple_lots(period_interval=2):
348 "classification": { 344 "classification": {
349 "scheme": u"CPV", 345 "scheme": u"CPV",
350 "id": u"44617100-9", 346 "id": u"44617100-9",
351 - "description": u"Cartons",  
352 - "description_ua": u"Картонки" 347 + "description": u"Cartons"
353 }, 348 },
354 "additionalClassifications": [ 349 "additionalClassifications": [
355 { 350 {
@@ -27,21 +27,6 @@ TIMEZONE = timezone('Europe/Kiev') @@ -27,21 +27,6 @@ TIMEZONE = timezone('Europe/Kiev')
27 def get_date(): 27 def get_date():
28 return datetime.now().isoformat() 28 return datetime.now().isoformat()
29 29
30 -def convert_date_to_slash_format(isodate):  
31 - iso_dt=parse_date(isodate)  
32 - date_string = iso_dt.strftime("%d/%m/%Y")  
33 - return date_string  
34 -  
35 -def convert_date_to_etender_format(isodate):  
36 - iso_dt=parse_date(isodate)  
37 - date_string = iso_dt.strftime("%d-%m-%Y")  
38 - return date_string  
39 -  
40 -def convert_time_to_etender_format(isodate):  
41 - iso_dt=parse_date(isodate)  
42 - time_string = iso_dt.strftime("%H:%M")  
43 - return time_string  
44 -  
45 def change_state(arguments): 30 def change_state(arguments):
46 try: 31 try:
47 if arguments[0] == "shouldfail": 32 if arguments[0] == "shouldfail":
@@ -96,7 +81,6 @@ def load_initial_data_from(file_name): @@ -96,7 +81,6 @@ def load_initial_data_from(file_name):
96 elif file_name.endswith(".yaml"): 81 elif file_name.endswith(".yaml"):
97 return fromYAML(file_obj) 82 return fromYAML(file_obj)
98 83
99 -  
100 def prepare_test_tender_data(period_interval=2, mode='single'): 84 def prepare_test_tender_data(period_interval=2, mode='single'):
101 if mode == 'single': 85 if mode == 'single':
102 return munchify({'data': test_tender_data(period_interval=period_interval)}) 86 return munchify({'data': test_tender_data(period_interval=period_interval)})
@@ -104,21 +88,16 @@ def prepare_test_tender_data(period_interval=2, mode='single'): @@ -104,21 +88,16 @@ def prepare_test_tender_data(period_interval=2, mode='single'):
104 return munchify({'data': test_tender_data_multiple_lots(period_interval=period_interval)}) 88 return munchify({'data': test_tender_data_multiple_lots(period_interval=period_interval)})
105 raise ValueError('A very specific bad thing happened') 89 raise ValueError('A very specific bad thing happened')
106 90
107 -  
108 def run_keyword_and_ignore_keyword_definations(name, *args): 91 def run_keyword_and_ignore_keyword_definations(name, *args):
109 """Runs the given keyword with given arguments and returns the status as a Boolean value. 92 """Runs the given keyword with given arguments and returns the status as a Boolean value.
110 -  
111 This keyword returns `True` if the keyword that is executed succeeds and 93 This keyword returns `True` if the keyword that is executed succeeds and
112 `False` if it fails. This is useful, for example, in combination with 94 `False` if it fails. This is useful, for example, in combination with
113 `Run Keyword If`. If you are interested in the error message or return 95 `Run Keyword If`. If you are interested in the error message or return
114 value, use `Run Keyword And Ignore Error` instead. 96 value, use `Run Keyword And Ignore Error` instead.
115 -  
116 The keyword name and arguments work as in `Run Keyword`. 97 The keyword name and arguments work as in `Run Keyword`.
117 -  
118 Example: 98 Example:
119 | ${passed} = | `Run Keyword And Return Status` | Keyword | args | 99 | ${passed} = | `Run Keyword And Return Status` | Keyword | args |
120 | `Run Keyword If` | ${passed} | Another keyword | 100 | `Run Keyword If` | ${passed} | Another keyword |
121 -  
122 New in Robot Framework 2.7.6. 101 New in Robot Framework 2.7.6.
123 """ 102 """
124 try: 103 try:
@@ -128,7 +107,6 @@ def run_keyword_and_ignore_keyword_definations(name, *args): @@ -128,7 +107,6 @@ def run_keyword_and_ignore_keyword_definations(name, *args):
128 return "FAIL", "" 107 return "FAIL", ""
129 return status, _ 108 return status, _
130 109
131 -  
132 def set_tender_periods(tender): 110 def set_tender_periods(tender):
133 now = datetime.now() 111 now = datetime.now()
134 tender.data.enquiryPeriod.endDate = (now + timedelta(minutes=2)).isoformat() 112 tender.data.enquiryPeriod.endDate = (now + timedelta(minutes=2)).isoformat()
@@ -136,17 +114,14 @@ def set_tender_periods(tender): @@ -136,17 +114,14 @@ def set_tender_periods(tender):
136 tender.data.tenderPeriod.endDate = (now + timedelta(minutes=4)).isoformat() 114 tender.data.tenderPeriod.endDate = (now + timedelta(minutes=4)).isoformat()
137 return tender 115 return tender
138 116
139 -  
140 def set_access_key(tender, access_token): 117 def set_access_key(tender, access_token):
141 tender.access = munchify({"token": access_token}) 118 tender.access = munchify({"token": access_token})
142 return tender 119 return tender
143 120
144 -  
145 def set_to_object(obj, attribute, value): 121 def set_to_object(obj, attribute, value):
146 xpathset(obj, attribute.replace('.', '/'), value) 122 xpathset(obj, attribute.replace('.', '/'), value)
147 return obj 123 return obj
148 124
149 -  
150 def get_from_object(obj, attribute): 125 def get_from_object(obj, attribute):
151 """Gets data from a dictionary using a dotted accessor-string""" 126 """Gets data from a dictionary using a dotted accessor-string"""
152 jsonpath_expr = parse_path(attribute) 127 jsonpath_expr = parse_path(attribute)
@@ -155,7 +130,6 @@ def get_from_object(obj, attribute): @@ -155,7 +130,6 @@ def get_from_object(obj, attribute):
155 return return_list[0] 130 return return_list[0]
156 return None 131 return None
157 132
158 -  
159 def wait_to_date(date_stamp): 133 def wait_to_date(date_stamp):
160 date = parse(date_stamp) 134 date = parse(date_stamp)
161 LOGGER.log_message(Message("date: {}".format(date.isoformat()), "INFO")) 135 LOGGER.log_message(Message("date: {}".format(date.isoformat()), "INFO"))
@@ -167,6 +141,21 @@ def wait_to_date(date_stamp): @@ -167,6 +141,21 @@ def wait_to_date(date_stamp):
167 return 0 141 return 0
168 return wait_seconds 142 return wait_seconds
169 143
  144 +def convert_date_to_slash_format(isodate):
  145 + iso_dt=parse_date(isodate)
  146 + date_string = iso_dt.strftime("%d/%m/%Y")
  147 + return date_string
  148 +
  149 +def convert_date_to_etender_format(isodate):
  150 + iso_dt=parse_date(isodate)
  151 + date_string = iso_dt.strftime("%d-%m-%Y")
  152 + return date_string
  153 +
  154 +def convert_time_to_etender_format(isodate):
  155 + iso_dt=parse_date(isodate)
  156 + time_string = iso_dt.strftime("%H:%M")
  157 + return time_string
  158 +
170 def newtend_date_picker_index(isodate): 159 def newtend_date_picker_index(isodate):
171 now = datetime.today() 160 now = datetime.today()
172 date_str = '01' + str(now.month) + str(now.year) 161 date_str = '01' + str(now.month) + str(now.year)
@@ -179,15 +168,15 @@ def newtend_date_picker_index(isodate): @@ -179,15 +168,15 @@ def newtend_date_picker_index(isodate):
179 mod = calendar.monthrange(now.year, now.month)[1] + mod 168 mod = calendar.monthrange(now.year, now.month)[1] + mod
180 return mod + iso_dt.day 169 return mod + iso_dt.day
181 170
182 -def Add_time_for_GUI_FrontEnds(INITIAL_TENDER_DATA): 171 +def Add_data_for_GUI_FrontEnds(INITIAL_TENDER_DATA):
183 now = datetime.now() 172 now = datetime.now()
184 INITIAL_TENDER_DATA.data.enquiryPeriod['startDate'] = (now + timedelta(minutes=2)).isoformat() 173 INITIAL_TENDER_DATA.data.enquiryPeriod['startDate'] = (now + timedelta(minutes=2)).isoformat()
185 INITIAL_TENDER_DATA.data.enquiryPeriod['endDate'] = (now + timedelta(minutes=3)).isoformat() 174 INITIAL_TENDER_DATA.data.enquiryPeriod['endDate'] = (now + timedelta(minutes=3)).isoformat()
186 INITIAL_TENDER_DATA.data.tenderPeriod['startDate'] = (now + timedelta(minutes=4)).isoformat() 175 INITIAL_TENDER_DATA.data.tenderPeriod['startDate'] = (now + timedelta(minutes=4)).isoformat()
187 INITIAL_TENDER_DATA.data.tenderPeriod['endDate'] = (now + timedelta(minutes=5)).isoformat() 176 INITIAL_TENDER_DATA.data.tenderPeriod['endDate'] = (now + timedelta(minutes=5)).isoformat()
188 return INITIAL_TENDER_DATA 177 return INITIAL_TENDER_DATA
189 -  
190 -def local_path_to_file( file_name ):  
191 - path = os.getcwd()  
192 - path = path.split("brokers", 1)[0] + "documents/" + file_name  
193 - return path  
  178 +
  179 +def local_path_to_file(file_name):
  180 + path = os.getcwd()
  181 + path = path.split("brokers", 1)[0] + "/src/op_robot_tests/op_robot_tests/tests_files/documents/" + file_name
  182 + return path
@@ -387,7 +387,6 @@ ${question_id} 0 @@ -387,7 +387,6 @@ ${question_id} 0
387 ${bid_doc_upload_fail}= Викликати для учасника ${provider1} Завантажити документ в ставку shouldfail ${filepath} ${TENDER['TENDER_UAID']} 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} 388 Set To Dictionary ${USERS.users['${provider1}'].bidresponces} bid_doc_upload_fail ${bid_doc_upload_fail}
389 389
390 -  
391 Неможливість змінити існуючу документацію цінової пропозиції після закінчення прийому пропозицій 390 Неможливість змінити існуючу документацію цінової пропозиції після закінчення прийому пропозицій
392 [Tags] ${USERS.users['${provider1}'].broker}: 391 [Tags] ${USERS.users['${provider1}'].broker}:
393 ${filepath}= create_fake_doc 392 ${filepath}= create_fake_doc
@@ -396,9 +395,8 @@ ${question_id} 0 @@ -396,9 +395,8 @@ ${question_id} 0
396 ${bid_doc_modified_failed}= Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${filepath} ${bidid} ${docid} 395 ${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} 396 Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_modified_failed ${bid_doc_modified_failed}
398 397
399 -  
400 Вичитати цінову пропозицію 398 Вичитати цінову пропозицію
401 -# sleep 120 399 + #sleep 120
402 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію 400 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
403 ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id} 401 ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id}
404 ${token}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].access.token} 402 ${token}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].access.token}
Please register or login to post a comment