Commit 0e8bb250dda3ef90aff4c0330883a6e0ddbb0399
1 parent
6bef4311
added test suites for single and multilot tenders
Showing
10 changed files
with
416 additions
and
21 deletions
@@ -5,8 +5,8 @@ import sys | @@ -5,8 +5,8 @@ import sys | ||
5 | 5 | ||
6 | def runner(): | 6 | def runner(): |
7 | args = sys.argv[1:] | 7 | args = sys.argv[1:] |
8 | - if '-s' not in args: | ||
9 | - args += ['-s', 'OpenProcurementProcess'] | 8 | + #if '-s' not in args: |
9 | + # args += ['-s', 'OpenProcurementProcess'] | ||
10 | if '-d' not in args: | 10 | if '-d' not in args: |
11 | directory = os.path.join(os.getcwd(), 'test_output') | 11 | directory = os.path.join(os.getcwd(), 'test_output') |
12 | if not os.path.exists(directory): | 12 | if not os.path.exists(directory): |
@@ -5,10 +5,11 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | @@ -5,10 +5,11 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | ||
5 | Підготувати клієнт для користувача | 5 | Підготувати клієнт для користувача |
6 | [Arguments] @{ARGUMENTS} | 6 | [Arguments] @{ARGUMENTS} |
7 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо | 7 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо |
8 | - ${api_wrapper}= prepare_api_wrapper ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].api_key} | 8 | + ${api_wrapper}= prepare_api_wrapper ${USERS.users['${ARGUMENTS[0]}'].api_key} |
9 | Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} client ${api_wrapper} | 9 | Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} client ${api_wrapper} |
10 | Log Variables | 10 | Log Variables |
11 | 11 | ||
12 | + | ||
12 | Створити тендер | 13 | Створити тендер |
13 | [Arguments] @{ARGUMENTS} | 14 | [Arguments] @{ARGUMENTS} |
14 | ${INITIAL_TENDER_DATA}= prepare_test_tender_data | 15 | ${INITIAL_TENDER_DATA}= prepare_test_tender_data |
@@ -21,9 +22,22 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | @@ -21,9 +22,22 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | ||
21 | Log access_token: ${access_token} | 22 | Log access_token: ${access_token} |
22 | Log tender_id: ${TENDER_DATA.data.id} | 23 | Log tender_id: ${TENDER_DATA.data.id} |
23 | Set Global Variable ${TENDER_DATA} | 24 | Set Global Variable ${TENDER_DATA} |
24 | - #Debug | ||
25 | [return] ${TENDER_DATA} | 25 | [return] ${TENDER_DATA} |
26 | 26 | ||
27 | +Створити багатопредметний тендер | ||
28 | + [Arguments] @{ARGUMENTS} | ||
29 | + ${INITIAL_TENDER_DATA}= prepare_test_tender_data_multiple_items | ||
30 | + Log object data ${INITIAL_TENDER_DATA} | ||
31 | + ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_tender ${INITIAL_TENDER_DATA} | ||
32 | + Log object data ${TENDER_DATA} cteated_tender | ||
33 | + ${access_token}= Get Variable Value ${TENDER_DATA.access.token} | ||
34 | + Set Global Variable ${access_token} | ||
35 | + Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} access_token ${access_token} | ||
36 | + Log access_token: ${access_token} | ||
37 | + Log tender_id: ${TENDER_DATA.data.id} | ||
38 | + Set Global Variable ${TENDER_DATA} | ||
39 | + [return] ${TENDER_DATA} | ||
40 | + | ||
27 | Пошук тендера по ідентифікатору | 41 | Пошук тендера по ідентифікатору |
28 | [Arguments] @{ARGUMENTS} | 42 | [Arguments] @{ARGUMENTS} |
29 | [Documentation] | 43 | [Documentation] |
@@ -97,11 +111,40 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | @@ -97,11 +111,40 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | ||
97 | [Arguments] @{ARGUMENTS} | 111 | [Arguments] @{ARGUMENTS} |
98 | log many @{ARGUMENTS} | 112 | log many @{ARGUMENTS} |
99 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]} | 113 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]} |
114 | + log many ${USERS.users['${ARGUMENTS[0]}']} | ||
100 | ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} | 115 | ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} |
101 | ${ARGUMENTS[3].data.id}= Set Variable ${tender.data.questions[${ARGUMENTS[2]}].id} | 116 | ${ARGUMENTS[3].data.id}= Set Variable ${tender.data.questions[${ARGUMENTS[2]}].id} |
102 | ${quvestion_with_answer}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_question ${tender} ${ARGUMENTS[3]} | 117 | ${quvestion_with_answer}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_question ${tender} ${ARGUMENTS[3]} |
118 | + log many ${USERS.users['${ARGUMENTS[0]}'].client} ${tender} ${ARGUMENTS[3]} | ||
103 | Log object data ${quvestion_with_answer} quvestion_with_answer | 119 | Log object data ${quvestion_with_answer} quvestion_with_answer |
104 | 120 | ||
121 | +Подати скаргу | ||
122 | + [Documentation] | ||
123 | + ... ${ARGUMENTS[0]} == username | ||
124 | + ... ${ARGUMENTS[1]} == tender_uid | ||
125 | + ... ${ARGUMENTS[2]} == complaint | ||
126 | + [Arguments] @{ARGUMENTS} | ||
127 | + log many @{ARGUMENTS} | ||
128 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]} | ||
129 | + ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints | ||
130 | + Log object data ${complaint} complaint | ||
131 | + | ||
132 | +Обробити скаргу | ||
133 | + [Documentation] | ||
134 | + ... ${ARGUMENTS[0]} == username | ||
135 | + ... ${ARGUMENTS[1]} == tender_uid | ||
136 | + ... ${ARGUMENTS[2]} == question_id | ||
137 | + ... ${ARGUMENTS[3]} == answer_data | ||
138 | + [Arguments] @{ARGUMENTS} | ||
139 | + log many @{ARGUMENTS} | ||
140 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${ARGUMENTS[1]} | ||
141 | + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
142 | + ${ARGUMENTS[3].data.id}= Set Variable ${tender.data.complaints[${ARGUMENTS[2]}].id} | ||
143 | + ${complaint_with_answer}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _patch_tender_resource_item ${tender} ${ARGUMENTS[3]} complaints | ||
144 | + log many ${USERS.users['${ARGUMENTS[0]}'].client} ${tender} ${ARGUMENTS[3]} | ||
145 | + Log object data ${complaint_with_answer} complaint_with_answer | ||
146 | + | ||
147 | + | ||
105 | 148 | ||
106 | Подати цінову пропозицію | 149 | Подати цінову пропозицію |
107 | [Documentation] | 150 | [Documentation] |
@@ -135,4 +178,6 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | @@ -135,4 +178,6 @@ Library op_robot_tests.tests_files.brokers.openprocurement_client_helper | ||
135 | ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} | 178 | ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} |
136 | ${award_activeted_response}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_award ${tender} ${ARGUMENTS[2]} | 179 | ${award_activeted_response}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_award ${tender} ${ARGUMENTS[2]} |
137 | Log object data ${award_activeted_response} award_activeted_response | 180 | Log object data ${award_activeted_response} award_activeted_response |
138 | - [return] ${award_activeted_response} | ||
181 | + [return] ${award_activeted_response} | ||
182 | + | ||
183 | +Підписати договір |
@@ -3,6 +3,11 @@ E-tender: | @@ -3,6 +3,11 @@ E-tender: | ||
3 | url: http://uat.e-tender.biz/ | 3 | url: http://uat.e-tender.biz/ |
4 | timout_on_wait: 15 | 4 | timout_on_wait: 15 |
5 | Quinta: | 5 | Quinta: |
6 | - api_key: e9c3ccb8e8124f26941d5f9639a4ebc3 | ||
7 | keywords_file: openprocurement_client | 6 | keywords_file: openprocurement_client |
8 | timout_on_wait: 0 | 7 | timout_on_wait: 0 |
8 | +Quinta1: | ||
9 | + keywords_file: openprocurement_client | ||
10 | + timout_on_wait: 0 | ||
11 | +Quinta2: | ||
12 | + keywords_file: openprocurement_client | ||
13 | + timout_on_wait: 0 |
1 | tender_owner: Tender Owner | 1 | tender_owner: Tender Owner |
2 | users: | 2 | users: |
3 | Tender Owner: | 3 | Tender Owner: |
4 | + api_key: e9c3ccb8e8124f26941d5f9639a4ebc3 | ||
4 | broker: Quinta | 5 | broker: Quinta |
5 | Tender Viewer: | 6 | Tender Viewer: |
6 | broker: E-tender | 7 | broker: E-tender |
@@ -8,5 +9,10 @@ users: | @@ -8,5 +9,10 @@ users: | ||
8 | browser: chrome | 9 | browser: chrome |
9 | position: [640, 0] | 10 | position: [640, 0] |
10 | size: [640, 900] | 11 | size: [640, 900] |
12 | + Tender Viewer1: | ||
13 | + api_key: "" | ||
14 | + broker: Quinta | ||
11 | Tender User: | 15 | Tender User: |
12 | - broker: Quinta | ||
16 | + api_key: e9c3ccb8e8124f26941d5f9639a4ebc3 | ||
17 | + broker: Quinta | ||
18 | + |
@@ -7,7 +7,9 @@ fake = Factory.create('uk_UA') | @@ -7,7 +7,9 @@ fake = Factory.create('uk_UA') | ||
7 | fake_ru = Factory.create('ru') | 7 | fake_ru = Factory.create('ru') |
8 | fake_en = Factory.create() | 8 | fake_en = Factory.create() |
9 | 9 | ||
10 | -test_tender_data = { | 10 | +def test_tender_data(): |
11 | + now = datetime.now() | ||
12 | + return { | ||
11 | "title": fake.catch_phrase(), | 13 | "title": fake.catch_phrase(), |
12 | "mode": "test", | 14 | "mode": "test", |
13 | "submissionMethodDetails": "quick", | 15 | "submissionMethodDetails": "quick", |
@@ -87,6 +89,120 @@ test_tender_data = { | @@ -87,6 +89,120 @@ test_tender_data = { | ||
87 | } | 89 | } |
88 | } | 90 | } |
89 | 91 | ||
92 | +test_tender_data_multiple_lots = { | ||
93 | + | ||
94 | + "title": fake.catch_phrase(), | ||
95 | + "mode": "test", | ||
96 | + "submissionMethodDetails": "quick", | ||
97 | + "description": "Тестовий тендер", | ||
98 | + "description_en": "Test tender", | ||
99 | + "description_ru": "Тестовый тендер", | ||
100 | + "procuringEntity": { | ||
101 | + "name": fake.company(), | ||
102 | + "name_ru": fake_ru.company(), | ||
103 | + "name_en": fake_en.company(), | ||
104 | + "identifier": { | ||
105 | + "scheme": u"UA-EDR", | ||
106 | + "id": u"0000{}".format(fake.pyint()), | ||
107 | + "uri": fake.image_url(width=None, height=None) | ||
108 | + }, | ||
109 | + "address": { | ||
110 | + "countryName": u"Україна", | ||
111 | + "postalCode": fake.postalcode(), | ||
112 | + "region": u"м. Київ", | ||
113 | + "locality": u"м. Київ", | ||
114 | + "streetAddress": fake.street_address() | ||
115 | + }, | ||
116 | + "contactPoint": { | ||
117 | + "name": fake.name(), | ||
118 | + "telephone": fake.phone_number() | ||
119 | + } | ||
120 | + }, | ||
121 | + "value": { | ||
122 | + "amount": 50000.99, | ||
123 | + "currency": u"UAH" | ||
124 | + }, | ||
125 | + "minimalStep": { | ||
126 | + "amount": 100.1, | ||
127 | + "currency": u"UAH" | ||
128 | + }, | ||
129 | + "items": [ | ||
130 | + { | ||
131 | + "description": fake.catch_phrase(), | ||
132 | + "deliveryDate": { | ||
133 | + "endDate": (now + timedelta(days=5)).isoformat() | ||
134 | + }, | ||
135 | + "deliveryLocation": { | ||
136 | + "latitude": "49.8500° N", | ||
137 | + "longitude": "24.0167° E" | ||
138 | + }, | ||
139 | + "deliveryAddress": { | ||
140 | + "countryName": u"Україна", | ||
141 | + "postalCode": fake.postalcode(), | ||
142 | + "region": u"м. Київ", | ||
143 | + "locality": u"м. Київ", | ||
144 | + "streetAddress": fake.street_address() | ||
145 | + }, | ||
146 | + "classification": { | ||
147 | + "scheme": u"CPV", | ||
148 | + "id": u"44617100-9", | ||
149 | + "description": u"Cartons" | ||
150 | + }, | ||
151 | + "additionalClassifications": [ | ||
152 | + { | ||
153 | + "scheme": u"ДКПП", | ||
154 | + "id": u"17.21.1", | ||
155 | + "description": u"папір і картон гофровані, паперова й картонна тара" | ||
156 | + } | ||
157 | + ], | ||
158 | + "unit": { | ||
159 | + "name": u"item", | ||
160 | + "code": u"44617100-9" | ||
161 | + }, | ||
162 | + "quantity": fake.pyint() | ||
163 | + }, | ||
164 | + { | ||
165 | + "description": fake.catch_phrase(), | ||
166 | + "deliveryDate": { | ||
167 | + "endDate": (now + timedelta(days=5)).isoformat() | ||
168 | + }, | ||
169 | + "deliveryLocation": { | ||
170 | + "latitude": "49.8500° N", | ||
171 | + "longitude": "24.0167° E" | ||
172 | + }, | ||
173 | + "deliveryAddress": { | ||
174 | + "countryName": u"Україна", | ||
175 | + "postalCode": fake.postalcode(), | ||
176 | + "region": u"м. Київ", | ||
177 | + "locality": u"м. Київ", | ||
178 | + "streetAddress": fake.street_address() | ||
179 | + }, | ||
180 | + "classification": { | ||
181 | + "scheme": u"CPV", | ||
182 | + "id": u"44617100-9", | ||
183 | + "description": u"Cartons" | ||
184 | + }, | ||
185 | + "additionalClassifications": [ | ||
186 | + { | ||
187 | + "scheme": u"ДКПП", | ||
188 | + "id": u"17.21.1", | ||
189 | + "description": u"картон гофровані, паперова й картонна тара" | ||
190 | + } | ||
191 | + ], | ||
192 | + "unit": { | ||
193 | + "name": u"item", | ||
194 | + "code": u"2-44617100-9" | ||
195 | + }, | ||
196 | + "quantity": fake.pyint() | ||
197 | + } | ||
198 | + ], | ||
199 | + "enquiryPeriod": { | ||
200 | + "endDate": (now + timedelta(minutes=2)).isoformat() | ||
201 | + }, | ||
202 | + "tenderPeriod": { | ||
203 | + "endDate": (now + timedelta(minutes=5)).isoformat() | ||
204 | + } | ||
205 | +} | ||
90 | 206 | ||
91 | def test_question_data(): | 207 | def test_question_data(): |
92 | return munchify({ | 208 | return munchify({ |
@@ -123,6 +239,40 @@ def test_question_answer_data(): | @@ -123,6 +239,40 @@ def test_question_answer_data(): | ||
123 | } | 239 | } |
124 | }) | 240 | }) |
125 | 241 | ||
242 | +def test_complaint_data(): | ||
243 | + return munchify({ | ||
244 | + "data": { | ||
245 | + "author": { | ||
246 | + "address": { | ||
247 | + "countryName": "Україна", | ||
248 | + "locality": "м. Вінниця", | ||
249 | + "postalCode": "21100", | ||
250 | + "region": "м. Вінниця", | ||
251 | + "streetAddress": fake.street_address() | ||
252 | + }, | ||
253 | + "contactPoint": { | ||
254 | + "name": fake.name(), | ||
255 | + "telephone": fake.phone_number() | ||
256 | + }, | ||
257 | + "identifier": { | ||
258 | + "scheme": u"UA-EDR", | ||
259 | + "id": u"0000{}".format(fake.pyint()), | ||
260 | + "uri": fake.image_url(width=None, height=None) | ||
261 | + }, | ||
262 | + "name": fake.company() | ||
263 | + }, | ||
264 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), | ||
265 | + "title": fake.sentence(nb_words=6, variable_nb_words=True) | ||
266 | + } | ||
267 | + }) | ||
268 | + | ||
269 | +def test_complaint_reply_data(): | ||
270 | + return munchify({ | ||
271 | + "data": { | ||
272 | + "status": "resolved" | ||
273 | + } | ||
274 | + }) | ||
275 | + | ||
126 | 276 | ||
127 | def test_bid_data(): | 277 | def test_bid_data(): |
128 | return munchify({ | 278 | return munchify({ |
@@ -31,6 +31,16 @@ TestCaseSetup | @@ -31,6 +31,16 @@ TestCaseSetup | ||
31 | ${answer}= test_question_answer_data | 31 | ${answer}= test_question_answer_data |
32 | Append to list ${ANSWERS} ${answer} | 32 | Append to list ${ANSWERS} ${answer} |
33 | Set Global Variable ${ANSWERS} | 33 | Set Global Variable ${ANSWERS} |
34 | + | ||
35 | + @{COMPLAINTS} = Create list | ||
36 | + ${complaint}= test_complaint_data | ||
37 | + Append to list ${COMPLAINTS} ${complaint} | ||
38 | + Set Global Variable ${COMPLAINTS} | ||
39 | + @{REPLIES} = Create list | ||
40 | + ${reply}= test_complaint_reply_data | ||
41 | + Append to list ${REPLIES} ${reply} | ||
42 | + Set Global Variable ${REPLIES} | ||
43 | + | ||
34 | ${INITIAL_TENDER_DATA}= prepare_test_tender_data | 44 | ${INITIAL_TENDER_DATA}= prepare_test_tender_data |
35 | Set Global Variable ${INITIAL_TENDER_DATA} | 45 | Set Global Variable ${INITIAL_TENDER_DATA} |
36 | 46 | ||
@@ -68,6 +78,15 @@ TestCaseSetup | @@ -68,6 +78,15 @@ TestCaseSetup | ||
68 | ${field_value}= Get_From_Object ${TENDER_DATA.data} ${field} | 78 | ${field_value}= Get_From_Object ${TENDER_DATA.data} ${field} |
69 | Should Be Equal ${field_value} ${field_response} Майданчик ${USERS.users['${username}'].broker} | 79 | Should Be Equal ${field_value} ${field_response} Майданчик ${USERS.users['${username}'].broker} |
70 | 80 | ||
81 | +Звірити поля предметів закупівлі багатопрредметного тендера ${field} | ||
82 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
83 | + @{items}= Get_From_Object ${TENDER_DATA.data} items | ||
84 | + ${len_of_items}= Get Length ${items} | ||
85 | + :FOR ${index} IN RANGE ${len_of_items} | ||
86 | + \ Log ${index} | ||
87 | + \ Звірити поле тендера ${viewer} items[${index}].${field} | ||
88 | + | ||
89 | + | ||
71 | Викликати для учасника | 90 | Викликати для учасника |
72 | [Arguments] ${username} ${command} @{arguments} | 91 | [Arguments] ${username} ${command} @{arguments} |
73 | ${status} ${value}= run_keyword_and_ignore_keyword_definations ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments} | 92 | ${status} ${value}= run_keyword_and_ignore_keyword_definations ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments} |
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 | +Suite Setup TestCaseSetup | ||
9 | +Suite Teardown Close all browsers | ||
10 | + | ||
11 | +*** Variables *** | ||
12 | +${viewer} Tender User | ||
13 | +# Tender Viewer | ||
14 | +${provider} Tender User | ||
15 | + | ||
16 | + | ||
17 | +*** Test Cases *** | ||
18 | +Можливість оголосити багатопредметний тендер | ||
19 | + [Tags] ${USERS.users['${USERS.tender_owner}'].broker}: Можливість оголосити багатопредметний тендер | ||
20 | + Викликати для учасника ${USERS.tender_owner} Створити багатопредметний тендер | ||
21 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
22 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
23 | + | ||
24 | +Отримати багатопредметний тендер по ідентифікатору | ||
25 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
26 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
27 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id} | ||
28 | + | ||
29 | +Відображення опису позицій закупівлі багатопредметного тендера | ||
30 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
31 | + Звірити поля предметів закупівлі багатопрредметного тендера description | ||
32 | + | ||
33 | +Відображення дати доставки позицій закупівлі багатопредметного тендера | ||
34 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
35 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryDate.endDate | ||
36 | + | ||
37 | +Відображення координат широти доставки позицій закупівлі багатопредметного тендера | ||
38 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
39 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryLocation.latitude | ||
40 | + | ||
41 | +Відображення координат довготи доставки позицій закупівлі багатопредметного тендера | ||
42 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
43 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryLocation.longitude | ||
44 | + | ||
45 | +Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера | ||
46 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
47 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryAddress.countryName | ||
48 | + | ||
49 | +Відображення пошт коду доставки позицій закупівлі багатопредметного тендера | ||
50 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
51 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryAddress.postalCode | ||
52 | + | ||
53 | +Відображення регіону доставки позицій закупівлі багатопредметного тендера | ||
54 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
55 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryAddress.region | ||
56 | + | ||
57 | +Відображення locality адреси доставки позицій закупівлі багатопредметного тендера | ||
58 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
59 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryAddress.locality | ||
60 | + | ||
61 | +Відображення вулиці доставки позицій закупівлі багатопредметного тендера | ||
62 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
63 | + Звірити поля предметів закупівлі багатопрредметного тендера deliveryAddress.streetAddress | ||
64 | + | ||
65 | +Відображення схеми класифікації позицій закупівлі багатопредметного тендера | ||
66 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
67 | + Звірити поля предметів закупівлі багатопрредметного тендера classification.scheme | ||
68 | + | ||
69 | +Відображення ідентифйікатора класифікації позицій закупівлі багатопредметного тендера | ||
70 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
71 | + Звірити поля предметів закупівлі багатопрредметного тендера classification.id | ||
72 | + | ||
73 | +Відображення опису класифікації позицій закупівлі багатопредметного тендера | ||
74 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
75 | + Звірити поля предметів закупівлі багатопрредметного тендера classification.description | ||
76 | + | ||
77 | +Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера | ||
78 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
79 | + Звірити поля предметів закупівлі багатопрредметного тендера additionalClassifications.scheme | ||
80 | + | ||
81 | +Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера | ||
82 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
83 | + Звірити поля предметів закупівлі багатопрредметного тендера additionalClassifications.id | ||
84 | + | ||
85 | +Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера | ||
86 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
87 | + Звірити поля предметів закупівлі багатопрредметного тендера additionalClassifications.description | ||
88 | + | ||
89 | +Відображення назви одиниці позицій закупівлі багатопредметного тендера | ||
90 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
91 | + Звірити поля предметів закупівлі багатопрредметного тендера unit.name | ||
92 | + | ||
93 | +Відображення коду одиниці позицій закупівлі багатопредметного тендера | ||
94 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
95 | + Звірити поля предметів закупівлі багатопрредметного тендера unit.code | ||
96 | + | ||
97 | +Відображення кількості позицій закупівлі багатопредметного тендера | ||
98 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера | ||
99 | + Звірити поля предметів закупівлі багатопрредметного тендера quantity | ||
100 | + | ||
101 | + |
@@ -13,7 +13,7 @@ from dpath.util import set as xpathset | @@ -13,7 +13,7 @@ from dpath.util import set as xpathset | ||
13 | from jsonpath_rw import parse as parse_path | 13 | from jsonpath_rw import parse as parse_path |
14 | from .initial_data import ( | 14 | from .initial_data import ( |
15 | test_tender_data, test_question_data, test_question_answer_data, | 15 | test_tender_data, test_question_data, test_question_answer_data, |
16 | - test_bid_data, test_award_data | 16 | + test_bid_data, test_award_data, test_complaint_data, test_complaint_reply_data, test_tender_data_multiple_lots |
17 | ) | 17 | ) |
18 | 18 | ||
19 | 19 | ||
@@ -43,7 +43,10 @@ def load_initial_data_from(file_name): | @@ -43,7 +43,10 @@ def load_initial_data_from(file_name): | ||
43 | 43 | ||
44 | 44 | ||
45 | def prepare_test_tender_data(): | 45 | def prepare_test_tender_data(): |
46 | - return munchify({'data': test_tender_data}) | 46 | + return munchify({'data': test_tender_data()}) |
47 | + | ||
48 | +def prepare_test_tender_data_multiple_items(): | ||
49 | + return munchify({'data': test_tender_data_multiple_lots}) | ||
47 | 50 | ||
48 | 51 | ||
49 | def run_keyword_and_ignore_keyword_definations(name, *args): | 52 | def run_keyword_and_ignore_keyword_definations(name, *args): |
@@ -9,24 +9,23 @@ Suite Setup TestCaseSetup | @@ -9,24 +9,23 @@ Suite Setup TestCaseSetup | ||
9 | Suite Teardown Close all browsers | 9 | Suite Teardown Close all browsers |
10 | 10 | ||
11 | *** Variables *** | 11 | *** Variables *** |
12 | -${viewer} Tender User | ||
13 | - | 12 | +${viewer} Tender User |
14 | # Tender Viewer | 13 | # Tender Viewer |
15 | ${provider} Tender User | 14 | ${provider} Tender User |
16 | 15 | ||
17 | 16 | ||
18 | *** Test Cases *** | 17 | *** Test Cases *** |
19 | -Можливість оголосити тендер | 18 | +Можливість оголосити однопердметний тендер |
20 | [Tags] ${USERS.users['${USERS.tender_owner}'].broker}: Можливість оголосити тендер | 19 | [Tags] ${USERS.users['${USERS.tender_owner}'].broker}: Можливість оголосити тендер |
21 | Викликати для учасника ${USERS.tender_owner} Створити тендер | 20 | Викликати для учасника ${USERS.tender_owner} Створити тендер |
22 | ${LAST_MODIFICATION_DATE}= Get Current Date | 21 | ${LAST_MODIFICATION_DATE}= Get Current Date |
23 | Set Global Variable ${LAST_MODIFICATION_DATE} | 22 | Set Global Variable ${LAST_MODIFICATION_DATE} |
24 | 23 | ||
25 | -Пошук тендера по ідентифікатору | 24 | +Пошук однопредметного тендера по ідентифікатору |
26 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 25 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
27 | Дочекатись синхронізації з майданчиком ${viewer} | 26 | Дочекатись синхронізації з майданчиком ${viewer} |
28 | Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id} | 27 | Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id} |
29 | - | 28 | + |
30 | Відображення заголовоку оголошеного тендера | 29 | Відображення заголовоку оголошеного тендера |
31 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 30 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
32 | Звірити поле тендера ${viewer} title | 31 | Звірити поле тендера ${viewer} title |
@@ -91,7 +90,6 @@ ${provider} Tender User | @@ -91,7 +90,6 @@ ${provider} Tender User | ||
91 | Відображення строки поставки закупівлі однопредметного тендера | 90 | Відображення строки поставки закупівлі однопредметного тендера |
92 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера | 91 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера |
93 | Звірити поле тендера ${viewer} items[0].deliveryDate.endDate | 92 | Звірити поле тендера ${viewer} items[0].deliveryDate.endDate |
94 | - | ||
95 | Задати питання | 93 | Задати питання |
96 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 94 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
97 | Викликати для учасника ${provider} Задати питання ${TENDER_DATA.data.id} ${QUESTIONS[0]} | 95 | Викликати для учасника ${provider} Задати питання ${TENDER_DATA.data.id} ${QUESTIONS[0]} |
@@ -137,6 +135,7 @@ ${provider} Tender User | @@ -137,6 +135,7 @@ ${provider} Tender User | ||
137 | 135 | ||
138 | Змінити цінову пропозицію | 136 | Змінити цінову пропозицію |
139 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 137 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
138 | + Log object data ${biddingresponce} | ||
140 | Set To Dictionary ${biddingresponce.data.value} amount 600 | 139 | Set To Dictionary ${biddingresponce.data.value} amount 600 |
141 | Log object data ${biddingresponce.data.value} | 140 | Log object data ${biddingresponce.data.value} |
142 | Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_DATA.data.id} ${biddingresponce} | 141 | Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_DATA.data.id} ${biddingresponce} |
@@ -151,8 +150,4 @@ ${provider} Tender User | @@ -151,8 +150,4 @@ ${provider} Tender User | ||
151 | ${award_data}= Get_From_Object ${TENDER_DATA.data} awards[0] | 150 | ${award_data}= Get_From_Object ${TENDER_DATA.data} awards[0] |
152 | Set To Dictionary ${award} data ${award_data} | 151 | Set To Dictionary ${award} data ${award_data} |
153 | Set To Dictionary ${award['data']} status active | 152 | Set To Dictionary ${award['data']} status active |
154 | - Викликати для учасника ${USERS.tender_owner} Прийняти цінову пропозицію ${TENDER_DATA.data.id} ${award} | ||
155 | - | ||
156 | - | ||
157 | - | ||
158 | - | ||
153 | + Викликати для учасника ${USERS.tender_owner} Прийняти цінову пропозицію ${TENDER_DATA.data.id} ${award} |
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 | +Suite Setup TestCaseSetup | ||
9 | +Suite Teardown Close all browsers | ||
10 | + | ||
11 | +*** Variables *** | ||
12 | +${viewer} Tender User | ||
13 | +# Tender Viewer | ||
14 | +${provider} Tender User | ||
15 | + | ||
16 | + | ||
17 | +*** Test Cases *** | ||
18 | +Можливість оголосити однопредметний тендер | ||
19 | + [Tags] ${USERS.users['${USERS.tender_owner}'].broker}: Можливість оголосити тендер | ||
20 | + Викликати для учасника ${USERS.tender_owner} Створити тендер | ||
21 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
22 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
23 | + | ||
24 | +Пошук тендера по ідентифікатору | ||
25 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
26 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
27 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id} | ||
28 | + | ||
29 | +Можливість подати скаргу на умови | ||
30 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
31 | + Викликати для учасника ${provider} Подати скаргу ${TENDER_DATA.data.id} ${COMPLAINTS[0]} | ||
32 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
33 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
34 | + отримати останні зміни в тендері | ||
35 | + | ||
36 | +Можливість відхилити скаргу на умови | ||
37 | + [Tags] ${USERS.users['${USERS.tender_owner}'].broker}: Можливість відхилити скаргу на умови | ||
38 | + Set To Dictionary ${COMPLAINTS[0].data} status declined | ||
39 | + Викликати для учасника ${USERS.tender_owner} Обробити скаргу ${TENDER_DATA.data.id} 0 ${COMPLAINTS[0]} | ||
40 | + log many ${COMPLAINTS[0]} | ||
41 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
42 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
43 | + отримати останні зміни в тендері | ||
44 | + | ||
45 | +Можливість відкинути скаргу на умови | ||
46 | + [Tags] ${USERS.users['${USERS.tender_owner}'].broker}: Можливість відкинути скаргу на умови | ||
47 | + Викликати для учасника ${provider} Подати скаргу ${TENDER_DATA.data.id} ${COMPLAINTS[0]} | ||
48 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
49 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
50 | + отримати останні зміни в тендері | ||
51 | + Set To Dictionary ${COMPLAINTS[0].data} status invalid | ||
52 | + Викликати для учасника ${USERS.tender_owner} Обробити скаргу ${TENDER_DATA.data.id} 1 ${COMPLAINTS[0]} | ||
53 | + log many ${COMPLAINTS[0]} | ||
54 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
55 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
56 | + отримати останні зміни в тендері | ||
57 | + | ||
58 | +Можливість задовільнити скаргу на умови | ||
59 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість відповісти на запитання | ||
60 | + Викликати для учасника ${provider} Подати скаргу ${TENDER_DATA.data.id} ${COMPLAINTS[0]} | ||
61 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
62 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
63 | + отримати останні зміни в тендері | ||
64 | + Set To Dictionary ${COMPLAINTS[0].data} status resolved | ||
65 | + Викликати для учасника ${USERS.tender_owner} Обробити скаргу ${TENDER_DATA.data.id} 2 ${COMPLAINTS[0]} | ||
66 | + log many ${COMPLAINTS[0]} | ||
67 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
68 | + Set Global Variable ${LAST_MODIFICATION_DATE} | ||
69 | + | ||
70 | + | ||
71 | + |
Please
register
or
login
to post a comment