Commit c66d0cfe0674332f189ee117ffed8d64ae158044

Authored by biviktorqc
2 parents c6098124 c59df0e1

Merge branch 'e-tender_+_netcast'

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