Commit 3be3b4d26afe169260bd1c758795e34f1aa917d3

Authored by SavchukRoman
1 parent 99931a20

Refactor test code, add few new tests

... ... @@ -14,60 +14,56 @@ ${locator.minimalStep.amount} xpath=//td[./text()='Крок зменшеÐ
14 14 ${locator.enquiryPeriod.endDate} xpath=//td[./text()='Завершення періоду обговорення']/following-sibling::td[1]
15 15 ${locator.tenderPeriod.endDate} xpath=//td[./text()='Завершення періоду прийому пропозицій']/following-sibling::td[1]
16 16 ${locator.items[0].deliveryAddress.countryName} xpath=//td[@class='nameField'][./text()='Адреса поставки']/following-sibling::td[1]
17   -${locator.items[0].deliveryDate} xpath=//td[./text()='Кінцева дата поставки']/following-sibling::td[1]
18   -${locator.items[0].classification.scheme} xpath=//td[@class = 'nameField'][./text()='Клас CPV']
19   -${locator.items[0].classification.id} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[1]
20   -${locator.items[0].classification.description} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[2]
  17 +${locator.items[0].deliveryDate} xpath=//td[./text()='Кінцева дата поставки']/following-sibling::td[1]
  18 +${locator.items[0].classification.scheme} xpath=//td[@class = 'nameField'][./text()='Клас CPV']
21 19 ${locator.items[0].additionalClassifications[0].scheme} xpath=//td[@class = 'nameField'][./text()='Клас ДКПП']
22   -${locator.items[0].additionalClassifications[0].id} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[1]
23   -${locator.items[0].additionalClassifications[0].description} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[2]
24 20
25 21 *** Keywords ***
26 22 Підготувати клієнт для користувача
27 23 [Arguments] @{ARGUMENTS}
28   - [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
  24 + [Documentation] Відкрити брaузер, створити обєкт api wrapper, тощо
29 25 ... ${ARGUMENTS[0]} == username
30 26 Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]}
31 27 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
32 28 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
33   - Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]}
34   - Wait Until Page Contains Element jquery=a[href="/cabinet"]
35   - Click Element jquery=a[href="/cabinet"]
36   - Run Keyword If '${username}' != 'Netcast_Viewer' Login
  29 + Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]}
  30 + Wait Until Page Contains Element jquery=a[href="/cabinet"]
  31 + Click Element jquery=a[href="/cabinet"]
  32 + Run Keyword If '${username}' != 'Netcast_Viewer' Login
37 33
38 34 Login
39 35 [Arguments] @{ARGUMENTS}
40   - Wait Until Page Contains Element name=email 10
  36 + Wait Until Page Contains Element name=email 10
41 37 Sleep 1
42   - Input text name=email ${USERS.users['${username}'].login}
  38 + Input text name=email ${USERS.users['${username}'].login}
43 39 Sleep 2
44   - Input text name=psw ${USERS.users['${username}'].password}
45   - Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100
46   - Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет']
  40 + Input text name=psw ${USERS.users['${username}'].password}
  41 + Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 20
  42 + Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет']
47 43
48 44 Pre Login
49 45 [Arguments] @{ARGUMENTS}
50 46 [Documentation]
51 47 ... ${ARGUMENTS[0]} == username
52 48 Wait Until Page Contains Element name=siteLogin 10
53   - Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login}
54   - Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password}
55   - Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input
  49 + Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login}
  50 + Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password}
  51 + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input
56 52
57 53 Створити тендер
58 54 [Arguments] @{ARGUMENTS}
59 55 [Documentation]
60 56 ... ${ARGUMENTS[0]} == username
61 57 ... ${ARGUMENTS[1]} == tender_data
62   - ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
63   - ${items}= Get From Dictionary ${tender_data.data} items
64   - ${title}= Get From Dictionary ${tender_data.data} title
65   - ${description}= Get From Dictionary ${tender_data.data} description
66   - ${budget}= Get From Dictionary ${tender_data.data.value} amount
67   - ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount
68   - ${items_description}= Get From Dictionary ${tender_data.data} description
  58 + #{tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
  59 + ${items}= Get From Dictionary ${ARGUMENTS[1].data} items
  60 + ${title}= Get From Dictionary ${ARGUMENTS[1].data} title
  61 + ${description}= Get From Dictionary ${ARGUMENTS[1].data} description
  62 + ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount
  63 + ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount
  64 + ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description
69 65 ${quantity}= Get From Dictionary ${items[0]} quantity
70   - ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName
  66 + ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName
71 67 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
72 68 ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date}
73 69 ${cpv}= Get From Dictionary ${items[0].classification} description_ua
... ... @@ -76,9 +72,9 @@ Pre Login
76 72 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
77 73 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
78 74 ${dkpp_id1}= Replace String ${dkpp_id} - _
79   - ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate
  75 + ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate
80 76 ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date}
81   - ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate
  77 + ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate
82 78 ${end_date}= convert_date_to_slash_format ${end_date}
83 79
84 80 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
... ... @@ -205,7 +201,6 @@ Set Multi Ids
205 201 ... ${ARGUMENTS[0]} == username
206 202 ... ${ARGUMENTS[1]} == tenderId
207 203 Switch browser ${ARGUMENTS[0]}
208   -
209 204 Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
210 205 Wait Until Page Contains Держзакупівлі.онлайн 10
211 206 Click Element xpath=//a[text()='Закупівлі']
... ... @@ -213,7 +208,7 @@ Set Multi Ids
213 208 Click Element xpath=//select[@name='filter[object]']/option[@value='tenderID']
214 209 Input text xpath=//input[@name='filter[search]'] ${ARGUMENTS[1]}
215 210 Click Element xpath=//button[@class='btn'][./text()='Пошук']
216   - Wait Until Page Contains ${ARGUMENTS[1]} 10
  211 + Wait Until Page Contains ${ARGUMENTS[1]} 10
217 212 Capture Page Screenshot
218 213 sleep 1
219 214 Click Element xpath=//a[@class='reverse tenderLink']
... ... @@ -227,6 +222,7 @@ Set Multi Ids
227 222 ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
228 223 ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
229 224
  225 +
230 226 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
231 227 netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
232 228
... ... @@ -279,11 +275,31 @@ Set Multi Ids
279 275 Wait Until Page Contains ${complaint} 30
280 276 Capture Page Screenshot
281 277
282   -Внести зміни в тендер
  278 +Порівняти скаргу
283 279 [Arguments] @{ARGUMENTS}
284 280 [Documentation]
285 281 ... ${ARGUMENTS[0]} = username
286 282 ... ${ARGUMENTS[1]} = tenderUaId
  283 + ... ${ARGUMENTS[2]} = complaintsData
  284 + ${complaint}= Get From Dictionary ${ARGUMENTS[2].data} title
  285 + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
  286 +
  287 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  288 + netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  289 + sleep 1
  290 + Click Element xpath=//a[@class='reverse openCPart'][span[text()='Скарги']]
  291 + Wait Until Page Contains ${complaint} 30
  292 + Capture Page Screenshot
  293 +
  294 +
  295 +
  296 +Внести зміни в тендер
  297 + # Тест написано для уже існуючого тендеру, що знаходиться у чернетках користувача
  298 + [Arguments] @{ARGUMENTS}
  299 + [Documentation]
  300 + ... ${ARGUMENTS[0]} = username
  301 + ... ${ARGUMENTS[1]} = description
  302 +
287 303 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
288 304 Click Element xpath=//a[@class='reverse'][./text()='Мої закупівлі']
289 305 Wait Until Page Contains Element xpath=//a[@class='reverse'][./text()='Чернетки'] 30
... ... @@ -293,10 +309,10 @@ Set Multi Ids
293 309 sleep 1
294 310 Click Element xpath=//a[@class='button save'][./text()='Редагувати']
295 311 sleep 1
296   - Input text name=tender_title "Some new title"
  312 + Input text name=tender_title ${ARGUMENTS[1]}
297 313 sleep 1
298 314 Click Element xpath=//button[@class='saveDraft']
299   - Wait Until Page Contains "Some new title" 30
  315 + Wait Until Page Contains ${ARGUMENTS[1]} 30
300 316 Capture Page Screenshot
301 317
302 318 отримати інформацію із тендера
... ... @@ -305,9 +321,7 @@ Set Multi Ids
305 321 ... ${ARGUMENTS[0]} == username
306 322 ... ${ARGUMENTS[1]} == fieldname
307 323 Switch browser ${ARGUMENTS[0]}
308   -
309 324 ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]}
310   - log ${return_value}
311 325 [return] ${return_value}
312 326
313 327 отримати тест із поля і показати на сторінці
... ... @@ -330,12 +344,12 @@ Set Multi Ids
330 344
331 345 отримати інформацію про value.amount
332 346 ${valueAmount}= отримати тест із поля і показати на сторінці value.amount
333   - ${valueAmount}= Evaluate "".join("${valueAmount}".split(' ')[:-3])
334   - ${valueAmount}= Convert To Number ${valueAmount}
  347 + ${valueAmount}= Convert To Number ${valueAmount.split(' ')[0]}
335 348 [return] ${valueAmount}
336 349
337 350 отримати інформацію про minimalStep.amount
338   - ${minimalStepAamount}= отримати тест із поля і показати на сторінці minimalStep.amount
  351 + ${minimalStepAmount}= отримати тест із поля і показати на сторінці minimalStep.amount
  352 + ${minimalStepAmount}= Convert To Number ${minimalStepAmount.split(' ')[0]}
339 353 [return] ${minimalStepAmount}
340 354
341 355 отримати інформацію про enquiryPeriod.endDate
... ... @@ -343,35 +357,17 @@ Set Multi Ids
343 357 [return] ${enquiryPeriodEndDate}
344 358
345 359 отримати інформацію про tenderPeriod.endDate
346   - ${enquiryPeriodEndDate}= отримати тест із поля і показати на сторінці tenderPeriod.endDate
347   - [return] ${enquiryPeriodEndDate}
  360 + ${tenderPeriodEndDate}= отримати тест із поля і показати на сторінці tenderPeriod.endDate
  361 + [return] ${tenderPeriodEndDate}
348 362
349 363 отримати інформацію про items[0].deliveryAddress.countryName
350   - ${return_value}= отримати тест із поля і показати на сторінці items[0].deliveryAddress.countryName
351   - [return] ${return_value}
  364 + ${countryName}= отримати тест із поля і показати на сторінці items[0].deliveryAddress.countryName
  365 + [return] ${countryName}
352 366
353 367 отримати інформацію про items[0].classification.scheme
354   - ${return_value}= отримати тест із поля і показати на сторінці items[0].classification.scheme
355   - ${return_value}= Get Substring ${return_value} 5
356   - [return] ${return_value}
357   -
358   -отримати інформацію про items[0].classification.id
359   -${return_value}= отримати тест із поля і показати на сторінці items[0].classification.id
360   - [return] ${return_value}
361   -
362   -отримати інформацію про items[0].classification.description
363   -${return_value}= отримати тест із поля і показати на сторінці items[0].classification.description
364   - [return] ${return_value}
  368 + ${classificationScheme}= отримати тест із поля і показати на сторінці items[0].classification.scheme
  369 + [return] ${classificationScheme.split(' ')[1]}
365 370
366 371 отримати інформацію про items[0].additionalClassifications[0].scheme
367   - ${return_value}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].scheme
368   - ${return_value}= Get Substring ${return_value} 5
369   - [return] ${return_value}
370   -
371   -отримати інформацію про items[0].additionalClassifications[0].id
372   -${return_value}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].id
373   - [return] ${return_value}
374   -
375   -отримати інформацію про items[0].additionalClassifications[0].description
376   -${return_value}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].description
377   - [return] ${return_value}
\ No newline at end of file
  372 + ${additionalClassificationsScheme}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].scheme
  373 + [return] ${additionalClassificationsScheme.split(' ')[1]}
\ No newline at end of file
... ...
... ... @@ -31,9 +31,9 @@ TestSuiteSetup
31 31 Set Global Variable ${USERS}
32 32 ${users_list}= Get Dictionary Items ${USERS.users}
33 33 :FOR ${username} ${user_data} IN @{users_list}
34   - \ log ${active_users}
  34 + \ log ${active_users}
35 35 \ log ${username}
36   - \ ${status}= Run Keyword And Return Status List Should Contain Value ${active_users} ${username}
  36 + \ ${status}= Run Keyword And Return Status List Should Contain Value ${active_users} ${username}
37 37 \ Run Keyword If '${status}' == 'True' Завантажуємо бібліотеку з реалізацією ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file} площадки
38 38 \ Run Keyword If '${status}' == 'True' Викликати для учасника ${username} Підготувати клієнт для користувача
39 39
... ... @@ -56,7 +56,7 @@ 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
  59 + ${TENDER}= Create Dictionary
60 60 Set Global Variable ${TENDER}
61 61 Log ${TENDER}
62 62 Log ${INITIAL_TENDER_DATA}
... ... @@ -83,8 +83,8 @@ TestSuiteSetup
83 83 ${field_value}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field}
84 84 Звірити поле ${username} ${field} ${field_value}
85 85
86   -Звірити поле
87   - [Arguments] ${username} ${field} ${subject}
  86 +Звірити поле
  87 + [Arguments] ${username} ${field} ${subject}
88 88 ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
89 89 Should Not Be Equal ${field_response} ${None}
90 90 Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker}
... ... @@ -104,13 +104,13 @@ TestSuiteSetup
104 104 Звірити дату ${username} ${field} ${isodate}
105 105
106 106 Звірити дату
107   - [Arguments] ${username} ${field} ${subject}
  107 + [Arguments] ${username} ${field} ${subject}
108 108 ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
109 109 ${returned}= compare_date ${subject} ${field_date}
110 110 Should Not Be Equal ${field_date} ${None}
111 111 Should Not Be Equal ${returned} ${None}
112   - Should Be True '${returned}' == 'True'
113   -
  112 + Should Be True '${returned}' == 'True'
  113 +
114 114 Звірити поля предметів закупівлі багатопредметного тендера
115 115 [Arguments] ${username} ${field}
116 116 Дочекатись синхронізації з майданчиком ${username}
... ... @@ -128,10 +128,10 @@ TestSuiteSetup
128 128 :FOR ${index} IN RANGE ${len_of_items}
129 129 \ Log ${index}
130 130 \ Звірити дату тендера ${viewer} items[${index}].${field}
131   -
  131 +
132 132 Викликати для учасника
133 133 [Documentation]
134   - ... cause sometimes keyword SHOULD fail to pass the testcase, this keyword takes "shouldfail" argument as first one in @{arguments} and switches the behaviour of keyword and "shouldfail"
  134 + ... cause sometimes keyword SHOULD fail to pass the testcase, this keyword takes "shouldfail" argument as first one in @{arguments} and switches the behaviour of keyword and "shouldfail"
135 135 [Arguments] ${username} ${command} @{arguments}
136 136 log ${username}
137 137 log ${command}
... ... @@ -159,7 +159,7 @@ switchsate
159 159 ${status} ${value}= run_keyword_and_ignore_keyword_definations ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments}
160 160 Run keyword if '${status}' == 'PASS' Log Учасник ${username} зміг виконати "${command}" WARN
161 161 [return] ${value}
162   -
  162 +
163 163 Дочекатись дати
164 164 [Arguments] ${date}
165 165 ${wait_timout}= wait_to_date ${date}
... ... @@ -167,12 +167,12 @@ switchsate
167 167
168 168 Дочекатись дати початоку прийому пропозицій
169 169 Дочекатись дати ${TENDER_DATA.data.tenderPeriod.startDate}
170   -
  170 +
171 171 Дочекатись дати закінчення прийому пропозицій
172 172 Дочекатись дати ${TENDER_DATA.data.tenderPeriod.endDate}
173   -
  173 +
174 174 Дочекатись дати початоку аукціону
175 175 Дочекатись дати ${TENDER_DATA.data.auctionPeriod.startDate}
176 176
177 177 Дочекатись дати закінчення аукціону
178   - Дочекатись дати ${TENDER_DATA.data.auctionPeriod.endDate}
\ No newline at end of file
  178 + Дочекатись дати ${TENDER_DATA.data.auctionPeriod.endDate}
\ No newline at end of file
... ...
... ... @@ -60,7 +60,6 @@ def compare_date(data1, data2):
60 60 data1 = TIMEZONE.localize(data1)
61 61 if data2.tzinfo is None:
62 62 data2 = TIMEZONE.localize(data2)
63   -
64 63 delta = (data1-data2).total_seconds()
65 64 if abs(delta) > 60:
66 65 return False
... ...
Please register or login to post a comment