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,18 +3,8 @@ Library Selenium2Screenshots
3 Library String 3 Library String
4 Library DateTime 4 Library DateTime
5 5
6 -  
7 *** Variables *** 6 *** Variables ***
8 ${locator.tenderId} jquery=h3 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 *** Keywords *** 9 *** Keywords ***
20 Підготувати дані для оголошення тендера 10 Підготувати дані для оголошення тендера
@@ -32,6 +22,7 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai @@ -32,6 +22,7 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
32 # login 22 # login
33 Wait Until Page Contains Element id=inputUsername 100 23 Wait Until Page Contains Element id=inputUsername 100
34 Input text id=inputUsername ${USERS.users['${username}'].login} 24 Input text id=inputUsername ${USERS.users['${username}'].login}
  25 + Wait Until Page Contains Element id=inputPassword 100
35 Input text id=inputPassword ${USERS.users['${username}'].password} 26 Input text id=inputPassword ${USERS.users['${username}'].password}
36 Click Button id=btn_submit 27 Click Button id=btn_submit
37 28
@@ -78,43 +69,41 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai @@ -78,43 +69,41 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
78 Input text id=minimalStep ${step_rate} 69 Input text id=minimalStep ${step_rate}
79 Input text id=itemsDescription ${items_description} 70 Input text id=itemsDescription ${items_description}
80 Input text id=itemsQuantity ${quantity} 71 Input text id=itemsQuantity ${quantity}
  72 + Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 100
81 Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 73 Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram']
82 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date} 74 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date}
83 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} 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 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='startDate'] ${start_date} 76 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='startDate'] ${start_date}
86 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} 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 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='endDate'] ${end_date} 78 Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='endDate'] ${end_date}
88 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} 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 Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#classification'] 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 Click Element xpath=//div[contains(@class, 'modal-content')]//button[@ng-click='choose()'] 85 Click Element xpath=//div[contains(@class, 'modal-content')]//button[@ng-click='choose()']
97 -  
98 Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'] 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 Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc} 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 Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] 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 Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] 94 Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
106 Wait Until Page Contains [ТЕСТУВАННЯ] 100 95 Wait Until Page Contains [ТЕСТУВАННЯ] 100
107 Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a 96 Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a
108 ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid 97 ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid
109 ### harcode Idis bacause issues on the E-tender side, to remove, 1 line: 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 [return] ${Ids} 102 [return] ${Ids}
113 103
114 get tender UAid 104 get tender UAid
115 ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")] 105 ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")]
116 ${tender_UAid}= Get Substring ${tender_UAid} 7 27 106 ${tender_UAid}= Get Substring ${tender_UAid} 7 27
117 - [return] ${tender_UAid}  
118 107
119 Oтримати internal id по UAid 108 Oтримати internal id по UAid
120 [Arguments] @{ARGUMENTS} 109 [Arguments] @{ARGUMENTS}
@@ -124,10 +113,49 @@ Oтримати internal id по UAid @@ -124,10 +113,49 @@ Oтримати internal id по UAid
124 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} 113 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
125 ${current_location}= Get Location 114 ${current_location}= Get Location
126 ${tender_id}= Fetch From Right ${current_location} / 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 ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2 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 [Arguments] @{ARGUMENTS} 161 [Arguments] @{ARGUMENTS}
@@ -136,17 +164,68 @@ Oтримати internal id по UAid @@ -136,17 +164,68 @@ Oтримати internal id по UAid
136 ... ${ARGUMENTS[1]} == tenderId 164 ... ${ARGUMENTS[1]} == tenderId
137 165
138 Switch browser ${ARGUMENTS[0]} 166 Switch browser ${ARGUMENTS[0]}
139 - Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} 167 + Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
140 Wait Until Page Contains Список закупівель 10 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 Click Link jquery=a[href^="#/tenderDetailes"] 173 Click Link jquery=a[href^="#/tenderDetailes"]
146 Wait Until Page Contains ${ARGUMENTS[1]} 10 174 Wait Until Page Contains ${ARGUMENTS[1]} 10
147 sleep 1 175 sleep 1
148 Capture Page Screenshot 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 [Arguments] @{ARGUMENTS} 230 [Arguments] @{ARGUMENTS}
152 [Documentation] 231 [Documentation]
@@ -281,54 +360,3 @@ Oтримати internal id по UAid @@ -281,54 +360,3 @@ Oтримати internal id по UAid
281 відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last> 360 відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last>
282 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last> 361 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
283 [return] ${return_value} 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,25 +5,170 @@ Library DateTime
5 5
6 *** Variables *** 6 *** Variables ***
7 ${locator.tenderId} jquery=h3 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 *** Keywords *** 9 *** Keywords ***
20 Підготувати клієнт для користувача 10 Підготувати клієнт для користувача
21 - [Arguments] ${username} 11 + [Arguments] @{ARGUMENTS}
22 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо 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 [Arguments] @{ARGUMENTS} 174 [Arguments] @{ARGUMENTS}
@@ -149,13 +149,13 @@ ${question_id} 0 @@ -149,13 +149,13 @@ ${question_id} 0
149 Set_To_Object ${TENDER_DATA.data} items ${items} 149 Set_To_Object ${TENDER_DATA.data} items ${items}
150 ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token} 150 ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token}
151 ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA} 151 ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA}
152 - 152 +
153 153
154 Задати питання 154 Задати питання
155 [Documentation] 155 [Documentation]
156 ... ${ARGUMENTS[0]} == username 156 ... ${ARGUMENTS[0]} == username
157 ... ${ARGUMENTS[1]} == tender_uid 157 ... ${ARGUMENTS[1]} == tender_uid
158 - ... ${ARGUMENTS[2]} == bid 158 + ... ${ARGUMENTS[2]} == question
159 [Arguments] @{ARGUMENTS} 159 [Arguments] @{ARGUMENTS}
160 log many @{ARGUMENTS} 160 log many @{ARGUMENTS}
161 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} 161 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
@@ -163,7 +163,7 @@ ${question_id} 0 @@ -163,7 +163,7 @@ ${question_id} 0
163 log ${USERS.users['${ARGUMENTS[0]}']} 163 log ${USERS.users['${ARGUMENTS[0]}']}
164 ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]} 164 ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]}
165 [return] ${biddingresponce} 165 [return] ${biddingresponce}
166 - 166 +
167 Відповісти на питання 167 Відповісти на питання
168 [Documentation] 168 [Documentation]
169 ... ${ARGUMENTS[0]} == username 169 ... ${ARGUMENTS[0]} == username
@@ -192,7 +192,7 @@ ${question_id} 0 @@ -192,7 +192,7 @@ ${question_id} 0
192 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} 192 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
193 ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints 193 ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints
194 Log object data ${complaint} complaint 194 Log object data ${complaint} complaint
195 - 195 +
196 порівняти скаргу 196 порівняти скаргу
197 [Documentation] 197 [Documentation]
198 ... ${ARGUMENTS[0]} == username 198 ... ${ARGUMENTS[0]} == username
@@ -209,7 +209,7 @@ ${question_id} 0 @@ -209,7 +209,7 @@ ${question_id} 0
209 #:FOR ${element} IN ${ARGUMENTS[2].data} 209 #:FOR ${element} IN ${ARGUMENTS[2].data}
210 #\ log ${element} 210 #\ log ${element}
211 #\ Dictionary Should Contain Value ${complaint} ${element} 211 #\ Dictionary Should Contain Value ${complaint} ${element}
212 - 212 +
213 Обробити скаргу 213 Обробити скаргу
214 [Documentation] 214 [Documentation]
215 ... ${ARGUMENTS[0]} == username 215 ... ${ARGUMENTS[0]} == username
@@ -238,7 +238,7 @@ ${question_id} 0 @@ -238,7 +238,7 @@ ${question_id} 0
238 log ${tender}отримати 238 log ${tender}отримати
239 ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]} 239 ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]}
240 [return] ${biddingresponce} 240 [return] ${biddingresponce}
241 - 241 +
242 Змінити цінову пропозицію 242 Змінити цінову пропозицію
243 [Documentation] 243 [Documentation]
244 ... ${ARGUMENTS[0]} == username 244 ... ${ARGUMENTS[0]} == username
@@ -264,7 +264,7 @@ ${question_id} 0 @@ -264,7 +264,7 @@ ${question_id} 0
264 ${changed_bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_bid ${tender} ${ARGUMENTS[2]} 264 ${changed_bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_bid ${tender} ${ARGUMENTS[2]}
265 Log ${changed_bid} 265 Log ${changed_bid}
266 [return] ${changed_bid} 266 [return] ${changed_bid}
267 - 267 +
268 Прийняти цінову пропозицію 268 Прийняти цінову пропозицію
269 [Documentation] 269 [Documentation]
270 ... ${ARGUMENTS[0]} == username 270 ... ${ARGUMENTS[0]} == username
@@ -286,14 +286,20 @@ ${question_id} 0 @@ -286,14 +286,20 @@ ${question_id} 0
286 [Arguments] @{ARGUMENTS} 286 [Arguments] @{ARGUMENTS}
287 log ${ARGUMENTS[0]} 287 log ${ARGUMENTS[0]}
288 log ${ARGUMENTS[1]} 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 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id} 296 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id}
290 ${tender}= set_access_key ${tender} ${ARGUMENTS[1]} 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 [Documentation] 304 [Documentation]
299 ... ${ARGUMENTS[0]} == username 305 ... ${ARGUMENTS[0]} == username
@@ -310,7 +316,7 @@ ${question_id} 0 @@ -310,7 +316,7 @@ ${question_id} 0
310 ${filename}= Set Variable newfile.txt 316 ${filename}= Set Variable newfile.txt
311 Set_To_Object ${TENDER_DATA.data} documents.title ${filename} 317 Set_To_Object ${TENDER_DATA.data} documents.title ${filename}
312 ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${filename} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} 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 [Documentation] 322 [Documentation]
@@ -327,4 +333,33 @@ ${question_id} 0 @@ -327,4 +333,33 @@ ${question_id} 0
327 Set_To_Object ${TENDER_DATA.data} documents.title ${filename} 333 Set_To_Object ${TENDER_DATA.data} documents.title ${filename}
328 ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_tender_document ${filename} ${tender} 334 ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_tender_document ${filename} ${tender}
329 Log object data ${reply} reply 335 Log object data ${reply} reply
330 -  
  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}
1 -*** Setting *** 1 + *** Setting ***
2 Library Selenium2Screenshots 2 Library Selenium2Screenshots
3 Library String 3 Library String
4 Library DateTime 4 Library DateTime
@@ -24,8 +24,18 @@ Publicbid: @@ -24,8 +24,18 @@ Publicbid:
24 period_interval: 2 24 period_interval: 2
25 Netcast: 25 Netcast:
26 keywords_file: netcast 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 timout_on_wait: 15 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 Newtend: 39 Newtend:
30 keywords_file: newtend 40 keywords_file: newtend
31 url: http://openprocurement:test@dev23.newtend.com 41 url: http://openprocurement:test@dev23.newtend.com
@@ -19,7 +19,7 @@ users: @@ -19,7 +19,7 @@ users:
19 password: Password1 19 password: Password1
20 browser: firefox 20 browser: firefox
21 position: [0, 0] 21 position: [0, 0]
22 - size: [640, 450] 22 + size: [740, 550]
23 E-tender_Provider1: 23 E-tender_Provider1:
24 broker: E-tender 24 broker: E-tender
25 username: E-tendertest 25 username: E-tendertest
@@ -83,6 +83,15 @@ users: @@ -83,6 +83,15 @@ users:
83 browser: firefox 83 browser: firefox
84 position: [0, 0] 84 position: [0, 0]
85 size: [640, 450] 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 Newtend_Provider1: 95 Newtend_Provider1:
87 broker: Newtend 96 broker: Newtend
88 username: Newtendtest 97 username: Newtendtest
@@ -90,8 +99,17 @@ users: @@ -90,8 +99,17 @@ users:
90 login: qtest@mailinator.com 99 login: qtest@mailinator.com
91 password: 123123 100 password: 123123
92 browser: firefox 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 Newtend_Provider2: 113 Newtend_Provider2:
96 broker: Newtend 114 broker: Newtend
97 username: Newtendtest 115 username: Newtendtest
@@ -66,7 +66,7 @@ def test_tender_data(period_interval=2): @@ -66,7 +66,7 @@ def test_tender_data(period_interval=2):
66 "scheme": u"CPV", 66 "scheme": u"CPV",
67 "id": u"44617100-9", 67 "id": u"44617100-9",
68 "description": u"Cartons", 68 "description": u"Cartons",
69 - "description_ua": u"Картонки" 69 + "description_ua": u"Картонки",
70 }, 70 },
71 "additionalClassifications": [ 71 "additionalClassifications": [
72 { 72 {
@@ -134,7 +134,7 @@ def prom_test_tender_data(): @@ -134,7 +134,7 @@ def prom_test_tender_data():
134 { 134 {
135 "description": fake.catch_phrase(), 135 "description": fake.catch_phrase(),
136 "deliveryDate": { 136 "deliveryDate": {
137 - "startDate": (now + timedelta(days=4)).isoformat(), 137 + "startDate": (now + timedelta(days=4)).isoformat(),
138 "endDate": (now + timedelta(days=5)).isoformat() 138 "endDate": (now + timedelta(days=5)).isoformat()
139 }, 139 },
140 "deliveryLocation": { 140 "deliveryLocation": {
@@ -206,15 +206,15 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -206,15 +206,15 @@ def test_tender_data_multiple_lots(period_interval=2):
206 "name": fake.name(), 206 "name": fake.name(),
207 "telephone": fake.phone_number() 207 "telephone": fake.phone_number()
208 } 208 }
209 - },  
210 - "value": { 209 + },
  210 + "value": {
211 "amount": 50000, 211 "amount": 50000,
212 "currency": u"UAH" 212 "currency": u"UAH"
213 }, 213 },
214 "minimalStep": { 214 "minimalStep": {
215 - "amount": 100,  
216 - "currency": u"UAH"  
217 - }, 215 + "amount": 100,
  216 + "currency": u"UAH"
  217 + },
218 "items": [ 218 "items": [
219 { 219 {
220 "description": fake.catch_phrase(), 220 "description": fake.catch_phrase(),
@@ -236,7 +236,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -236,7 +236,7 @@ def test_tender_data_multiple_lots(period_interval=2):
236 "scheme": u"CPV", 236 "scheme": u"CPV",
237 "id": u"44617100-9", 237 "id": u"44617100-9",
238 "description": u"Cartons", 238 "description": u"Cartons",
239 - "description_ua": u"Картонки" 239 + "description_ua": u"Картонки",
240 }, 240 },
241 "additionalClassifications": [ 241 "additionalClassifications": [
242 { 242 {
@@ -358,12 +358,12 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -358,12 +358,12 @@ def test_tender_data_multiple_lots(period_interval=2):
358 } 358 }
359 ], 359 ],
360 "enquiryPeriod": { 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 "tenderPeriod": { 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,7 +465,7 @@ def test_bid_data():
465 } 465 }
466 } 466 }
467 }) 467 })
468 - 468 +
469 def auction_bid(): 469 def auction_bid():
470 return munchify({ 470 return munchify({
471 "data": {"value": { 471 "data": {"value": {
@@ -25,9 +25,9 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -25,9 +25,9 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
25 25
26 Можливість оголосити багатопредметний тендер 26 Можливість оголосити багатопредметний тендер
27 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер 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 Set Global Variable ${INTERNAL_TENDER_ID} 31 Set Global Variable ${INTERNAL_TENDER_ID}
32 Set Global Variable ${TENDER_ID} 32 Set Global Variable ${TENDER_ID}
33 ${LAST_MODIFICATION_DATE}= Get Current Date 33 ${LAST_MODIFICATION_DATE}= Get Current Date
@@ -36,12 +36,12 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -36,12 +36,12 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
36 Отримати багатопредметний тендер по ідентифікатору 36 Отримати багатопредметний тендер по ідентифікатору
37 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору 37 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору
38 Дочекатись синхронізації з майданчиком ${viewer} 38 Дочекатись синхронізації з майданчиком ${viewer}
39 - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID}  
40 - 39 + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID}
  40 +
41 Відображення опису позицій закупівлі багатопредметного тендера 41 Відображення опису позицій закупівлі багатопредметного тендера
42 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 42 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
43 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} description 43 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} description
44 - 44 +
45 Відображення дати доставки позицій закупівлі багатопредметного тендера 45 Відображення дати доставки позицій закупівлі багатопредметного тендера
46 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 46 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
47 Звірити дату предметів закупівлі багатопредметного тендера ${viewer} deliveryDate.endDate 47 Звірити дату предметів закупівлі багатопредметного тендера ${viewer} deliveryDate.endDate
@@ -49,11 +49,11 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -49,11 +49,11 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
49 Відображення координат широти доставки позицій закупівлі багатопредметного тендера 49 Відображення координат широти доставки позицій закупівлі багатопредметного тендера
50 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 50 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
51 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.latitude 51 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.latitude
52 - 52 +
53 Відображення координат довготи доставки позицій закупівлі багатопредметного тендера 53 Відображення координат довготи доставки позицій закупівлі багатопредметного тендера
54 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 54 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
55 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.longitude 55 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.longitude
56 - 56 +
57 Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера 57 Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера
58 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 58 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
59 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.countryName 59 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.countryName
@@ -61,53 +61,53 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -61,53 +61,53 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
61 Відображення пошт коду доставки позицій закупівлі багатопредметного тендера 61 Відображення пошт коду доставки позицій закупівлі багатопредметного тендера
62 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 62 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
63 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.postalCode 63 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.postalCode
64 - 64 +
65 Відображення регіону доставки позицій закупівлі багатопредметного тендера 65 Відображення регіону доставки позицій закупівлі багатопредметного тендера
66 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 66 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
67 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.region 67 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.region
68 - 68 +
69 Відображення locality адреси доставки позицій закупівлі багатопредметного тендера 69 Відображення locality адреси доставки позицій закупівлі багатопредметного тендера
70 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 70 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
71 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.locality 71 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.locality
72 - 72 +
73 Відображення вулиці доставки позицій закупівлі багатопредметного тендера 73 Відображення вулиці доставки позицій закупівлі багатопредметного тендера
74 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 74 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
75 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.streetAddress 75 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.streetAddress
76 - 76 +
77 Відображення схеми класифікації позицій закупівлі багатопредметного тендера 77 Відображення схеми класифікації позицій закупівлі багатопредметного тендера
78 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 78 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
79 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.scheme 79 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.scheme
80 - 80 +
81 Відображення ідентифйікатора класифікації позицій закупівлі багатопредметного тендера 81 Відображення ідентифйікатора класифікації позицій закупівлі багатопредметного тендера
82 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 82 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
83 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.id 83 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.id
84 - 84 +
85 Відображення опису класифікації позицій закупівлі багатопредметного тендера 85 Відображення опису класифікації позицій закупівлі багатопредметного тендера
86 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 86 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
87 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.description 87 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.description
88 - 88 +
89 Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера 89 Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера
90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
91 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.scheme 91 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.scheme
92 - 92 +
93 Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера 93 Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера
94 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 94 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
95 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.id 95 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.id
96 - 96 +
97 Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера 97 Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера
98 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 98 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
99 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.description 99 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.description
100 - 100 +
101 Відображення назви одиниці позицій закупівлі багатопредметного тендера 101 Відображення назви одиниці позицій закупівлі багатопредметного тендера
102 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 102 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
103 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.name 103 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.name
104 - 104 +
105 Відображення коду одиниці позицій закупівлі багатопредметного тендера 105 Відображення коду одиниці позицій закупівлі багатопредметного тендера
106 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 106 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
107 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.code 107 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.code
108 - 108 +
109 Відображення кількості позицій закупівлі багатопредметного тендера 109 Відображення кількості позицій закупівлі багатопредметного тендера
110 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 110 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
111 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} quantity 111 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} quantity
112 -  
113 - 112 +
  113 +
  1 +#!/usr/bin/env python
1 # -*- coding: utf-8 - 2 # -*- coding: utf-8 -
2 import os 3 import os
3 from munch import munchify, Munch, fromYAML 4 from munch import munchify, Munch, fromYAML
@@ -22,9 +23,15 @@ from .initial_data import ( @@ -22,9 +23,15 @@ from .initial_data import (
22 import calendar 23 import calendar
23 24
24 TIMEZONE = timezone('Europe/Kiev') 25 TIMEZONE = timezone('Europe/Kiev')
  26 +
25 def get_date(): 27 def get_date():
26 return datetime.now().isoformat() 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 def convert_date_to_etender_format(isodate): 35 def convert_date_to_etender_format(isodate):
29 iso_dt=parse_date(isodate) 36 iso_dt=parse_date(isodate)
30 date_string = iso_dt.strftime("%d-%m-%Y") 37 date_string = iso_dt.strftime("%d-%m-%Y")
@@ -168,4 +175,4 @@ def newtend_date_picker_index(isodate): @@ -168,4 +175,4 @@ def newtend_date_picker_index(isodate):
168 #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO")) 175 #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO"))
169 if now.day>iso_dt.day: 176 if now.day>iso_dt.day:
170 mod = calendar.monthrange(now.year, now.month)[1] + mod 177 mod = calendar.monthrange(now.year, now.month)[1] + mod
171 - return mod + iso_dt.day  
  178 + return mod + iso_dt.day
@@ -26,6 +26,8 @@ ${question_id} 0 @@ -26,6 +26,8 @@ ${question_id} 0
26 *** Test Cases *** 26 *** Test Cases ***
27 Можливість оголосити однопредметний тендер 27 Можливість оголосити однопредметний тендер
28 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер 28 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  29 + log ${TEMPDIR}
  30 + log ${CURDIR}
29 ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} 31 ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA}
30 ${TENDER_ID}= Get From List ${ids} 0 32 ${TENDER_ID}= Get From List ${ids} 0
31 Set Global Variable ${TENDER_ID} 33 Set Global Variable ${TENDER_ID}
@@ -35,7 +37,6 @@ ${question_id} 0 @@ -35,7 +37,6 @@ ${question_id} 0
35 Можливасть додати тендерну документацію 37 Можливасть додати тендерну документацію
36 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ 38 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ
37 ${filename}= Set Variable file.txt 39 ${filename}= Set Variable file.txt
38 -  
39 Викликати для учасника ${tender_owner} Завантажити документ ${filename} ${TENDER_ID} 40 Викликати для учасника ${tender_owner} Завантажити документ ${filename} ${TENDER_ID}
40 41
41 Можливість подати скаргу на умови 42 Можливість подати скаргу на умови
@@ -265,7 +266,7 @@ ${question_id} 0 @@ -265,7 +266,7 @@ ${question_id} 0
265 [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію 266 [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію
266 ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER_ID} ${biddingresponce0} 267 ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER_ID} ${biddingresponce0}
267 268
268 -Подати цінову пропозицію bidder1 269 +Подати повторно цінову пропозицію першим учасником
269 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію 270 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
270 Дочекатись дати початоку прийому пропозицій 271 Дочекатись дати початоку прийому пропозицій
271 ${bid}= test bid data 272 ${bid}= test bid data
@@ -274,7 +275,7 @@ ${question_id} 0 @@ -274,7 +275,7 @@ ${question_id} 0
274 Set Global Variable ${biddingresponce1} 275 Set Global Variable ${biddingresponce1}
275 log ${biddingresponce1} 276 log ${biddingresponce1}
276 277
277 -Можливість змінити цінову пропозицію до 50000 278 +Можливість змінити повторну цінову пропозицію до 50000
278 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію 279 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
279 Set To Dictionary ${biddingresponce1.data.value} amount 50000 280 Set To Dictionary ${biddingresponce1.data.value} amount 50000
280 Log ${biddingresponce1.data.value} 281 Log ${biddingresponce1.data.value}
@@ -282,23 +283,37 @@ ${question_id} 0 @@ -282,23 +283,37 @@ ${question_id} 0
282 Set Global Variable ${biddingresponce2} 283 Set Global Variable ${biddingresponce2}
283 log ${biddingresponce2} 284 log ${biddingresponce2}
284 285
285 -Можливість змінити цінову пропозицію до 1 286 +Можливість змінити повторну цінову пропозицію до 400
286 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію 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 Log ${biddingresponce1.data.value} 289 Log ${biddingresponce1.data.value}
289 ${biddingresponce3}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1} 290 ${biddingresponce3}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1}
290 Set Global Variable ${biddingresponce3} 291 Set Global Variable ${biddingresponce3}
291 log ${biddingresponce3} 292 log ${biddingresponce3}
292 293
293 -Завантажити документ першим учасником 294 +Завантажити документ першим учасником в повторну пропозицію
294 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця 295 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
295 log ${USERS.users['${provider}'].broker} 296 log ${USERS.users['${provider}'].broker}
296 log ${biddingresponce1} 297 log ${biddingresponce1}
297 ${bid_id}= get variable value ${biddingresponce1.data.id} 298 ${bid_id}= get variable value ${biddingresponce1.data.id}
298 ${token1}= Get Variable Value ${biddingresponce1.access.token} 299 ${token1}= Get Variable Value ${biddingresponce1.access.token}
299 log ${token1} 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 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця 319 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
@@ -306,7 +321,8 @@ ${question_id} 0 @@ -306,7 +321,8 @@ ${question_id} 0
306 log ${biddingresponce1} 321 log ${biddingresponce1}
307 ${bid_id}= get variable value ${biddingresponce1.data.id} 322 ${bid_id}= get variable value ${biddingresponce1.data.id}
308 ${token1}= Get Variable Value ${biddingresponce1.access.token} 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 log ${token1} 326 log ${token1}
311 Викликати для учасника ${provider} Змінити документ в ставці ${token1} ${bid_id} ${upload_doc_responce_id} 327 Викликати для учасника ${provider} Змінити документ в ставці ${token1} ${bid_id} ${upload_doc_responce_id}
312 328
@@ -316,7 +332,7 @@ ${question_id} 0 @@ -316,7 +332,7 @@ ${question_id} 0
316 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання 332 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання
317 ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER_ID} ${questions[${question_id}]} 333 ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER_ID} ${questions[${question_id}]}
318 334
319 -Подати цінову пропозицію bidder2 335 +Подати цінову пропозицію другим учасником
320 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію 336 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
321 Дочекатись дати початоку прийому пропозицій 337 Дочекатись дати початоку прийому пропозицій
322 ${bid}= test bid data 338 ${bid}= test bid data
@@ -345,7 +361,6 @@ ${question_id} 0 @@ -345,7 +361,6 @@ ${question_id} 0
345 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 361 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
346 Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} 362 Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
347 363
348 -  
349 Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій 364 Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій
350 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій 365 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій
351 Дочекатись дати закінчення прийому пропозицій 366 Дочекатись дати закінчення прийому пропозицій
@@ -384,7 +399,7 @@ ${question_id} 0 @@ -384,7 +399,7 @@ ${question_id} 0
384 log ${biddingresponce5} 399 log ${biddingresponce5}
385 ${bid_id}= get variable value ${biddingresponce5.data.id} 400 ${bid_id}= get variable value ${biddingresponce5.data.id}
386 ${token1}= Get Variable Value ${biddingresponce5.access.token} 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 log ${upload_doc_responce_id2} 403 log ${upload_doc_responce_id2}
389 log ${token1} 404 log ${token1}
390 Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id2} 405 Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id2}
@@ -396,14 +411,20 @@ ${question_id} 0 @@ -396,14 +411,20 @@ ${question_id} 0
396 log ${biddingresponce1} 411 log ${biddingresponce1}
397 ${bid_id}= get variable value ${biddingresponce1.data.id} 412 ${bid_id}= get variable value ${biddingresponce1.data.id}
398 ${token1}= Get Variable Value ${biddingresponce1.access.token} 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 log ${token1} 415 log ${token1}
401 Викликати для учасника ${provider} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id} 416 Викликати для учасника ${provider} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id}
402 417
403 -  
404 Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій 418 Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій
405 [Tags] ${USERS.users['${provider}'].broker}: Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій 419 [Tags] ${USERS.users['${provider}'].broker}: Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій
406 ${biddingresponce8}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} 420 ${biddingresponce8}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}
407 Set Global Variable ${biddingresponce8} 421 Set Global Variable ${biddingresponce8}
408 log ${biddingresponce8} 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}
Please register or login to post a comment