Commit 669074eade19d7ad4edaaa6b829a5f41e8cffd54

Authored by Taras Kozlovskyi
1 parent e374d2cb

Update tests

@@ -4,15 +4,15 @@ Library String @@ -4,15 +4,15 @@ Library String
4 LIbrary Collections 4 LIbrary Collections
5 LIbrary Selenium2Library 5 LIbrary Selenium2Library
6 Library DebugLibrary 6 Library DebugLibrary
7 - 7 +Resource keywords.robot
8 Suite Setup TestCaseSetup 8 Suite Setup TestCaseSetup
9 Suite Teardown Close all browsers 9 Suite Teardown Close all browsers
10 10
11 -  
12 *** Variables *** 11 *** Variables ***
13 -${viewer} E-tender User  
14 -${provider} Andrew  
15 -@{item_fields} description quantity classification.id classification.description deliveryAddress deliveryDate 12 +${viewer} Tender User
  13 +# Tender Viewer
  14 +${provider} Tender User
  15 +
16 16
17 *** Test Cases *** 17 *** Test Cases ***
18 Можливість оголосити тендер 18 Можливість оголосити тендер
@@ -66,9 +66,6 @@ ${provider} Andrew @@ -66,9 +66,6 @@ ${provider} Andrew
66 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 66 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
67 Звірити поле тендера ${viewer} procuringEntity.name 67 Звірити поле тендера ${viewer} procuringEntity.name
68 68
69 -  
70 -  
71 -  
72 Відображення предмету закупівлі однопредметного тендера 69 Відображення предмету закупівлі однопредметного тендера
73 [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера 70 [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера
74 Звірити поле тендера ${viewer} items[0].description 71 Звірити поле тендера ${viewer} items[0].description
@@ -84,7 +81,11 @@ ${provider} Andrew @@ -84,7 +81,11 @@ ${provider} Andrew
84 81
85 Відображення місце поставки закупівлі однопредметного тендера 82 Відображення місце поставки закупівлі однопредметного тендера
86 [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера 83 [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера
87 - Звірити поле тендера ${viewer} items[0].deliveryAddress 84 + Звірити поле тендера ${viewer} items[0].deliveryAddress.countryName
  85 + Звірити поле тендера ${viewer} items[0].deliveryAddress.locality
  86 + Звірити поле тендера ${viewer} items[0].deliveryAddress.postalCode
  87 + Звірити поле тендера ${viewer} items[0].deliveryAddress.region
  88 + Звірити поле тендера ${viewer} items[0].deliveryAddress.streetAddress
88 89
89 Відображення строки поставки закупівлі однопредметного тендера 90 Відображення строки поставки закупівлі однопредметного тендера
90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера 91 [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера
@@ -97,7 +98,6 @@ ${provider} Andrew @@ -97,7 +98,6 @@ ${provider} Andrew
97 Set Global Variable ${LAST_MODIFICATION_DATE} 98 Set Global Variable ${LAST_MODIFICATION_DATE}
98 отримати останні зміни в тендері 99 отримати останні зміни в тендері
99 100
100 -  
101 Відображення заголовоку анонімного питання без відповіді 101 Відображення заголовоку анонімного питання без відповіді
102 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей 102 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
103 Дочекатись синхронізації з майданчиком ${viewer} 103 Дочекатись синхронізації з майданчиком ${viewer}
@@ -108,96 +108,27 @@ ${provider} Andrew @@ -108,96 +108,27 @@ ${provider} Andrew
108 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей 108 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
109 Звірити поле тендера ${viewer} questions[0].description 109 Звірити поле тендера ${viewer} questions[0].description
110 110
111 -  
112 -Відображення дата анонімного питання без відповіді 111 +Відображення дати анонімного питання без відповіді
113 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей 112 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
114 Звірити поле тендера ${viewer} questions[0].date 113 Звірити поле тендера ${viewer} questions[0].date
115 114
116 - # ${users_list}= Get Dictionary Items ${USERS.users}  
117 - # :FOR ${username} ${User_Data} IN @{users_list}  
118 - # \ Run Keyword If '${User_Name}' != '${USERS.tender_owner}' Відображення основних даних оголошеного тендера ${username}  
119 -#  
120 -# Відображення однопредметного тендера  
121 - # ${users_list}= Get Dictionary Items ${USERS.users}  
122 - # :FOR ${username} ${User_Data} IN @{users_list}  
123 - # \ Run Keyword If '${User_Name}' != '${USERS.tender_owner}' Відображення однопредметного тендера ${username}  
124 -#  
125 -#  
126 -# Можливість змінити основні властивості тендера  
127 - # [tags] all_stages  
128 - # Власник змінив основні властивості тендера  
129 - # Інші учасники побачили створений тендер  
130 -#  
131 -# Питання і відповідь  
132 - # Учасник Andrew задав 1-ше питання  
133 - # Інші учасники побачили 1-ше питання  
134 - # Власник відповів на 1-ше питання  
135 - # Інші учасники побачили відповідь на 1-ше питання  
136 -#  
137 -  
138 -  
139 -*** Keywords ***  
140 -TestCaseSetup  
141 - Завантажуємо дані про корисувачів і площадки  
142 - Підготовка початкових даних  
143 -  
144 -  
145 -Завантажуємо дані про корисувачів і площадки  
146 - # Init Brokers  
147 - ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml  
148 - ${BROKERS}= load_initial_data_from ${file_path}  
149 - Set Global Variable ${BROKERS}  
150 - ${brokers_list}= Get Dictionary Items ${BROKERS}  
151 - :FOR ${Broker_Name} ${Broker_Data} IN @{brokers_list}  
152 - \ Завантажуємо бібліотеку з реалізацією ${Broker_Data.keywords_file} площадки  
153 - # Init Users  
154 - ${file_path}= Get Variable Value ${USERS_FILE} users.yaml  
155 - ${USERS}= load_initial_data_from ${file_path}  
156 - Set Global Variable ${USERS}  
157 - ${users_list}= Get Dictionary Items ${USERS.users}  
158 - :FOR ${username} ${user_data} IN @{users_list}  
159 - \ Викликати для учасника ${username} Підготувати клієнт для користувача  
160 -  
161 -Підготовка початкових даних  
162 - @{QUESTIONS} = Create list  
163 - ${question}= test question data  
164 - Append to list ${QUESTIONS} ${question}  
165 - Set Global Variable ${QUESTIONS}  
166 - ${INITIAL_TENDER_DATA}= prepare_test_tender_data  
167 - Set Global Variable ${INITIAL_TENDER_DATA}  
168 -  
169 -Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки  
170 - Import Resource ${CURDIR}/brokers/${keywords_file}.robot  
171 -  
172 -  
173 -##################################################################################  
174 -Дочекатись синхронізації з майданчиком  
175 - [Arguments] ${username}  
176 - [Documentation]  
177 - ... ${ARGUMENTS[0]} == username  
178 - ... ${ARGUMENTS[1]} == tenderId  
179 - ... ${ARGUMENTS[2]} == id  
180 -  
181 - ${now}= Get Current Date  
182 - ${delta}= Subtract Date From Date ${now} ${LAST_MODIFICATION_DATE}  
183 - ${wait_timout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait} ${delta}  
184 - Run Keyword If ${wait_timout}>0 Sleep ${wait_timout}  
185 -  
186 -отримати останні зміни в тендері  
187 - ${TENDER_DATA}= Викликати для учасника ${USERS.tender_owner} Пошук тендера по ідентифікатору ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id}  
188 - Set To Dictionary ${TENDER_DATA} access_token ${access_token}  
189 - Set Global Variable ${TENDER_DATA}  
190 - Log object data ${TENDER_DATA} tender_with_question  
191 -  
192 -Звірити поле тендера  
193 - [Arguments] ${username} ${field}  
194 - ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field}  
195 - ${field_value}= Get_From_Object ${TENDER_DATA.data} ${field}  
196 - Should Be Equal ${field_value} ${field_response} Майданчик ${USERS.users['${username}'].broker}  
197 -  
198 -  
199 -Викликати для учасника  
200 - [Arguments] ${username} ${command} @{arguments}  
201 - ${status} ${value}= run_keyword_and_ignore_keyword_definations ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments}  
202 - Run keyword if '${status}' == 'FAIL' Log Учасник ${username} не зміг виконати "${command}" WARN  
203 - [return] ${value} 115 +Відповісти на запитання
  116 + [Tags] ${USERS.users['${USERS.tender_owner}'].broker}: Можливість відповісти на запитання
  117 + Викликати для учасника ${USERS.tender_owner} Відповісти на питання ${TENDER_DATA.data.id} 0 ${ANSWERS[0]}
  118 + ${LAST_MODIFICATION_DATE}= Get Current Date
  119 + Set Global Variable ${LAST_MODIFICATION_DATE}
  120 + отримати останні зміни в тендері
  121 +
  122 +Відображення відповіді на запитання
  123 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання
  124 + Дочекатись синхронізації з майданчиком ${viewer}
  125 + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id}
  126 + Звірити поле тендера ${viewer} questions[0].answer
  127 +
  128 +
  129 +Подати цінову пропозицію
  130 + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
  131 + Дочекатись дати початоку прийому пропозицій
  132 + ${bid}= test bid data
  133 + Log object data ${bid}
  134 + Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_DATA.data.id} ${bid}
@@ -157,12 +157,16 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai @@ -157,12 +157,16 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
157 [return] ${return_value} 157 [return] ${return_value}
158 158
159 отримати інформацію про questions[${question_id}].description 159 отримати інформацію про questions[${question_id}].description
160 - відмітити на сторінці поле з тендера questions title jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)> 160 + відмітити на сторінці поле з тендера questions description jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
161 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)> 161 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
162 [return] ${return_value} 162 [return] ${return_value}
163 163
164 отримати інформацію про questions[${question_id}].date 164 отримати інформацію про questions[${question_id}].date
165 - відмітити на сторінці поле з тендера questions title jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)> 165 + відмітити на сторінці поле з тендера question date jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
166 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)> 166 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
167 [return] ${return_value} 167 [return] ${return_value}
168 168
  169 +отримати інформацію про questions[${question_id}].answer
  170 + відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last>
  171 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
  172 + [return] ${return_value}
@@ -34,53 +34,23 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper @@ -34,53 +34,23 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper
34 [return] ${tender_data} 34 [return] ${tender_data}
35 35
36 36
37 -отримати інформацію із тендера  
38 - [Arguments] @{ARGUMENTS}  
39 - [Documentation]  
40 - ... ${ARGUMENTS[0]} == username  
41 - ... ${ARGUMENTS[1]} == fieldname  
42 - [return] ${USERS.users['${ARGUMENTS[0]}'].tender_data.data.${ARGUMENTS[1]}}  
43 -  
44 -  
45 -  
46 -отримати інформацію про description для предмету закупівлі в однопредметному тендері  
47 - [Arguments] @{ARGUMENTS}  
48 - [Documentation]  
49 - ... ${ARGUMENTS[0]} == username  
50 - [return] ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].description}  
51 -  
52 -отримати інформацію про quantity для предмету закупівлі в однопредметному тендері  
53 - [Arguments] @{ARGUMENTS}  
54 - [Documentation]  
55 - ... ${ARGUMENTS[0]} == username  
56 - [return] ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].quantity}  
57 -  
58 -  
59 -отримати інформацію про classification.id для предмету закупівлі в однопредметному тендері  
60 - [Arguments] @{ARGUMENTS}  
61 - [Documentation]  
62 - ... ${ARGUMENTS[0]} == username  
63 - [return] ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].classification.id}  
64 -  
65 -  
66 -отримати інформацію про classification.description для предмету закупівлі в однопредметному тендері 37 +обновити сторінку з тендером
67 [Arguments] @{ARGUMENTS} 38 [Arguments] @{ARGUMENTS}
68 [Documentation] 39 [Documentation]
69 ... ${ARGUMENTS[0]} == username 40 ... ${ARGUMENTS[0]} == username
70 - [return] ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].classification.description} 41 + ... ${ARGUMENTS[1]} == tenderId
  42 + ... ${ARGUMENTS[2]} == id
  43 + openprocurement_client.Пошук тендера по ідентифікатору @{ARGUMENTS}
71 44
72 45
73 -отримати інформацію про deliveryAddress для предмету закупівлі в однопредметному тендері 46 +отримати інформацію із тендера
74 [Arguments] @{ARGUMENTS} 47 [Arguments] @{ARGUMENTS}
75 [Documentation] 48 [Documentation]
76 ... ${ARGUMENTS[0]} == username 49 ... ${ARGUMENTS[0]} == username
77 - [return] ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].deliveryAddress} 50 + ... ${ARGUMENTS[1]} == fieldname
  51 + ${field_value}= Get_From_Object ${USERS.users['${ARGUMENTS[0]}'].tender_data.data} ${ARGUMENTS[1]}
  52 + [return] ${field_value}
78 53
79 -отримати інформацію про deliveryDate для предмету закупівлі в однопредметному тендері  
80 - [Arguments] @{ARGUMENTS}  
81 - [Documentation]  
82 - ... ${ARGUMENTS[0]} == username  
83 - [return] ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].deliveryDate}  
84 54
85 Внести зміни в тендер 55 Внести зміни в тендер
86 [Arguments] @{ARGUMENTS} 56 [Arguments] @{ARGUMENTS}
@@ -91,7 +61,6 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper @@ -91,7 +61,6 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper
91 ... ${ARGUMENTS[3]} == fieldvalue 61 ... ${ARGUMENTS[3]} == fieldvalue
92 отримати тендер ${ARGUMENTS[0]} ${ARGUMENTS[1]} 62 отримати тендер ${ARGUMENTS[0]} ${ARGUMENTS[1]}
93 Set_To_Object ${TENDER_DATA.data} ${ARGUMENTS[2]} ${ARGUMENTS[3]} 63 Set_To_Object ${TENDER_DATA.data} ${ARGUMENTS[2]} ${ARGUMENTS[3]}
94 -  
95 ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA} 64 ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA}
96 ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token} 65 ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token}
97 Set Global Variable ${TENDER_DATA} 66 Set Global Variable ${TENDER_DATA}
@@ -107,13 +76,39 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper @@ -107,13 +76,39 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper
107 Set Global Variable ${TENDER_DATA} 76 Set Global Variable ${TENDER_DATA}
108 77
109 78
110 -  
111 Задати питання 79 Задати питання
112 [Documentation] 80 [Documentation]
113 ... ${ARGUMENTS[0]} == username 81 ... ${ARGUMENTS[0]} == username
114 ... ${ARGUMENTS[1]} == tender_uid 82 ... ${ARGUMENTS[1]} == tender_uid
115 ... ${ARGUMENTS[2]} == question 83 ... ${ARGUMENTS[2]} == question
116 [Arguments] @{ARGUMENTS} 84 [Arguments] @{ARGUMENTS}
  85 + log many @{ARGUMENTS}
117 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]} 86 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]}
118 ${question}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]} 87 ${question}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]}
119 - Log object data ${question} question  
  88 + Log object data ${question} question
  89 +
  90 +Відповісти на питання
  91 + [Documentation]
  92 + ... ${ARGUMENTS[0]} == username
  93 + ... ${ARGUMENTS[1]} == tender_uid
  94 + ... ${ARGUMENTS[2]} == question_id
  95 + ... ${ARGUMENTS[3]} == answer_data
  96 + [Arguments] @{ARGUMENTS}
  97 + log many @{ARGUMENTS}
  98 + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]}
  99 + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token}
  100 + ${ARGUMENTS[3].data.id}= Set Variable ${tender.data.questions[${ARGUMENTS[2]}].id}
  101 + ${quvestion_with_answer}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_question ${tender} ${ARGUMENTS[3]}
  102 + Log object data ${quvestion_with_answer} quvestion_with_answer
  103 +
  104 +
  105 +Подати цінову пропозицію
  106 + [Documentation]
  107 + ... ${ARGUMENTS[0]} == username
  108 + ... ${ARGUMENTS[1]} == tender_uid
  109 + ... ${ARGUMENTS[2]} == bid
  110 + [Arguments] @{ARGUMENTS}
  111 + log many @{ARGUMENTS}
  112 + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]}
  113 + ${bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]}
  114 + Log object data ${question} bid
@@ -2,11 +2,11 @@ tender_owner: Tender Owner @@ -2,11 +2,11 @@ tender_owner: Tender Owner
2 users: 2 users:
3 Tender Owner: 3 Tender Owner:
4 broker: Quinta 4 broker: Quinta
5 - E-tender User: 5 + Tender Viewer:
6 broker: E-tender 6 broker: E-tender
7 username: test 7 username: test
8 browser: chrome 8 browser: chrome
9 position: [960, 0] 9 position: [960, 0]
10 size: [960, 1000] 10 size: [960, 1000]
11 - Andrew: 11 + Tender User:
12 broker: Quinta 12 broker: Quinta
@@ -80,16 +80,16 @@ test_tender_data = { @@ -80,16 +80,16 @@ test_tender_data = {
80 } 80 }
81 ], 81 ],
82 "enquiryPeriod": { 82 "enquiryPeriod": {
83 - "endDate": (now + timedelta(days=1)).isoformat() 83 + "endDate": (now + timedelta(minutes=2)).isoformat()
84 }, 84 },
85 "tenderPeriod": { 85 "tenderPeriod": {
86 - "endDate": (now + timedelta(days=2)).isoformat() 86 + "endDate": (now + timedelta(minutes=5)).isoformat()
87 } 87 }
88 } 88 }
89 89
90 90
91 def test_question_data(): 91 def test_question_data():
92 - return { 92 + return munchify({
93 "data": { 93 "data": {
94 "author": { 94 "author": {
95 "address": { 95 "address": {
@@ -113,15 +113,15 @@ def test_question_data(): @@ -113,15 +113,15 @@ def test_question_data():
113 "description": fake.sentence(nb_words=10, variable_nb_words=True), 113 "description": fake.sentence(nb_words=10, variable_nb_words=True),
114 "title": fake.sentence(nb_words=6, variable_nb_words=True) 114 "title": fake.sentence(nb_words=6, variable_nb_words=True)
115 } 115 }
116 - } 116 + })
117 117
118 118
119 def test_question_answer_data(): 119 def test_question_answer_data():
120 - return { 120 + return munchify({
121 "data": { 121 "data": {
122 "answer": fake.sentence(nb_words=40, variable_nb_words=True) 122 "answer": fake.sentence(nb_words=40, variable_nb_words=True)
123 } 123 }
124 - } 124 + })
125 125
126 126
127 def test_bid_data(): 127 def test_bid_data():
@@ -71,4 +71,14 @@ TestCaseSetup @@ -71,4 +71,14 @@ TestCaseSetup
71 [Arguments] ${username} ${command} @{arguments} 71 [Arguments] ${username} ${command} @{arguments}
72 ${status} ${value}= run_keyword_and_ignore_keyword_definations ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments} 72 ${status} ${value}= run_keyword_and_ignore_keyword_definations ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments}
73 Run keyword if '${status}' == 'FAIL' Log Учасник ${username} не зміг виконати "${command}" WARN 73 Run keyword if '${status}' == 'FAIL' Log Учасник ${username} не зміг виконати "${command}" WARN
74 - [return] ${value}  
  74 + [return] ${value}
  75 +
  76 +
  77 +Дочекатись дати
  78 + [Arguments] ${date}
  79 + ${wait_timout}= wait_to_date ${date}
  80 + Run Keyword If ${wait_timout}>0 Sleep ${wait_timout}
  81 +
  82 +
  83 +Дочекатись дати початоку прийому пропозицій
  84 + Дочекатись дати ${TENDER_DATA.data.tenderPeriod.startDate}
@@ -7,8 +7,10 @@ from robot.output.loggerhelper import Message @@ -7,8 +7,10 @@ from robot.output.loggerhelper import Message
7 from robot.libraries.BuiltIn import BuiltIn 7 from robot.libraries.BuiltIn import BuiltIn
8 from robot.errors import HandlerExecutionFailed 8 from robot.errors import HandlerExecutionFailed
9 from datetime import datetime, timedelta 9 from datetime import datetime, timedelta
  10 +from dateutil.parser import parse
  11 +from dateutil.tz import tzlocal
10 from dpath.util import set as xpathset 12 from dpath.util import set as xpathset
11 -from jsonpath_rw import parse 13 +from jsonpath_rw import parse as parse_path
12 from .initial_data import ( 14 from .initial_data import (
13 test_tender_data, test_question_data, test_question_answer_data, 15 test_tender_data, test_question_data, test_question_answer_data,
14 test_bid_data 16 test_bid_data
@@ -88,8 +90,20 @@ def set_to_object(obj, attribute, value): @@ -88,8 +90,20 @@ def set_to_object(obj, attribute, value):
88 90
89 def get_from_object(obj, attribute): 91 def get_from_object(obj, attribute):
90 """Gets data from a dictionary using a dotted accessor-string""" 92 """Gets data from a dictionary using a dotted accessor-string"""
91 - jsonpath_expr = parse(attribute) 93 + jsonpath_expr = parse_path(attribute)
92 return_list = [i.value for i in jsonpath_expr.find(obj)] 94 return_list = [i.value for i in jsonpath_expr.find(obj)]
93 if return_list: 95 if return_list:
94 return return_list[0] 96 return return_list[0]
95 return None 97 return None
  98 +
  99 +
  100 +def wait_to_date(date_stamp):
  101 + date = parse(date_stamp)
  102 + LOGGER.log_message(Message("date: {}".format(date.isoformat()), "INFO"))
  103 + now = datetime.now(tzlocal())
  104 + LOGGER.log_message(Message("now: {}".format(now.isoformat()), "INFO"))
  105 + wait_seconds = (date - now).total_seconds()
  106 + wait_seconds += 2
  107 + if wait_seconds < 0:
  108 + return 0
  109 + return wait_seconds
@@ -29,7 +29,8 @@ setup(name='op_robot_tests', @@ -29,7 +29,8 @@ setup(name='op_robot_tests',
29 'munch', 29 'munch',
30 'fake-factory', 30 'fake-factory',
31 'dpath', 31 'dpath',
32 - 'jsonpath-rw' 32 + 'jsonpath-rw',
  33 + 'dateutils'
33 ], 34 ],
34 entry_points={ 35 entry_points={
35 'console_scripts': [ 36 'console_scripts': [
Please register or login to post a comment