Commit 9b5372d0cf02571ad2c6411837f5d0cb49adf2e2

Authored by alexdiatlov
Committed by GitHub
2 parents ac292abb 90555a8f

Merge pull request #242 from ProzorroUKR/dev_prozorro_2

cancellations/complaints
Showing 34 changed files with 2245 additions and 136 deletions
  1 +coding: utf-8
1 2 *** Settings ***
2 3 Library op_robot_tests.tests_files.service_keywords
3 4 Library Collections
... ... @@ -220,7 +221,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
220 221 ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers}
221 222 ${accelerator}= Get Variable Value ${accelerator}
222 223 ${accelerator}= Set Variable If '${accelerator}' != '${None}' ${accelerator} ${period_intervals.default.accelerator}
223   - ${monitoring_data}= tets_monitoring_data ${USERS.users['${dasu_user}'].tender_data.data.id} ${accelerator}
  224 + ${monitoring_data}= test_monitoring_data ${USERS.users['${dasu_user}'].tender_data.data.id} ${accelerator}
224 225 Log ${monitoring_data}
225 226 ${MNITORING_UAID}= Run As ${dasu_user} Створити об'єкт моніторингу ${monitoring_data}
226 227 ${MONITORING}= Create Dictionary
... ... @@ -1110,21 +1111,35 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
1110 1111 Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].lots_${lot_index}_question_data.question.data.${field}} ${field} ${USERS.users['${provider}'].lots_${lot_index}_question_data.question_id}
1111 1112
1112 1113 ##############################################################################################
1113   -# COMPLAINTS
  1114 +# COMPLAINTS/CLAIMS
1114 1115 ##############################################################################################
1115 1116
1116   -
1117   -Можливість створити чернетку вимоги про виправлення умов закупівлі
  1117 +Можливість створити чернетку вимоги
1118 1118 ${claim}= Підготувати дані для подання вимоги
1119   - ${complaintID}= Run As ${provider}
  1119 + ${claimID}= Run As ${provider}
1120 1120 ... Створити чернетку вимоги про виправлення умов закупівлі
1121 1121 ... ${TENDER['TENDER_UAID']}
1122 1122 ... ${claim}
1123 1123 ${claim_data}= Create Dictionary
1124 1124 ... claim=${claim}
1125   - ... complaintID=${complaintID}
  1125 + ... complaintID=${claimID}
1126 1126 ${claim_data}= munch_dict arg=${claim_data}
1127   - Set To Dictionary ${USERS.users['${provider}']} tender_claim_data ${claim_data}
  1127 + Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data}
  1128 + Log ${USERS.users['${provider}'].claim_data}
  1129 +
  1130 +
  1131 +Можливість створити чернетку скарги
  1132 + ${complaint}= Підготувати дані для подання скарги
  1133 + ${complaintID}= Run As ${provider}
  1134 + ... Створити чернетку скарги про виправлення умов закупівлі
  1135 + ... ${TENDER['TENDER_UAID']}
  1136 + ... ${complaint}
  1137 + ${complaint_data}= Create Dictionary
  1138 + ... complaint=${complaint}
  1139 + ... complaintID=${complaintID}
  1140 + ${complaint_data}= munch_dict arg=${complaint_data}
  1141 + Set To Dictionary ${USERS.users['${provider}']} complaint_data ${complaint_data}
  1142 + Log ${USERS.users['${provider}'].complaint_data}
1128 1143
1129 1144
1130 1145 Можливість створити чернетку вимоги про виправлення умов ${lot_index} лоту
... ... @@ -1139,13 +1154,459 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
1139 1154 ... claim=${claim}
1140 1155 ... complaintID=${complaintID}
1141 1156 ${claim_data}= munch_dict arg=${claim_data}
1142   - Set To Dictionary ${USERS.users['${provider}']} lot_claim_data ${claim_data}
  1157 + Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data}
  1158 + Log ${USERS.users['${provider}'].claim_data}
  1159 +
  1160 +
  1161 +Можливість створити чернетку скарги про виправлення умов ${lot_index} лоту
  1162 + ${complaint}= Підготувати дані для подання скарги
  1163 + ${lot_id}= get_id_from_object ${USERS.users['${provider}'].tender_data.data.lots[${lot_index}]}
  1164 + ${complaintID}= Run As ${provider}
  1165 + ... Створити чернетку скарги про виправлення умов лоту
  1166 + ... ${TENDER['TENDER_UAID']}
  1167 + ... ${complaint}
  1168 + ... ${lot_id}
  1169 + ${complaint_data}= Create Dictionary
  1170 + ... complaint=${complaint}
  1171 + ... complaintID=${complaintID}
  1172 + ${complaint_data}= munch_dict arg=${complaint_data}
  1173 + Set To Dictionary ${USERS.users['${provider}']} complaint_data ${complaint_data}
  1174 + Log ${USERS.users['${provider}'].complaint_data}
  1175 +
  1176 +
  1177 +Додати документ до вимоги
  1178 + ${file_path} ${file_name} ${file_content}= create_fake_doc
  1179 + Run As ${provider}
  1180 + ... Завантажити документацію до вимоги
  1181 + ... ${TENDER['TENDER_UAID']}
  1182 + ... ${USERS.users['${provider}']['claim_data']['complaintID']}
  1183 + ... ${file_path}
  1184 + ${doc_id}= get_id_from_string ${file_name}
  1185 + ${claim_doc}= Create Dictionary
  1186 + ... doc_name=${file_name}
  1187 + ... doc_id=${doc_id}
  1188 + ... doc_content=${file_content}
  1189 + ${claim_doc}= munch_dict arg=${claim_doc}
  1190 + Set To Dictionary ${USERS.users['${provider}'].claim_data} documents ${claim_doc}
  1191 + Remove File ${file_path}
  1192 + Log ${USERS.users['${provider}'].claim_data}
  1193 +
  1194 +
  1195 +Додати документ до скарги
  1196 + ${file_path} ${file_name} ${file_content}= create_fake_doc
  1197 + Run As ${provider}
  1198 + ... Завантажити документацію до вимоги
  1199 + ... ${TENDER['TENDER_UAID']}
  1200 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1201 + ... ${file_path}
  1202 + ${doc_id}= get_id_from_string ${file_name}
  1203 + ${complaint_doc}= Create Dictionary
  1204 + ... doc_name=${file_name}
  1205 + ... doc_id=${doc_id}
  1206 + ... doc_content=${file_content}
  1207 + ${claim_doc}= munch_dict arg=${complaint_doc}
  1208 + Set To Dictionary ${USERS.users['${provider}'].complaint_data} documents ${complaint_doc}
  1209 + Remove File ${file_path}
  1210 + Log ${USERS.users['${provider}'].complaint_data}
  1211 +
  1212 +
  1213 +Додати документ до скарги ${object_index} учасника в ${object}
  1214 + ${file_path} ${file_name} ${file_content}= create_fake_doc
  1215 + Run As ${provider}
  1216 + ... Завантажити документ до скарги в окремий об'єкт
  1217 + ... ${TENDER['TENDER_UAID']}
  1218 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1219 + ... ${object_index}
  1220 + ... ${file_path}
  1221 + ... ${object}
  1222 + ${doc_id}= get_id_from_string ${file_name}
  1223 + ${complaint_doc}= Create Dictionary
  1224 + ... doc_name=${file_name}
  1225 + ... doc_id=${doc_id}
  1226 + ... doc_content=${file_content}
  1227 + ${claim_doc}= munch_dict arg=${complaint_doc}
  1228 + Set To Dictionary ${USERS.users['${provider}'].complaint_data} documents ${complaint_doc}
  1229 + Remove File ${file_path}
  1230 + Log ${USERS.users['${provider}'].complaint_data}
  1231 +
  1232 +
  1233 +Можливість подати вимогу
  1234 + ${data}= Create Dictionary status=claim
  1235 + ${confirmation_data}= Create Dictionary data=${data}
  1236 + Run As ${provider}
  1237 + ... Подати вимогу
  1238 + ... ${TENDER['TENDER_UAID']}
  1239 + ... ${USERS.users['${provider}']['claim_data']['complaintID']}
  1240 + ... ${confirmation_data}
  1241 +
  1242 +
  1243 +Можливість подати скаргу
  1244 + ${data}= Create Dictionary status=pending
  1245 + ${confirmation_data}= Create Dictionary data=${data}
  1246 + Run As ${payment_user}
  1247 + ... Змінити статус скарги
  1248 + ... ${TENDER['TENDER_UAID']}
  1249 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1250 + ... ${confirmation_data}
  1251 +
  1252 +
  1253 +Можливість подати скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  1254 + ${data}= Create Dictionary status=pending
  1255 + ${confirmation_data}= Create Dictionary data=${data}
  1256 + Run As ${payment_user}
  1257 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1258 + ... ${TENDER['TENDER_UAID']}
  1259 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1260 + ... ${qualification_index}
  1261 + ... ${confirmation_data}
  1262 +
  1263 +
  1264 +Можливість подати скаргу на визначення ${award_index} переможця
  1265 + ${data}= Create Dictionary status=pending
  1266 + ${confirmation_data}= Create Dictionary data=${data}
  1267 + Run As ${payment_user}
  1268 + ... Змінити статус скарги на визначення переможця
  1269 + ... ${TENDER['TENDER_UAID']}
  1270 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1271 + ... ${award_index}
  1272 + ... ${confirmation_data}
  1273 +
  1274 +
  1275 +Можливість подати скаргу на скасування ${cancellations_index}
  1276 + ${data}= Create Dictionary status=pending
  1277 + ${confirmation_data}= Create Dictionary data=${data}
  1278 + Run As ${payment_user}
  1279 + ... Змінити статус скарги на скасування
  1280 + ... ${TENDER['TENDER_UAID']}
  1281 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1282 + ... ${cancellations_index}
  1283 + ... ${confirmation_data}
  1284 +
  1285 +
  1286 +Прийняти скаргу до розгляду
  1287 + ${confirmation_data}= Підготувати дані для прийняття скарги до розгляду
  1288 + Run As ${amcu_user}
  1289 + ... Змінити статус скарги
  1290 + ... ${TENDER['TENDER_UAID']}
  1291 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1292 + ... ${confirmation_data}
  1293 +
  1294 +
  1295 +Прийняти скаргу на визначення пре-кваліфікації ${qualification_index} учасника до розгляду
  1296 + ${confirmation_data}= Підготувати дані для прийняття скарги до розгляду
  1297 + Run As ${amcu_user}
  1298 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1299 + ... ${TENDER['TENDER_UAID']}
  1300 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1301 + ... ${qualification_index}
  1302 + ... ${confirmation_data}
  1303 +
  1304 +
  1305 +Прийняти скаргу на визначення ${award_index} переможця до розгляду
  1306 + ${confirmation_data}= Підготувати дані для прийняття скарги до розгляду
  1307 + Run As ${amcu_user}
  1308 + ... Змінити статус скарги на визначення переможця
  1309 + ... ${TENDER['TENDER_UAID']}
  1310 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1311 + ... ${award_index}
  1312 + ... ${confirmation_data}
  1313 +
  1314 +
  1315 +Прийняти скаргу на скасування ${canсellations_index} до розгляду
  1316 + ${confirmation_data}= Підготувати дані для прийняття скарги до розгляду
  1317 + Run As ${amcu_user}
  1318 + ... Змінити статус скарги на скасування
  1319 + ... ${TENDER['TENDER_UAID']}
  1320 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1321 + ... ${canсellations_index}
  1322 + ... ${confirmation_data}
  1323 +
  1324 +
  1325 +Задовільнити скаргу
  1326 + ${data}= Create Dictionary status=satisfied
  1327 + ${confirmation_data}= Create Dictionary data=${data}
  1328 + Run As ${amcu_user}
  1329 + ... Змінити статус скарги
  1330 + ... ${TENDER['TENDER_UAID']}
  1331 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1332 + ... ${confirmation_data}
  1333 +
  1334 +
  1335 +Задовільнити скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  1336 + ${data}= Create Dictionary status=satisfied
  1337 + ${confirmation_data}= Create Dictionary data=${data}
  1338 + Run As ${amcu_user}
  1339 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1340 + ... ${TENDER['TENDER_UAID']}
  1341 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1342 + ... ${qualification_index}
  1343 + ... ${confirmation_data}
  1344 +
  1345 +
  1346 +Задовільнити скаргу на визначення ${award_index} переможця
  1347 + ${data}= Create Dictionary status=satisfied
  1348 + ${confirmation_data}= Create Dictionary data=${data}
  1349 + Run As ${amcu_user}
  1350 + ... Змінити статус скарги на визначення переможця
  1351 + ... ${TENDER['TENDER_UAID']}
  1352 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1353 + ... ${award_index}
  1354 + ... ${confirmation_data}
  1355 +
  1356 +
  1357 +Задовільнити скаргу на скасування ${canсellations_index}
  1358 + ${data}= Create Dictionary status=satisfied
  1359 + ${confirmation_data}= Create Dictionary data=${data}
  1360 + Run As ${amcu_user}
  1361 + ... Змінити статус скарги на скасування
  1362 + ... ${TENDER['TENDER_UAID']}
  1363 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1364 + ... ${canсellations_index}
  1365 + ... ${confirmation_data}
  1366 +
  1367 +
  1368 +Відхилити скаргу
  1369 + ${data}= Create Dictionary status=declined
  1370 + ${confirmation_data}= Create Dictionary data=${data}
  1371 + Run As ${amcu_user}
  1372 + ... Змінити статус скарги
  1373 + ... ${TENDER['TENDER_UAID']}
  1374 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1375 + ... ${confirmation_data}
  1376 +
  1377 +
  1378 +Відхилити скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  1379 + ${data}= Create Dictionary status=declined
  1380 + ${confirmation_data}= Create Dictionary data=${data}
  1381 + Run As ${amcu_user}
  1382 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1383 + ... ${TENDER['TENDER_UAID']}
  1384 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1385 + ... ${qualification_index}
  1386 + ... ${confirmation_data}
  1387 +
  1388 +
  1389 +Відхилити скаргу на визначення ${award_index} переможця
  1390 + ${data}= Create Dictionary status=declined
  1391 + ${confirmation_data}= Create Dictionary data=${data}
  1392 + Run As ${amcu_user}
  1393 + ... Змінити статус скарги на визначення переможця
  1394 + ... ${TENDER['TENDER_UAID']}
  1395 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1396 + ... ${award_index}
  1397 + ... ${confirmation_data}
  1398 +
  1399 +
  1400 +Відхилити скаргу на скасування ${canсellations_index}
  1401 + ${data}= Create Dictionary status=declined
  1402 + ${confirmation_data}= Create Dictionary data=${data}
  1403 + Run As ${amcu_user}
  1404 + ... Змінити статус скарги на скасування
  1405 + ... ${TENDER['TENDER_UAID']}
  1406 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1407 + ... ${canсellations_index}
  1408 + ... ${confirmation_data}
  1409 +
  1410 +
  1411 +Зупинити розгляд скарги
  1412 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1413 + Set To Dictionary ${confirmation_data.data} status=stopped
  1414 + Run As ${amcu_user}
  1415 + ... Змінити статус скарги
  1416 + ... ${TENDER['TENDER_UAID']}
  1417 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1418 + ... ${confirmation_data}
  1419 +
  1420 +
  1421 +Зупинити скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  1422 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1423 + Set To Dictionary ${confirmation_data.data} status=stopped
  1424 + Run As ${amcu_user}
  1425 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1426 + ... ${TENDER['TENDER_UAID']}
  1427 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1428 + ... ${qualification_index}
  1429 + ... ${confirmation_data}
  1430 +
  1431 +
  1432 +Зупинити скаргу на визначення ${award_index} переможця
  1433 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1434 + Set To Dictionary ${confirmation_data.data} status=stopped
  1435 + Run As ${amcu_user}
  1436 + ... Змінити статус скарги на визначення переможця
  1437 + ... ${TENDER['TENDER_UAID']}
  1438 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1439 + ... ${award_index}
  1440 + ... ${confirmation_data}
  1441 +
  1442 +
  1443 +Зупинити скаргу на скасування ${cancellations_index}
  1444 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1445 + Set To Dictionary ${confirmation_data.data} status=stopped
  1446 + Run As ${amcu_user}
  1447 + ... Змінити статус скарги на скасування
  1448 + ... ${TENDER['TENDER_UAID']}
  1449 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1450 + ... ${cancellations_index}
  1451 + ... ${confirmation_data}
  1452 +
  1453 +
  1454 +Залишити скаргу без розгляду
  1455 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1456 + Set To Dictionary ${confirmation_data.data} status=invalid
  1457 + Run As ${amcu_user}
  1458 + ... Змінити статус скарги
  1459 + ... ${TENDER['TENDER_UAID']}
  1460 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1461 + ... ${confirmation_data}
  1462 +
  1463 +
  1464 +Залишити скаргу на визначення пре-кваліфікації ${qualification_index} учасника без розгляду
  1465 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1466 + Set To Dictionary ${confirmation_data.data} status=invalid
  1467 + Run As ${amcu_user}
  1468 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1469 + ... ${TENDER['TENDER_UAID']}
  1470 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1471 + ... ${qualification_index}
  1472 + ... ${confirmation_data}
  1473 +
  1474 +
  1475 +Залишити скаргу на визначення ${award_index} переможця без розгляду
  1476 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1477 + Set To Dictionary ${confirmation_data.data} status=invalid
  1478 + Run As ${amcu_user}
  1479 + ... Змінити статус скарги на визначення переможця
  1480 + ... ${TENDER['TENDER_UAID']}
  1481 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1482 + ... ${award_index}
  1483 + ... ${confirmation_data}
  1484 +
  1485 +
  1486 +Залишити скаргу на скасування ${cancellations_index}
  1487 + ${confirmation_data}= Підготувати дані для відхилення скарги
  1488 + Set To Dictionary ${confirmation_data.data} status=invalid
  1489 + Run As ${amcu_user}
  1490 + ... Змінити статус скарги на скасування
  1491 + ... ${TENDER['TENDER_UAID']}
  1492 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1493 + ... ${cancellations_index}
  1494 + ... ${confirmation_data}
  1495 +
  1496 +
  1497 +Виконати рішення АМКУ
  1498 + ${tendererAction}= create_fake_sentence
  1499 + ${data}= Create Dictionary
  1500 + ... status=resolved
  1501 + ... tendererAction=${tendererAction}
  1502 + ${confirmation_data}= Create Dictionary data=${data}
  1503 + Run As ${tender_owner}
  1504 + ... Змінити статус скарги
  1505 + ... ${TENDER['TENDER_UAID']}
  1506 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1507 + ... ${confirmation_data}
  1508 +
  1509 +
  1510 +Виконати рішення АМКУ по скарзі на визначення пре-кваліфікації ${qualification_index} учасника
  1511 + ${tendererAction}= create_fake_sentence
  1512 + ${data}= Create Dictionary
  1513 + ... status=resolved
  1514 + ... tendererAction=${tendererAction}
  1515 + ${confirmation_data}= Create Dictionary data=${data}
  1516 + Run As ${tender_owner}
  1517 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1518 + ... ${TENDER['TENDER_UAID']}
  1519 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1520 + ... ${qualification_index}
  1521 + ... ${confirmation_data}
  1522 +
  1523 +
  1524 +Виконати рішення АМКУ по скарзі на визначення ${award_index} переможця
  1525 + ${tendererAction}= create_fake_sentence
  1526 + ${data}= Create Dictionary
  1527 + ... status=resolved
  1528 + ... tendererAction=${tendererAction}
  1529 + ${confirmation_data}= Create Dictionary data=${data}
  1530 + Run As ${tender_owner}
  1531 + ... Змінити статус скарги на визначення переможця
  1532 + ... ${TENDER['TENDER_UAID']}
  1533 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1534 + ... ${award_index}
  1535 + ... ${confirmation_data}
  1536 +
  1537 +
  1538 +Виконати рішення АМКУ по скарзі на скасування ${canсellations_index}
  1539 + ${tendererAction}= create_fake_sentence
  1540 + ${data}= Create Dictionary
  1541 + ... status=resolved
  1542 + ... tendererAction=${tendererAction}
  1543 + ${confirmation_data}= Create Dictionary data=${data}
  1544 + Run As ${tender_owner}
  1545 + ... Змінити статус скарги на скасування
  1546 + ... ${TENDER['TENDER_UAID']}
  1547 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1548 + ... ${canсellations_index}
  1549 + ... ${confirmation_data}
  1550 +
  1551 +
  1552 +Помилково створена скарга
  1553 + ${data}= Create Dictionary status=mistaken
  1554 + ${confirmation_data}= Create Dictionary data=${data}
  1555 + Run As ${provider}
  1556 + ... Змінити статус скарги
  1557 + ... ${TENDER['TENDER_UAID']}
  1558 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1559 + ... ${confirmation_data}
  1560 +
  1561 +
  1562 +Помилково створена скарга на визначення пре-кваліфікації ${qualification_index} учасника
  1563 + ${data}= Create Dictionary status=mistaken
  1564 + ${confirmation_data}= Create Dictionary data=${data}
  1565 + Run As ${provider}
  1566 + ... Змінити статус скарги на визначення пре-кваліфікації учасника
  1567 + ... ${TENDER['TENDER_UAID']}
  1568 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1569 + ... ${qualification_index}
  1570 + ... ${confirmation_data}
  1571 +
  1572 +
  1573 +Помилково створена скарга на визначення ${award_index} переможця
  1574 + ${data}= Create Dictionary status=mistaken
  1575 + ${confirmation_data}= Create Dictionary data=${data}
  1576 + Run As ${provider}
  1577 + ... Змінити статус скарги на визначення переможця
  1578 + ... ${TENDER['TENDER_UAID']}
  1579 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1580 + ... ${award_index}
  1581 + ... ${confirmation_data}
  1582 +
  1583 +
  1584 +Помилково створена скарга скасування ${canсellations_index}
  1585 + ${data}= Create Dictionary status=mistaken
  1586 + ${confirmation_data}= Create Dictionary data=${data}
  1587 + Run As ${provider}
  1588 + ... Змінити статус скарги на скасування
  1589 + ... ${TENDER['TENDER_UAID']}
  1590 + ... ${USERS.users['${provider}']['complaint_data']['complaintID']}
  1591 + ... ${award_index}
  1592 + ... ${confirmation_data}
  1593 +
  1594 +
  1595 +Подати вимогу про виправлення умов закупівлі лоту
  1596 + ${data}= Create Dictionary status=claim
  1597 + ${confirmation_data}= Create Dictionary data=${data}
  1598 + Run As ${provider}
  1599 + ... Подати вимогу
  1600 + ... ${TENDER['TENDER_UAID']}
  1601 + ... ${USERS.users['${provider}']['claim_data']['complaintID']}
  1602 + ... ${confirmation_data}
  1603 + Log ${USERS.users['${provider}'].claim_data}
1143 1604
1144 1605
1145 1606 Можливість створити чернетку вимоги про виправлення визначення ${award_index} переможця
1146 1607 ${claim}= Підготувати дані для подання вимоги
1147 1608 ${complaintID}= Run As ${provider}
1148   - ... Створити чернетку вимоги про виправлення визначення переможця
  1609 + ... Створити чернетку вимоги/скарги про виправлення визначення переможця
1149 1610 ... ${TENDER['TENDER_UAID']}
1150 1611 ... ${claim}
1151 1612 ... ${award_index}
... ... @@ -1156,6 +1617,62 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
1156 1617 Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data}
1157 1618
1158 1619
  1620 +Можливість створити чернетку скарги про виправлення визначення ${award_index} переможця
  1621 + ${complaint}= Підготувати дані для подання скарги
  1622 + ${complaintID}= Run As ${provider}
  1623 + ... Створити чернетку вимоги/скарги про виправлення визначення переможця
  1624 + ... ${TENDER['TENDER_UAID']}
  1625 + ... ${complaint}
  1626 + ... ${award_index}
  1627 + ${complaint_data}= Create Dictionary
  1628 + ... complaint=${complaint}
  1629 + ... complaintID=${complaintID}
  1630 + ${complaint_data}= munch_dict arg=${complaint_data}
  1631 + Set To Dictionary ${USERS.users['${provider}']} complaint_data ${complaint_data}
  1632 +
  1633 +
  1634 +Можливість створити чернетку скарги про виправлення кваліфікації ${qualification_index} учасника
  1635 + ${complaint}= Підготувати дані для подання скарги
  1636 + ${complaintID}= Run As ${provider}
  1637 + ... Створити чернетку вимоги/скарги про виправлення кваліфікації учасника
  1638 + ... ${TENDER['TENDER_UAID']}
  1639 + ... ${complaint}
  1640 + ... ${qualification_index}
  1641 + ${complaint_data}= Create Dictionary
  1642 + ... complaint=${complaint}
  1643 + ... complaintID=${complaintID}
  1644 + ${complaint_data}= munch_dict arg=${complaint_data}
  1645 + Set To Dictionary ${USERS.users['${provider}']} complaint_data ${complaint_data}
  1646 +
  1647 +
  1648 +Можливість створити чернетку вимоги про виправлення кваліфікації ${qualification_index} учасника
  1649 + ${claim}= Підготувати дані для подання вимоги
  1650 + ${complaintID}= Run As ${provider}
  1651 + ... Створити чернетку вимоги/скарги про виправлення кваліфікації учасника
  1652 + ... ${TENDER['TENDER_UAID']}
  1653 + ... ${claim}
  1654 + ... ${qualification_index}
  1655 + ${claim_data}= Create Dictionary
  1656 + ... complaint=${complaint}
  1657 + ... complaintID=${complaintID}
  1658 + ${claim_data}= munch_dict arg=${claim_data}
  1659 + Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data}
  1660 +
  1661 +
  1662 +Можливість створити чернетку скарги на скасування ${canсellations_index}
  1663 + ${complaint}= Підготувати дані для подання скарги
  1664 + ${complaintID}= Run As ${provider}
  1665 + ... Створити чернетку вимоги/скарги на скасування
  1666 + ... ${TENDER['TENDER_UAID']}
  1667 + ... ${complaint}
  1668 + ... ${canсellations_index}
  1669 + ${complaint_data}= Create Dictionary
  1670 + ... complaint=${complaint}
  1671 + ... complaintID=${complaintID}
  1672 + ${complaint_data}= munch_dict arg=${complaint_data}
  1673 + Set To Dictionary ${USERS.users['${provider}']} complaint_data ${complaint_data}
  1674 +
  1675 +
1159 1676 Можливість створити вимогу про виправлення умов закупівлі із документацією
1160 1677 ${claim}= Підготувати дані для подання вимоги
1161 1678 ${file_path} ${file_name} ${file_content}= create_fake_doc
... ... @@ -1172,7 +1689,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
1172 1689 ... doc_id=${doc_id}
1173 1690 ... doc_content=${file_content}
1174 1691 ${claim_data}= munch_dict arg=${claim_data}
1175   - Set To Dictionary ${USERS.users['${provider}']} tender_claim_data ${claim_data}
  1692 + Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data}
1176 1693 Remove File ${file_path}
1177 1694
1178 1695
... ... @@ -1194,7 +1711,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
1194 1711 ... doc_id=${doc_id}
1195 1712 ... doc_content=${file_content}
1196 1713 ${claim_data}= munch_dict arg=${claim_data}
1197   - Set To Dictionary ${USERS.users['${provider}']} lot_claim_data ${claim_data}
  1714 + Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data}
1198 1715 Remove File ${file_path}
1199 1716
1200 1717
... ... @@ -1261,6 +1778,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
1261 1778 ... ${TENDER['TENDER_UAID']}
1262 1779 ... ${USERS.users['${provider}']['tender_claim_data']['complaintID']}
1263 1780 ... cancelled
  1781 + Log ${USERS.users['${provider}'].tender_claim_data}
1264 1782
1265 1783
1266 1784 Можливість скасувати вимогу про виправлення умов лоту
... ...
  1 +coding: utf-8
1 2 *** Settings ***
2 3 Library openprocurement_client_helper.py
3 4 Library openprocurement_client.utils
... ... @@ -84,6 +85,12 @@ Library openprocurement_client.utils
84 85 ... ${USERS.users['${username}'].auth_dasu[0]}
85 86 ... ${USERS.users['${username}'].auth_dasu[1]}
86 87 ... ${ds_config}
  88 + ${amcu_api_wrapper}= prepare_amcu_api_wrapper
  89 + ... ${USERS.users['${username}'].api_key}
  90 + ... TENDERS
  91 + ... ${API_HOST_URL}
  92 + ... ${API_VERSION}
  93 + ... ${ds_config}
87 94 ${agreement_wrapper}= prepare_agreement_api_wrapper ${USERS.users['${username}'].api_key} AGREEMENTS ${API_HOST_URL} ${API_VERSION} ${ds_config}
88 95 Set To Dictionary ${USERS.users['${username}']} client=${tender_api_wrapper}
89 96 Set To Dictionary ${USERS.users['${username}']} plan_client=${plan_api_wrapper}
... ... @@ -91,6 +98,7 @@ Library openprocurement_client.utils
91 98 Set To Dictionary ${USERS.users['${username}']} agreement_client=${agreement_wrapper}
92 99 Set To Dictionary ${USERS.users['${username}']} dasu_client=${dasu_api_wraper}
93 100 Set To Dictionary ${USERS.users['${username}']} access_token=${EMPTY}
  101 + Set To Dictionary ${USERS.users['${username}']} amcu_client=${amcu_api_wrapper}
94 102 ${id_map}= Create Dictionary
95 103 Set To Dictionary ${USERS.users['${username}']} id_map=${id_map}
96 104 Log ${EDR_HOST_URL}
... ... @@ -721,24 +729,26 @@ Library openprocurement_client.utils
721 729
722 730
723 731 Скасувати лот
724   - [Arguments] ${username} ${tender_uaid} ${lot_id} ${cancellation_reason} ${document} ${new_description}
  732 + [Arguments] ${username} ${tender_uaid} ${lot_id} ${cancellation_reason} ${cancellation_reasonType} ${document} ${new_description}
725 733 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
  734 + ${procurementMethodType}= set variable ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
  735 + Log ${procurementMethodType}
726 736 ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id}
727 737 ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id}
728 738 ${data}= Create dictionary
729 739 ... reason=${cancellation_reason}
  740 + ... reasonType=${cancellation_reasonType}
730 741 ... cancellationOf=lot
731 742 ... relatedLot=${lot_id}
732 743 ${cancellation_data}= Create dictionary data=${data}
733 744 ${cancellation_data}= munch_dict arg=${cancellation_data}
734 745 ${cancel_reply}= Call Method ${USERS.users['${username}'].client} create_cancellation ${tender} ${cancellation_data}
735 746 ${cancellation_id}= Set variable ${cancel_reply.data.id}
736   -
737 747 ${document_id}= openprocurement_client.Завантажити документацію до запиту на скасування ${username} ${tender_uaid} ${cancellation_id} ${document}
738   -
739 748 openprocurement_client.Змінити опис документа в скасуванні ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description}
740   -
741   - openprocurement_client.Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id}
  749 + run keyword if '${procurementMethodType}' in ['belowThreshold', 'reporting', 'closeFrameworkAgreementUA']
  750 + ... openprocurement_client.Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id}
  751 + ... ELSE openprocurement_client.Перевести скасування закупівлі в період очікування ${username} ${tender_uaid} ${cancellation_id}
742 752
743 753
744 754 Отримати інформацію з документа до лоту
... ... @@ -890,6 +900,24 @@ Library openprocurement_client.utils
890 900 [return] ${reply.data.complaintID}
891 901
892 902
  903 +Створити чернетку скарги про виправлення умов закупівлі
  904 + [Documentation] Створює скаргу у статусі "draft"
  905 + [Arguments] ${username} ${tender_uaid} ${complaint}
  906 + Log ${complaint}
  907 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  908 + ... ${username}
  909 + ... ${tender_uaid}
  910 + ${reply}= Call Method
  911 + ... ${USERS.users['${username}'].client}
  912 + ... create_complaint
  913 + ... ${tender.data.id}
  914 + ... ${complaint}
  915 + ... access_token=${tender.access.token}
  916 + Log ${reply}
  917 + Set To Dictionary ${USERS.users['${username}']} complaint_access_token=${reply.access.token}
  918 + [return] ${reply.data.complaintID}
  919 +
  920 +
893 921 Створити чернетку вимоги про виправлення умов лоту
894 922 [Documentation] Створює вимогу у статусі "draft"
895 923 [Arguments] ${username} ${tender_uaid} ${claim} ${lot_id}
... ... @@ -905,8 +933,23 @@ Library openprocurement_client.utils
905 933 [return] ${complaintID}
906 934
907 935
908   -Створити чернетку вимоги про виправлення визначення переможця
909   - [Documentation] Створює вимогу у статусі "draft"
  936 +Створити чернетку скарги про виправлення умов лоту
  937 + [Documentation] Створює скарги у статусі "draft"
  938 + [Arguments] ${username} ${tender_uaid} ${complaint} ${lot_id}
  939 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  940 + ... ${username}
  941 + ... ${tender_uaid}
  942 + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id}
  943 + Set to dictionary ${complaint.data} relatedLot=${tender.data.lots[${lot_index}].id}
  944 + ${complaintID}= openprocurement_client.Створити чернетку скарги про виправлення умов закупівлі
  945 + ... ${username}
  946 + ... ${tender_uaid}
  947 + ... ${complaint}
  948 + [return] ${complaintID}
  949 +
  950 +
  951 +Створити чернетку вимоги/скарги про виправлення визначення переможця
  952 + [Documentation] Створює вимогу/скаргу у про виправлення визначення переможця статусі "draft"
910 953 [Arguments] ${username} ${tender_uaid} ${claim} ${award_index}
911 954 Log ${claim}
912 955 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
... ... @@ -922,6 +965,51 @@ Library openprocurement_client.utils
922 965 ... access_token=${tender.access.token}
923 966 Log ${reply}
924 967 Set To Dictionary ${USERS.users['${username}']} complaint_access_token=${reply.access.token}
  968 + Set To Dictionary ${USERS.users['${amcu_user}']} complaint_access_token=${reply.access.token}
  969 + Log ${USERS.users['${username}'].complaint_access_token}
  970 + [return] ${reply.data.complaintID}
  971 +
  972 +
  973 +Створити чернетку вимоги/скарги про виправлення кваліфікації учасника
  974 + [Documentation] Створює вимогу/скаргу у про виправлення кваліфікації учасника статусі "draft"
  975 + [Arguments] ${username} ${tender_uaid} ${data} ${qualification_index}
  976 + Log ${data}
  977 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  978 + ... ${username}
  979 + ... ${tender_uaid}
  980 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  981 + ${reply}= Call Method
  982 + ... ${USERS.users['${username}'].client}
  983 + ... create_qualification_complaint
  984 + ... ${tender.data.id}
  985 + ... ${data}
  986 + ... ${tender.data.qualifications[${qualification_index}].id}
  987 + ... access_token=${tender.access.token}
  988 + Log ${reply}
  989 + Set To Dictionary ${USERS.users['${username}']} complaint_access_token=${reply.access.token}
  990 + Set To Dictionary ${USERS.users['${amcu_user}']} complaint_access_token=${reply.access.token}
  991 + Log ${USERS.users['${username}'].complaint_access_token}
  992 + [return] ${reply.data.complaintID}
  993 +
  994 +
  995 +Створити чернетку вимоги/скарги на скасування
  996 + [Documentation] Створює вимогу/скаргу на скасування у статусі "draft"
  997 + [Arguments] ${username} ${tender_uaid} ${data} ${cancellations_index}
  998 + Log ${data}
  999 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  1000 + ... ${username}
  1001 + ... ${tender_uaid}
  1002 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  1003 + ${reply}= Call Method
  1004 + ... ${USERS.users['${username}'].client}
  1005 + ... create_cancellations_complaint
  1006 + ... ${tender.data.id}
  1007 + ... ${data}
  1008 + ... ${tender.data.cancellations[${canсellations_index}].id}
  1009 + ... access_token=${tender.access.token}
  1010 + Log ${reply}
  1011 + Set To Dictionary ${USERS.users['${username}']} complaint_access_token=${reply.access.token}
  1012 + Set To Dictionary ${USERS.users['${amcu_user}']} complaint_access_token=${reply.access.token}
925 1013 Log ${USERS.users['${username}'].complaint_access_token}
926 1014 [return] ${reply.data.complaintID}
927 1015
... ... @@ -1080,6 +1168,36 @@ Library openprocurement_client.utils
1080 1168 Log ${reply}
1081 1169
1082 1170
  1171 +Завантажити документ до скарги в окремий об'єкт
  1172 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${object_index} ${document} ${object}
  1173 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  1174 + ... ${username}
  1175 + ... ${tender_uaid}
  1176 + Log ${USERS.users['${username}'].complaint_access_token}
  1177 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].complaint_access_token}
  1178 + ${complaint_internal_id}= openprocurement_client.Отримати internal id по UAid для скарги ${tender} ${complaintID}
  1179 + ${reply}= run keyword if '${object}' == 'awards' Call Method ${USERS.users['${username}'].client} upload_award_complaint_document
  1180 + ... ${document}
  1181 + ... ${tender.data.id}
  1182 + ... ${tender.data.${object}[${object_index}].id}
  1183 + ... ${complaint_internal_id}
  1184 + ... access_token=${USERS.users['${username}'].complaint_access_token}
  1185 + ... ELSE IF '${object}' == 'qualifications' Call Method ${USERS.users['${username}'].client} upload_qualification_complaint_document
  1186 + ... ${document}
  1187 + ... ${tender.data.id}
  1188 + ... ${tender.data.${object}[${object_index}].id}
  1189 + ... ${complaint_internal_id}
  1190 + ... access_token=${USERS.users['${username}'].complaint_access_token}
  1191 + ... ELSE Call Method ${USERS.users['${username}'].client} upload_cancellation_complaint_document
  1192 + ... ${document}
  1193 + ... ${tender.data.id}
  1194 + ... ${tender.data.${object}[${object_index}].id}
  1195 + ... ${complaint_internal_id}
  1196 + ... access_token=${USERS.users['${username}'].complaint_access_token}
  1197 + Log ${tender}
  1198 + Log ${reply}
  1199 +
  1200 +
1083 1201 Подати вимогу
1084 1202 [Documentation] Переводить вимогу зі статусу "draft" у статус "claim"
1085 1203 [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data}
... ... @@ -1094,7 +1212,115 @@ Library openprocurement_client.utils
1094 1212 ... access_token=${USERS.users['${username}'].complaint_access_token}
1095 1213 Log ${tender}
1096 1214 Log ${reply}
  1215 + [return] ${reply}
  1216 +
  1217 +
  1218 +Подати скаргу
  1219 + [Documentation] Переводить скаргу зі статусу "draft" у статус "pending"
  1220 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data}
  1221 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
  1222 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].complaint_access_token}
  1223 + ${complaint_internal_id}= openprocurement_client.Отримати internal id по UAid для скарги ${tender} ${complaintID}
  1224 + Set To Dictionary ${confirmation_data.data} id=${complaint_internal_id}
  1225 + Log ${confirmation_data}
  1226 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_complaint
  1227 + ... ${tender.data.id}
  1228 + ... ${confirmation_data}
  1229 + ... ${complaint_internal_id}
  1230 + ... access_token=${USERS.users['${username}'].complaint_access_token}
  1231 + Log ${tender}
  1232 + Log ${reply}
  1233 +
  1234 +
  1235 +Змінити статус скарги
  1236 + [Documentation] Переводить скаргу в tender/lot в інший статус
  1237 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data}
  1238 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  1239 + ... ${username}
  1240 + ... ${tender_uaid}
  1241 + run keyword if '${username}' == 'Tender_Owner' set_access_key ${tender} ${USERS.users['${username}'].access_token}
  1242 + ... ELSE IF '${username}' == 'Amcu_User' set_access_key ${tender} ${None}
  1243 + ... ELSE IF '${username}' == 'Payment_User' set_access_key ${tender} ${None}
  1244 + ... ELSE set_access_key ${tender} ${USERS.users['${username}'].complaint_access_token}
  1245 + ${complaint_internal_id}= openprocurement_client.Отримати internal id по UAid для скарги ${tender} ${complaintID}
  1246 + Set To Dictionary ${confirmation_data.data} id=${complaint_internal_id}
  1247 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_complaint
  1248 + ... ${tender.data.id}
  1249 + ... ${confirmation_data}
  1250 + ... ${complaint_internal_id}
  1251 + ... access_token=${tender.access.token}
  1252 + Log ${tender}
  1253 + Log ${reply}
  1254 +
  1255 +
  1256 +Змінити статус скарги на визначення пре-кваліфікації учасника
  1257 + [Documentation] Переводить скаргу в qualifications тендера в інший статус
  1258 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${qualification_index} ${confirmation_data}
  1259 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  1260 + ... ${username}
  1261 + ... ${tender_uaid}
  1262 + run keyword if '${username}' == 'Tender_Owner' set_access_key ${tender} ${USERS.users['${username}'].access_token}
  1263 + ... ELSE IF '${username}' == 'Amcu_User' set_access_key ${tender} ${None}
  1264 + ... ELSE IF '${username}' == 'Payment_User' set_access_key ${tender} ${None}
  1265 + ... ELSE set_access_key ${tender} ${USERS.users['${username}'].complaint_access_token}
  1266 + ${complaint_internal_id}= openprocurement_client.Отримати internal id по UAid для скарги ${tender} ${complaintID}
  1267 + Set To Dictionary ${confirmation_data.data} id=${complaint_internal_id}
  1268 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification_complaint
  1269 + ... ${tender.data.id}
  1270 + ... ${confirmation_data}
  1271 + ... ${tender.data.qualifications[${qualification_index}].id}
  1272 + ... ${complaint_internal_id}
  1273 + ... access_token=${tender.access.token}
  1274 + Log ${tender}
  1275 + Log ${reply}
  1276 +
  1277 +
  1278 +Змінити статус скарги на визначення переможця
  1279 + [Documentation] Переводить скаргу в awards тендера в інший статус
  1280 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${award_index} ${confirmation_data}
  1281 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  1282 + ... ${username}
  1283 + ... ${tender_uaid}
  1284 + run keyword if '${username}' == 'Tender_Owner' set_access_key ${tender} ${USERS.users['${username}'].access_token}
  1285 + ... ELSE IF '${username}' == 'Amcu_User' set_access_key ${tender} ${None}
  1286 + ... ELSE IF '${username}' == 'Payment_User' set_access_key ${tender} ${None}
  1287 + ... ELSE set_access_key ${tender} ${USERS.users['${username}'].complaint_access_token}
  1288 + ${complaint_internal_id}= openprocurement_client.Отримати internal id по UAid для скарги ${tender} ${complaintID}
  1289 + Set To Dictionary ${confirmation_data.data} id=${complaint_internal_id}
  1290 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_award_complaint
  1291 + ... ${tender.data.id}
  1292 + ... ${confirmation_data}
  1293 + ... ${tender.data.awards[${award_index}].id}
  1294 + ... ${complaint_internal_id}
  1295 + ... access_token=${tender.access.token}
  1296 + Log ${tender}
  1297 + Log ${reply}
  1298 +
  1299 +
  1300 +Змінити статус скарги на скасування
  1301 + [Documentation] Переводить скаргу в cancellations тендера в інший статус
  1302 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellations_index} ${confirmation_data}
  1303 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  1304 + ... ${username}
  1305 + ... ${tender_uaid}
  1306 + run keyword if '${username}' == 'Tender_Owner' set_access_key ${tender} ${USERS.users['${username}'].access_token}
  1307 + ... ELSE IF '${username}' == 'Amcu_User' set_access_key ${tender} ${None}
  1308 + ... ELSE IF '${username}' == 'Payment_User' set_access_key ${tender} ${None}
  1309 + ... ELSE set_access_key ${tender} ${USERS.users['${username}'].complaint_access_token}
  1310 + ${complaint_internal_id}= openprocurement_client.Отримати internal id по UAid для скарги ${tender} ${complaintID}
  1311 + Set To Dictionary ${confirmation_data.data} id=${complaint_internal_id}
  1312 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation_complaint
  1313 + ... ${tender.data.id}
  1314 + ... ${confirmation_data}
  1315 + ... ${tender.data.cancellations[${cancellations_index}].id}
  1316 + ... ${complaint_internal_id}
  1317 + ... access_token=${tender.access.token}
  1318 + Log ${tender}
  1319 + Log ${reply}
1097 1320
  1321 +##################################################################
  1322 +# OLD VERSION CLAIMS/COMPLAINTS
  1323 +##################################################################
1098 1324
1099 1325 Подати вимогу про виправлення визначення переможця
1100 1326 [Documentation] Переводить вимогу зі статусу "draft" у статус "claim"
... ... @@ -1115,6 +1341,25 @@ Library openprocurement_client.utils
1115 1341 Log ${reply}
1116 1342
1117 1343
  1344 +Подати скаргу про виправлення визначення переможця
  1345 + [Documentation] Переводить вимогу зі статусу "draft" у статус "pending"
  1346 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${award_index} ${confirmation_data}
  1347 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору
  1348 + ... ${username}
  1349 + ... ${tender_uaid}
  1350 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].complaint_access_token}
  1351 + ${complaint_internal_id}= openprocurement_client.Отримати internal id по UAid для скарги ${tender} ${complaintID}
  1352 + Set To Dictionary ${confirmation_data.data} id=${complaint_internal_id}
  1353 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_award_complaint
  1354 + ... ${tender.data.id}
  1355 + ... ${confirmation_data}
  1356 + ... ${tender.data.awards[${award_index}].id}
  1357 + ... ${complaint_internal_id}
  1358 + ... access_token=${tender.access.token}
  1359 + Log ${tender}
  1360 + Log ${reply}
  1361 +
  1362 +
1118 1363 Відповісти на вимогу про виправлення умов закупівлі
1119 1364 [Documentation] Переводить вимогу зі статусу "claim" у статус "answered"
1120 1365 [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data}
... ... @@ -1291,6 +1536,16 @@ Library openprocurement_client.utils
1291 1536 ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title}
1292 1537 [return] ${filename}
1293 1538
  1539 +
  1540 +Отримати інформацію із cancellation
  1541 + [Arguments] ${username} ${tender_uaid} ${field_name} ${cancellation_index}
  1542 + openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
  1543 + ${cancellations}= Get Variable Value ${USERS.users['${username}'].tender_data.data.cancellations[${cancellation_index}]} ${USERS.users['${username}'].tender_data.data.cancellations}
  1544 + Log ${cancellations}
  1545 + ${field_value}= Get Variable Value ${USERS.users['${username}'].tender_data.data.cancellations[${cancellation_index}]['${field_name}']}
  1546 + Log ${field_value}
  1547 + [Return] ${field_value}
  1548 +
1294 1549 ##############################################################################
1295 1550 # Bid operations
1296 1551 ##############################################################################
... ... @@ -1603,28 +1858,41 @@ Library openprocurement_client.utils
1603 1858
1604 1859 Скасувати закупівлю
1605 1860 [Documentation]
1606   - ... [Arguments] Username, tender uaid, cancellation reason,
  1861 + ... [Arguments] Username, tender uaid, cancellation reason, cancellation reasonType
1607 1862 ... document and new description of document
1608 1863 ... [Description] Find tender using uaid, set cancellation reason, get data from cancel_tender
1609 1864 ... and call create_cancellation
1610 1865 ... After that add document to cancellation and change description of document
1611 1866 ... [Return] Nothing
1612   - [Arguments] ${username} ${tender_uaid} ${cancellation_reason} ${document} ${new_description}
  1867 + [Arguments] ${username} ${tender_uaid} ${cancellation_reason} ${cancellation_reasonType} ${document} ${new_description}
1613 1868 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
1614   - ${data}= Create dictionary reason=${cancellation_reason}
  1869 + ${procurementMethodType}= set variable ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
  1870 + Log ${procurementMethodType}
  1871 + ${data}= Create dictionary
  1872 + ... reason=${cancellation_reason}
  1873 + ... reasonType=${cancellation_reasonType}
1615 1874 ${cancellation_data}= Create dictionary data=${data}
1616 1875 ${cancellation_data}= munch_dict arg=${cancellation_data}
  1876 + Log ${cancellation_data}
1617 1877 ${cancel_reply}= Call Method ${USERS.users['${username}'].client} create_cancellation
1618 1878 ... ${tender.data.id}
1619 1879 ... ${cancellation_data}
1620 1880 ... access_token=${tender.access.token}
1621 1881 ${cancellation_id}= Set variable ${cancel_reply.data.id}
1622   -
1623   - ${document_id}= openprocurement_client.Завантажити документацію до запиту на скасування ${username} ${tender_uaid} ${cancellation_id} ${document}
1624   -
1625   - openprocurement_client.Змінити опис документа в скасуванні ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description}
1626   -
1627   - openprocurement_client.Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id}
  1882 + ${document_id}= openprocurement_client.Завантажити документацію до запиту на скасування
  1883 + ... ${username}
  1884 + ... ${tender_uaid}
  1885 + ... ${cancellation_id}
  1886 + ... ${document}
  1887 + openprocurement_client.Змінити опис документа в скасуванні
  1888 + ... ${username}
  1889 + ... ${tender_uaid}
  1890 + ... ${cancellation_id}
  1891 + ... ${document_id}
  1892 + ... ${new_description}
  1893 + run keyword if '${procurementMethodType}' in ['belowThreshold', 'reporting', 'closeFrameworkAgreementUA']
  1894 + ... openprocurement_client.Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id}
  1895 + ... ELSE openprocurement_client.Перевести скасування закупівлі в період очікування ${username} ${tender_uaid} ${cancellation_id}
1628 1896
1629 1897
1630 1898 Завантажити документацію до запиту на скасування
... ... @@ -1680,6 +1948,23 @@ Library openprocurement_client.utils
1680 1948 Log ${reply}
1681 1949
1682 1950
  1951 +Перевести скасування закупівлі в період очікування
  1952 + [Documentation]
  1953 + ... [Arguments] Username, tender uaid, cancellation number
  1954 + ... Find tender using uaid, get cancellation test_confirmation data and call patch_cancellation
  1955 + ... [Return] Nothing
  1956 + [Arguments] ${username} ${tender_uaid} ${cancel_id}
  1957 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
  1958 + ${data}= test_cancel_pending_data ${cancel_id}
  1959 + Log ${data}
  1960 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation
  1961 + ... ${tender.data.id}
  1962 + ... ${data}
  1963 + ... ${data.data.id}
  1964 + ... access_token=${tender.access.token}
  1965 + Log ${reply}
  1966 +
  1967 +
1683 1968 Отримати інформацію із документа до скасування
1684 1969 [Arguments] ${username} ${tender_uaid} ${cancel_id} ${doc_id} ${field_name}
1685 1970 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
... ...
... ... @@ -100,6 +100,20 @@ def get_complaint_internal_id(tender, complaintID):
100 100 return complaint.id
101 101 except AttributeError:
102 102 pass
  103 + try:
  104 + for qualification in tender.data.qualifications:
  105 + for complaint in qualification.complaints:
  106 + if complaint.complaintID == complaintID:
  107 + return complaint.id
  108 + except AttributeError:
  109 + pass
  110 + try:
  111 + for cancellation in tender.data.cancellations:
  112 + for complaint in cancellation.complaints:
  113 + if complaint.complaintID == complaintID:
  114 + return complaint.id
  115 + except AttributeError:
  116 + pass
103 117 raise IdNotFound
104 118
105 119
... ... @@ -195,4 +209,15 @@ class StableTenderCreateClient(TenderCreateClient):
195 209
196 210 def prepare_tender_create_wrapper(key, resource, host_url, api_version, ds_config=None):
197 211 return StableTenderCreateClient(key, resource, host_url, api_version,
198   - ds_config=ds_config)
\ No newline at end of file
  212 + ds_config=ds_config)
  213 +
  214 +
  215 +class StableClientAmcu(Client):
  216 + @retry(stop_max_attempt_number=100, wait_random_min=500,
  217 + wait_random_max=4000, retry_on_exception=retry_if_request_failed)
  218 + def request(self, *args, **kwargs):
  219 + return super(StableClientAmcu, self).request(*args, **kwargs)
  220 +
  221 +
  222 +def prepare_amcu_api_wrapper(key, resource, host_url, api_version, ds_config=None):
  223 + return StableClientAmcu(key, resource, host_url, api_version, ds_config=ds_config)
... ...
... ... @@ -44,11 +44,22 @@ ${PLAN_TENDER} ${True}
44 44 Можливість скасувати 0 лот
45 45
46 46
  47 +Дочекатися закічення complait періоду скасування лота
  48 + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування тендера
  49 + ... tender_owner
  50 + ... ${USERS.users['${tender_owner}'].broker}
  51 + ... lot_cancellation_stand_still
  52 + ... critical
  53 + Log ${TENDER['TENDER_UAID']}
  54 + ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner}
  55 + Дочекатись зміни статусу cancellations ${tender_owner} ${TENDER['TENDER_UAID']} active ${cancellation_index}
  56 +
  57 +
47 58 Відображення активного статусу скасування лота
48 59 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота
49 60 ... viewer
50 61 ... ${USERS.users['${viewer}'].broker}
51   - ... lot_cancellation
  62 + ... lot_cancellation_view
52 63 [Setup] Дочекатись синхронізації з майданчиком ${viewer}
53 64 ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
54 65 Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
... ... @@ -60,7 +71,7 @@ ${PLAN_TENDER} ${True}
60 71 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота
61 72 ... viewer
62 73 ... ${USERS.users['${viewer}'].broker}
63   - ... lot_cancellation
  74 + ... lot_cancellation_view
64 75 ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
65 76 Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
66 77 ... ${USERS.users['${tender_owner}']['lot_cancellation_data']['cancellation_reason']}
... ... @@ -71,7 +82,7 @@ ${PLAN_TENDER} ${True}
71 82 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота
72 83 ... viewer
73 84 ... ${USERS.users['${viewer}'].broker}
74   - ... lot_cancellation
  85 + ... lot_cancellation_view
75 86 Звірити відображення поля description документа ${USERS.users['${tender_owner}']['lot_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['lot_cancellation_data']['cancellation_id']} із ${USERS.users['${tender_owner}']['lot_cancellation_data']['description']} для користувача ${viewer}
76 87
77 88
... ... @@ -79,7 +90,7 @@ ${PLAN_TENDER} ${True}
79 90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота
80 91 ... viewer
81 92 ... ${USERS.users['${viewer}'].broker}
82   - ... lot_cancellation
  93 + ... lot_cancellation_view
83 94 Звірити відображення поля title документа ${USERS.users['${tender_owner}']['lot_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['lot_cancellation_data']['cancellation_id']} із ${USERS.users['${tender_owner}']['lot_cancellation_data']['document']['doc_name']} для користувача ${viewer}
84 95
85 96
... ... @@ -87,7 +98,7 @@ ${PLAN_TENDER} ${True}
87 98 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота
88 99 ... viewer
89 100 ... ${USERS.users['${viewer}'].broker}
90   - ... lot_cancellation
  101 + ... lot_cancellation_view
91 102 Звірити відображення вмісту документа ${USERS.users['${tender_owner}']['lot_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['lot_cancellation_data']['cancellation_id']} з ${USERS.users['${tender_owner}']['lot_cancellation_data']['document']['doc_content']} для користувача ${viewer}
92 103
93 104 ##############################################################################################
... ... @@ -103,23 +114,22 @@ ${PLAN_TENDER} ${True}
103 114 Можливість скасувати тендер
104 115
105 116
106   -Відображення активного статусу скасування тендера
107   - [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
108   - ... viewer
109   - ... ${USERS.users['${viewer}'].broker}
110   - ... tender_cancellation
111   - [Setup] Дочекатись синхронізації з майданчиком ${viewer}
112   - ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
113   - Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
114   - ... active
115   - ... cancellations[${cancellation_index}].status
  117 +Дочекатися закічення complait періоду
  118 + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування тендера
  119 + ... tender_owner
  120 + ... ${USERS.users['${tender_owner}'].broker}
  121 + ... tender_cancellation_stand_still
  122 + ... critical
  123 + Log ${TENDER['TENDER_UAID']}
  124 + ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner}
  125 + Дочекатись зміни статусу cancellations ${tender_owner} ${TENDER['TENDER_UAID']} active ${cancellation_index}
116 126
117 127
118 128 Відображення причини скасування тендера
119 129 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
120 130 ... viewer
121 131 ... ${USERS.users['${viewer}'].broker}
122   - ... tender_cancellation
  132 + ... tender_cancellation_view
123 133 ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
124 134 Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
125 135 ... ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_reason']}
... ... @@ -130,7 +140,7 @@ ${PLAN_TENDER} ${True}
130 140 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
131 141 ... viewer
132 142 ... ${USERS.users['${viewer}'].broker}
133   - ... tender_cancellation
  143 + ... tender_cancellation_view
134 144 Звірити відображення поля description документа ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_id']} із ${USERS.users['${tender_owner}']['tender_cancellation_data']['description']} для користувача ${viewer}
135 145
136 146
... ... @@ -138,7 +148,7 @@ ${PLAN_TENDER} ${True}
138 148 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
139 149 ... viewer
140 150 ... ${USERS.users['${viewer}'].broker}
141   - ... tender_cancellation
  151 + ... tender_cancellation_view
142 152 Звірити відображення поля title документа ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_id']} із ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_name']} для користувача ${viewer}
143 153
144 154
... ... @@ -146,9 +156,21 @@ ${PLAN_TENDER} ${True}
146 156 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
147 157 ... viewer
148 158 ... ${USERS.users['${viewer}'].broker}
149   - ... tender_cancellation
  159 + ... tender_cancellation_view
150 160 Звірити відображення вмісту документа ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_id']} з ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_content']} для користувача ${viewer}
151 161
  162 +
  163 +Відображення активного статусу скасування тендера
  164 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
  165 + ... viewer
  166 + ... ${USERS.users['${viewer}'].broker}
  167 + ... tender_cancellation_view
  168 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  169 + ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
  170 + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
  171 + ... active
  172 + ... cancellations[${cancellation_index}].status
  173 +
152 174 ##############################################################################################
153 175 # DELETING LOT
154 176 ##############################################################################################
... ... @@ -164,24 +186,26 @@ ${PLAN_TENDER} ${True}
164 186
165 187 *** Keywords ***
166 188 Можливість скасувати тендер
167   - ${cancellation_data}= Підготувати дані про скасування
  189 + ${cancellation_data}= Підготувати дані про скасування ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
168 190 Run As ${tender_owner}
169 191 ... Скасувати закупівлю
170 192 ... ${TENDER['TENDER_UAID']}
171 193 ... ${cancellation_data['cancellation_reason']}
  194 + ... ${cancellation_data['cancellation_reasonType']}
172 195 ... ${cancellation_data['document']['doc_path']}
173 196 ... ${cancellation_data['description']}
174 197 Set To Dictionary ${USERS.users['${tender_owner}']} tender_cancellation_data=${cancellation_data}
175 198
176 199
177 200 Можливість скасувати ${index} лот
178   - ${cancellation_data}= Підготувати дані про скасування
  201 + ${cancellation_data}= Підготувати дані про скасування ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
179 202 ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${index}]}
180 203 Run As ${tender_owner}
181 204 ... Скасувати лот
182 205 ... ${TENDER['TENDER_UAID']}
183 206 ... ${lot_id}
184 207 ... ${cancellation_data['cancellation_reason']}
  208 + ... ${cancellation_data['cancellation_reasonType']}
185 209 ... ${cancellation_data['document']['doc_path']}
186 210 ... ${cancellation_data['description']}
187 211 Set To Dictionary ${USERS.users['${tender_owner}']} lot_cancellation_data=${cancellation_data}
... ...
  1 +coding: utf-8
  2 +*** Settings ***
  3 +Resource base_keywords.robot
  4 +Resource aboveThreshold_keywords.robot
  5 +Suite Setup Test Suite Setup
  6 +Suite Teardown Test Suite Teardown
  7 +
  8 +*** Variables ***
  9 +${MODE} belowThreshold
  10 +@{USED_ROLES} tender_owner provider provider1 provider2 viewer amcu_user payment_user
  11 +${MOZ_INTEGRATION} ${False}
  12 +${VAT_INCLUDED} ${True}
  13 +
  14 +${NUMBER_OF_ITEMS} ${1}
  15 +${NUMBER_OF_LOTS} ${1}
  16 +${NUMBER_OF_MILESTONES} ${1}
  17 +${TENDER_MEAT} ${0}
  18 +${ITEM_MEAT} ${0}
  19 +${LOT_MEAT} ${0}
  20 +${lot_index} ${0}
  21 +${award_index} ${0}
  22 +${qualification_index} ${0}
  23 +${cancellations_index} ${0}
  24 +${ROAD_INDEX} ${False}
  25 +${GMDN_INDEX} ${False}
  26 +${PLAN_TENDER} ${True}
  27 +
  28 +*** Test Cases ***
  29 +
  30 +##############################################################################################
  31 +# CREATE AND FIND TENDER LOT VIEW
  32 +##############################################################################################
  33 +
  34 +Можливість оголосити однопредметний тендер
  35 + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера
  36 + ... tender_owner
  37 + ... ${USERS.users['${tender_owner}'].broker}
  38 + ... create_tender
  39 + ... critical
  40 + [Teardown] Оновити LAST_MODIFICATION_DATE
  41 + Можливість оголосити тендер
  42 +
  43 +
  44 +Можливість знайти однопредметний тендер по ідентифікатору
  45 + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера
  46 + ... viewer
  47 + ... ${USERS.users['${viewer}'].broker}
  48 + ... find_tender
  49 + ... critical
  50 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  51 + Можливість знайти тендер по ідентифікатору для усіх користувачів
  52 +
  53 +
  54 +Відображення заголовку лотів
  55 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера
  56 + ... viewer tender_owner provider provider1
  57 + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker}
  58 + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker}
  59 + ... tender_view
  60 + ... critical
  61 + Звірити відображення поля title усіх лотів для усіх користувачів
  62 +
  63 +
  64 +Можливість подати пропозицію першим учасником
  65 + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції
  66 + ... provider
  67 + ... ${USERS.users['${provider}'].broker}
  68 + ... make_bid_by_provider
  69 + ... critical
  70 + [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']}
  71 + [Teardown] Оновити LAST_MODIFICATION_DATE
  72 + Можливість подати цінову пропозицію користувачем ${provider}
  73 +
  74 +
  75 +Можливість подати пропозицію другим учасником
  76 + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції
  77 + ... provider1
  78 + ... ${USERS.users['${provider1}'].broker}
  79 + ... make_bid_by_provider1
  80 + ... critical
  81 + [Setup] Дочекатись дати початку прийому пропозицій ${provider1} ${TENDER['TENDER_UAID']}
  82 + [Teardown] Оновити LAST_MODIFICATION_DATE
  83 + Можливість подати цінову пропозицію користувачем ${provider1}
  84 +
  85 +##############################################################################################
  86 +# TENDER/LOT COMPLAINT
  87 +##############################################################################################
  88 +
  89 +Можливість створити чернетку скарги про виправлення умов закупівлі тендера
  90 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження
  91 + ... provider
  92 + ... ${USERS.users['${provider}'].broker}
  93 + ... tender_complaint_draft
  94 + ... critical
  95 + [Teardown] Оновити LAST_MODIFICATION_DATE
  96 + Можливість створити чернетку скарги
  97 +
  98 +
  99 +Можливість створити чернетку скарги про виправлення умов лоту
  100 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження
  101 + ... provider
  102 + ... ${USERS.users['${provider}'].broker}
  103 + ... lot_complaint_draft
  104 + ... critical
  105 + [Setup] Дочекатись синхронізації з майданчиком ${provider}
  106 + [Teardown] Оновити LAST_MODIFICATION_DATE
  107 + Можливість створити чернетку скарги про виправлення умов ${lot_index} лоту
  108 +
  109 +
  110 +Відображення статусу 'draft' чернетки скарги
  111 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  112 + ... viewer
  113 + ... ${USERS.users['${viewer}'].broker}
  114 + ... tender_complaint_view
  115 + ... non-critical
  116 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  117 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із draft для користувача ${viewer}
  118 +
  119 +
  120 +Відображення заголовку скарги
  121 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  122 + ... viewer
  123 + ... ${USERS.users['${viewer}'].broker}
  124 + ... tender_complaint_view
  125 + ... non-critical
  126 + Звірити відображення поля title для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із ${USERS.users['${provider}'].complaint_data.complaint.data.title} для користувача ${viewer}
  127 +
  128 +
  129 +Відображення опису скарги
  130 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  131 + ... viewer
  132 + ... ${USERS.users['${viewer}'].broker}
  133 + ... tender_complaint_view
  134 + ... non-critical
  135 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  136 + Звірити відображення поля description для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із ${USERS.users['${provider}'].complaint_data.complaint.data.description} для користувача ${viewer}
  137 +
  138 +
  139 +Можливість додати документ до скарги про виправлення умов закупівлі тендера
  140 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження
  141 + ... provider
  142 + ... ${USERS.users['${provider}'].broker}
  143 + ... tender_complaint_add_doc
  144 + ... critical
  145 + [Teardown] Оновити LAST_MODIFICATION_DATE
  146 + Додати документ до скарги
  147 +
  148 +
  149 +Відображення заголовку документації скарги
  150 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  151 + ... viewer
  152 + ... ${USERS.users['${viewer}'].broker}
  153 + ... tender_complaint_add_doc
  154 + ... non-critical
  155 + Звірити відображення поля title документа ${USERS.users['${provider}'].complaint_data.documents.doc_id} до скарги ${USERS.users['${provider}'].complaint_data.complaintID} з ${USERS.users['${provider}'].complaint_data.documents.doc_name} для користувача ${viewer}
  156 +
  157 +
  158 +Можливість подати скаргу про виправлення умов закупівлі
  159 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження
  160 + ... provider
  161 + ... ${USERS.users['${provider}'].broker}
  162 + ... tender_complaint_pending
  163 + ... critical
  164 + [Teardown] Оновити LAST_MODIFICATION_DATE
  165 + Можливість подати скаргу
  166 +
  167 +
  168 +Відображення статусу 'pending' скарги
  169 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  170 + ... viewer
  171 + ... ${USERS.users['${viewer}'].broker}
  172 + ... tender_complaint_pending
  173 + ... non-critical
  174 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  175 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із pending для користувача ${viewer}
  176 +
  177 +
  178 +Можливість прийняти скаргу до розгляду
  179 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга прийнята до розгляду
  180 + ... amcu_user
  181 + ... ${USERS.users['${amcu_user}'].broker}
  182 + ... accept_tender_complaint
  183 + ... critical
  184 + [Teardown] Оновити LAST_MODIFICATION_DATE
  185 + Прийняти скаргу до розгляду
  186 +
  187 +
  188 +Відображення статусу 'accepted' скарги
  189 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  190 + ... viewer
  191 + ... ${USERS.users['${viewer}'].broker}
  192 + ... accept_tender_complaint
  193 + ... non-critical
  194 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  195 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із accepted для користувача ${viewer}
  196 +
  197 +
  198 +Можливість задовільнити скаргу
  199 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга задоволена
  200 + ... amcu_user
  201 + ... ${USERS.users['${amcu_user}'].broker}
  202 + ... satisfy_tender_complaint
  203 + ... critical
  204 + [Teardown] Оновити LAST_MODIFICATION_DATE
  205 + Задовільнити скаргу
  206 +
  207 +
  208 +Відображення статусу 'satisfied' скарги
  209 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  210 + ... viewer
  211 + ... ${USERS.users['${viewer}'].broker}
  212 + ... satisfy_tender_complaint
  213 + ... non-critical
  214 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  215 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із satisfied для користувача ${viewer}
  216 +
  217 +
  218 +Можливість відхилити скаргу
  219 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга відхилена
  220 + ... amcu_user
  221 + ... ${USERS.users['${amcu_user}'].broker}
  222 + ... decline_tender_complaint
  223 + ... critical
  224 + [Teardown] Оновити LAST_MODIFICATION_DATE
  225 + Відхилити скаргу
  226 +
  227 +
  228 +Відображення статусу 'declined' скарги
  229 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  230 + ... viewer
  231 + ... ${USERS.users['${viewer}'].broker}
  232 + ... decline_tender_complaint
  233 + ... non-critical
  234 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  235 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із declined для користувача ${viewer}
  236 +
  237 +
  238 +Можливість зупинити розгляд скарги
  239 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга зупинена
  240 + ... amcu_user
  241 + ... ${USERS.users['${amcu_user}'].broker}
  242 + ... stop_tender_complaint
  243 + ... critical
  244 + [Teardown] Оновити LAST_MODIFICATION_DATE
  245 + Зупинити розгляд скарги
  246 +
  247 +
  248 +Відображення статусу 'stopped' скарги
  249 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  250 + ... viewer
  251 + ... ${USERS.users['${viewer}'].broker}
  252 + ... stop_tender_complaint
  253 + ... non-critical
  254 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  255 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із stopped для користувача ${viewer}
  256 +
  257 +
  258 +Можливість залишити скаргу без розгляду
  259 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга без розгляду
  260 + ... amcu_user
  261 + ... ${USERS.users['${amcu_user}'].broker}
  262 + ... invalid_tender_complaint
  263 + ... critical
  264 + [Teardown] Оновити LAST_MODIFICATION_DATE
  265 + Залишити скаргу без розгляду
  266 +
  267 +
  268 +Відображення статусу 'invalid' скарги
  269 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  270 + ... viewer
  271 + ... ${USERS.users['${viewer}'].broker}
  272 + ... invalid_tender_complaint
  273 + ... non-critical
  274 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  275 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із invalid для користувача ${viewer}
  276 +
  277 +
  278 +Можливість позначити скаргу як помилково створену
  279 + [Tags] ${USERS.users['${provider}'].broker}: Скарга створена помилково
  280 + ... provider
  281 + ... ${USERS.users['${provider}'].broker}
  282 + ... mistaken_tender_complaint
  283 + ... critical
  284 + [Teardown] Оновити LAST_MODIFICATION_DATE
  285 + Помилково створена скарга
  286 +
  287 +
  288 +Відображення статусу 'mistaken' скарги
  289 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  290 + ... viewer
  291 + ... ${USERS.users['${viewer}'].broker}
  292 + ... mistaken_tender_complaint
  293 + ... non-critical
  294 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  295 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із mistaken для користувача ${viewer}
  296 +
  297 +
  298 +Можливість виконати рішення АМКУ Замовником
  299 + [Tags] ${USERS.users['${tender_owner}'].broker}: Замовник виконує рішення АМКУ
  300 + ... tender_owner
  301 + ... ${USERS.users['${tender_owner}'].broker}
  302 + ... resolved_tender_complaint
  303 + ... critical
  304 + [Teardown] Оновити LAST_MODIFICATION_DATE
  305 + Виконати рішення АМКУ
  306 +
  307 +
  308 +Відображення статусу 'resolved' скарги
  309 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
  310 + ... viewer
  311 + ... ${USERS.users['${viewer}'].broker}
  312 + ... resolved_tender_complaint
  313 + ... non-critical
  314 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  315 + Звірити відображення поля status для вимоги ${USERS.users['${provider}'].complaint_data['complaintID']} із resolved для користувача ${viewer}
  316 +
  317 +##############################################################################################
  318 +# QUALIFICATION COMPLAINT
  319 +##############################################################################################
  320 +
  321 +Можливість підтвердити першу пропозицію кваліфікації
  322 + [Tags] ${USERS.users['${tender_owner}'].broker}: Пре-Кваліфікація
  323 + ... tender_owner
  324 + ... ${USERS.users['${tender_owner}'].broker}
  325 + ... pre-qualification_approve_first_bid level1
  326 + ... critical
  327 + [Setup] Дочекатись дати початку періоду прекваліфікації ${tender_owner} ${TENDER['TENDER_UAID']}
  328 + [Teardown] Оновити LAST_MODIFICATION_DATE
  329 + Можливість підтвердити 0 пропозицію кваліфікації
  330 +
  331 +
  332 +Можливість підтвердити другу пропозицію кваліфікації
  333 + [Tags] ${USERS.users['${tender_owner}'].broker}: Пре-Кваліфікація
  334 + ... tender_owner
  335 + ... ${USERS.users['${tender_owner}'].broker}
  336 + ... pre-qualification_approve_second_bid level1
  337 + ... critical
  338 + [Teardown] Оновити LAST_MODIFICATION_DATE
  339 + Можливість підтвердити -1 пропозицію кваліфікації
  340 +
  341 +
  342 +Можливість затвердити остаточне рішення кваліфікації
  343 + [Tags] ${USERS.users['${tender_owner}'].broker}: Пре-Кваліфікація
  344 + ... tender_owner
  345 + ... ${USERS.users['${tender_owner}'].broker}
  346 + ... pre-qualification_approve_qualifications level1
  347 + ... critical
  348 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  349 + [Teardown] Оновити LAST_MODIFICATION_DATE
  350 + Можливість затвердити остаточне рішення кваліфікації
  351 +
  352 +
  353 +Відображення статусу блокування перед початком аукціону
  354 + [Tags] ${USERS.users['${tender_owner}'].broker}: Пре-Кваліфікація
  355 + ... tender_owner
  356 + ... ${USERS.users['${tender_owner}'].broker}
  357 + ... pre-qualification_view
  358 + ... non-critical
  359 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  360 + Звірити статус тендера ${tender_owner} ${TENDER['TENDER_UAID']} active.pre-qualification.stand-still
  361 +
  362 +
  363 +Можливість створити чернетку скарги про виправлення кваліфікації учасника
  364 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження пре-кваліфікації учасника
  365 + ... provider
  366 + ... ${USERS.users['${provider}'].broker}
  367 + ... pre-qualification_complaint_draft
  368 + ... critical
  369 + [Setup] Дочекатись синхронізації з майданчиком ${provider}
  370 + [Teardown] Оновити LAST_MODIFICATION_DATE
  371 + Можливість створити чернетку скарги про виправлення кваліфікації ${qualification_index} учасника
  372 +
  373 +
  374 +Можливість додати документ до скарги про виправлення кваліфікації учасника
  375 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження пре-кваліфікації учасника
  376 + ... provider
  377 + ... ${USERS.users['${provider}'].broker}
  378 + ... pre-qualification_complaint_add_doc
  379 + ... critical
  380 + [Teardown] Оновити LAST_MODIFICATION_DATE
  381 + Додати документ до скарги ${qualification_index} учасника в qualifications
  382 +
  383 +
  384 +Можливість подати скаргу про виправлення визначення кваліфікації учасника
  385 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження пре-кваліфікації учасника
  386 + ... provider
  387 + ... ${USERS.users['${provider}'].broker}
  388 + ... pre-qualification_complaint_pending
  389 + ... critical
  390 + [Teardown] Оновити LAST_MODIFICATION_DATE
  391 + Можливість подати скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  392 +
  393 +
  394 +Можливість позначити скаргу на визначення пре-кваліфікації учасника як помилково створену
  395 + [Tags] ${USERS.users['${provider}'].broker}: Скарга пре-кваліфікації учасника створена помилково
  396 + ... provider
  397 + ... ${USERS.users['${provider}'].broker}
  398 + ... mistaken_pre-qualification_complaint
  399 + ... critical
  400 + [Teardown] Оновити LAST_MODIFICATION_DATE
  401 + Помилково створена скарга на визначення пре-кваліфікації ${qualification_index} учасника
  402 +
  403 +
  404 +Можливість залишити скаргу на визначення пре-кваліфікації учасника ,tp
  405 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга пре-кваліфікації учасника без розгляду
  406 + ... amcu_user
  407 + ... ${USERS.users['${amcu_user}'].broker}
  408 + ... invalid_pre-qualification_complaint
  409 + ... critical
  410 + [Teardown] Оновити LAST_MODIFICATION_DATE
  411 + Залишити скаргу на визначення пре-кваліфікації ${qualification_index} учасника без розгляду
  412 +
  413 +
  414 +Можливість прийняти скаргу на визначення пре-кваліфікації учасника
  415 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга прийнята до розгляду
  416 + ... amcu_user
  417 + ... ${USERS.users['${amcu_user}'].broker}
  418 + ... accept_pre-qualification_complaint
  419 + ... critical
  420 + [Teardown] Оновити LAST_MODIFICATION_DATE
  421 + Прийняти скаргу на визначення пре-кваліфікації ${qualification_index} учасника до розгляду
  422 +
  423 +
  424 +Можливість задовільнити скаргу на визначення пре-кваліфікації учасника
  425 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга пре-кваліфікації учасника задоволена
  426 + ... amcu_user
  427 + ... ${USERS.users['${amcu_user}'].broker}
  428 + ... satisfy_pre-qualification_complaint
  429 + ... critical
  430 + [Teardown] Оновити LAST_MODIFICATION_DATE
  431 + Задовільнити скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  432 +
  433 +
  434 +Можливість виконати рішення АМКУ Замовником
  435 + [Tags] ${USERS.users['${tender_owner}'].broker}: Замовник виконує рішення АМКУ по скарзі пре-кваліфікації учасника
  436 + ... tender_owner
  437 + ... ${USERS.users['${tender_owner}'].broker}
  438 + ... resolved_pre-qualification_complaint
  439 + ... critical
  440 + [Teardown] Оновити LAST_MODIFICATION_DATE
  441 + Виконати рішення АМКУ по скарзі на визначення пре-кваліфікації ${qualification_index} учасника
  442 +
  443 +
  444 +Можливість відхилити скаргу на визначення пре-кваліфікації учасника
  445 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга пре-кваліфікації учасника відхилена
  446 + ... amcu_user
  447 + ... ${USERS.users['${amcu_user}'].broker}
  448 + ... decline_pre-qualification_complaint
  449 + ... critical
  450 + [Teardown] Оновити LAST_MODIFICATION_DATE
  451 + Відхилити скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  452 +
  453 +
  454 +Можливість зупинити розгляд скарги на визначення пре-кваліфікації учасника
  455 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга пре-кваліфікації учасника зупинена
  456 + ... amcu_user
  457 + ... ${USERS.users['${amcu_user}'].broker}
  458 + ... stop_pre-qualification_complaint
  459 + ... critical
  460 + [Teardown] Оновити LAST_MODIFICATION_DATE
  461 + Зупинити скаргу на визначення пре-кваліфікації ${qualification_index} учасника
  462 +
  463 +##############################################################################################
  464 +# AWARD COMPLAINT
  465 +##############################################################################################
  466 +
  467 +Можливість дочекатись дати початку періоду кваліфікації
  468 + [Tags] ${USERS.users['${provider}'].broker}: Подання кваліфікації
  469 + ... provider
  470 + ... ${USERS.users['${provider}'].broker}
  471 + ... awardPeriod_startDate
  472 + ... critical
  473 + [Teardown] Оновити LAST_MODIFICATION_DATE
  474 + Дочекатись дати початку періоду кваліфікації ${provider} ${TENDER['TENDER_UAID']}
  475 +
  476 +
  477 +Можливість підтвердити учасника
  478 + [Tags] ${USERS.users['${tender_owner}'].broker}: Процес кваліфікації
  479 + ... tender_owner
  480 + ... ${USERS.users['${tender_owner}'].broker}
  481 + ... qualification_approve_first_award
  482 + ... critical
  483 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  484 + [Teardown] Оновити LAST_MODIFICATION_DATE
  485 + ${file_path} ${file_name} ${file_content}= create_fake_doc
  486 + Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${file_path} ${TENDER['TENDER_UAID']} 0
  487 + Run As ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0
  488 + Remove File ${file_path}
  489 +
  490 +
  491 +Можливість створити чернетку скарги про виправлення визначення переможця
  492 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження визначення переможця
  493 + ... provider
  494 + ... ${USERS.users['${provider}'].broker}
  495 + ... award_complaint_draft
  496 + ... critical
  497 + [Setup] Дочекатись синхронізації з майданчиком ${provider}
  498 + [Teardown] Оновити LAST_MODIFICATION_DATE
  499 + Можливість створити чернетку скарги про виправлення визначення ${award_index} переможця
  500 +
  501 +
  502 +Можливість додати документ до скарги про виправлення визначення переможця
  503 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження визначення переможця
  504 + ... provider
  505 + ... ${USERS.users['${provider}'].broker}
  506 + ... award_complaint_add_doc
  507 + ... critical
  508 + [Teardown] Оновити LAST_MODIFICATION_DATE
  509 + Додати документ до скарги ${award_index} учасника в awards
  510 +
  511 +
  512 +Можливість подати скаргу про виправлення визначення переможця
  513 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження визначення переможця
  514 + ... provider
  515 + ... ${USERS.users['${provider}'].broker}
  516 + ... award_complaint_pending
  517 + ... critical
  518 + [Teardown] Оновити LAST_MODIFICATION_DATE
  519 + Можливість подати скаргу на визначення ${award_index} переможця
  520 +
  521 +
  522 +Можливість позначити скаргу на визначення переможця як помилково створену
  523 + [Tags] ${USERS.users['${provider}'].broker}: Скарга визначення переможця створена помилково
  524 + ... provider
  525 + ... ${USERS.users['${provider}'].broker}
  526 + ... mistaken_award_complaint
  527 + ... critical
  528 + [Teardown] Оновити LAST_MODIFICATION_DATE
  529 + Помилково створена скарга на визначення ${award_index} переможця
  530 +
  531 +
  532 +Можливість залишити скаргу на визначення переможця без розгляду
  533 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на визначення переможця без розгляду
  534 + ... amcu_user
  535 + ... ${USERS.users['${amcu_user}'].broker}
  536 + ... invalid_award_complaint
  537 + ... critical
  538 + [Teardown] Оновити LAST_MODIFICATION_DATE
  539 + Залишити скаргу на визначення ${award_index} переможця без розгляду
  540 +
  541 +
  542 +Можливість прийняти скаргу на визначення переможця до розгляду
  543 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга прийнята до розгляду
  544 + ... amcu_user
  545 + ... ${USERS.users['${amcu_user}'].broker}
  546 + ... accept_award_complaint
  547 + ... critical
  548 + [Teardown] Оновити LAST_MODIFICATION_DATE
  549 + Прийняти скаргу на визначення ${award_index} переможця до розгляду
  550 +
  551 +
  552 +Можливість задовільнити скаргу на визначення переможця
  553 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на визначення переможця задоволена
  554 + ... amcu_user
  555 + ... ${USERS.users['${amcu_user}'].broker}
  556 + ... satisfy_award_complaint
  557 + ... critical
  558 + [Teardown] Оновити LAST_MODIFICATION_DATE
  559 + Задовільнити скаргу на визначення ${award_index} переможця
  560 +
  561 +
  562 +Можливість виконати рішення АМКУ Замовником
  563 + [Tags] ${USERS.users['${tender_owner}'].broker}: Замовник виконує рішення АМКУ по скарзі на визначення переможця
  564 + ... tender_owner
  565 + ... ${USERS.users['${tender_owner}'].broker}
  566 + ... resolved_award_complaint
  567 + ... critical
  568 + [Teardown] Оновити LAST_MODIFICATION_DATE
  569 + Виконати рішення АМКУ по скарзі на визначення ${award_index} переможця
  570 +
  571 +
  572 +Можливість відхилити скаргу на визначення переможця
  573 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на визначення переможця відхилена
  574 + ... amcu_user
  575 + ... ${USERS.users['${amcu_user}'].broker}
  576 + ... decline_award_complaint
  577 + ... critical
  578 + [Teardown] Оновити LAST_MODIFICATION_DATE
  579 + Відхилити скаргу на визначення ${award_index} переможця
  580 +
  581 +
  582 +Можливість зупинити розгляд скарги на визначення переможця
  583 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на визначення переможця зупинена
  584 + ... amcu_user
  585 + ... ${USERS.users['${amcu_user}'].broker}
  586 + ... stop_award_complaint
  587 + ... critical
  588 + [Teardown] Оновити LAST_MODIFICATION_DATE
  589 + Зупинити скаргу на визначення ${award_index} переможця
  590 +
  591 +##############################################################################################
  592 +# CANCELLATION COMPLAINT
  593 +##############################################################################################
  594 +
  595 +Можливість скасувати лот
  596 + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування лота
  597 + ... tender_owner
  598 + ... ${USERS.users['${tender_owner}'].broker}
  599 + ... lot_cancellation
  600 + [Teardown] Оновити LAST_MODIFICATION_DATE
  601 + Можливість скасувати 0 лот
  602 +
  603 +
  604 +Можливість скасувати тендер
  605 + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування тендера
  606 + ... tender_owner
  607 + ... ${USERS.users['${tender_owner}'].broker}
  608 + ... tender_cancellation
  609 + [Teardown] Оновити LAST_MODIFICATION_DATE
  610 + Можливість скасувати тендер
  611 +
  612 +
  613 +Відображення статусу очікування оскарження скасування
  614 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота
  615 + ... viewer
  616 + ... ${USERS.users['${viewer}'].broker}
  617 + ... cancellation_status_view
  618 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  619 + ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
  620 + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
  621 + ... pending
  622 + ... cancellations[${cancellation_index}].status
  623 +
  624 +
  625 +Можливість створити чернетку скарги на скасування лота
  626 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження скасування лота
  627 + ... provider
  628 + ... ${USERS.users['${provider}'].broker}
  629 + ... lot_cancellation_complaint_draft
  630 + ... critical
  631 + [Setup] Дочекатись синхронізації з майданчиком ${provider}
  632 + [Teardown] Оновити LAST_MODIFICATION_DATE
  633 + Можливість створити чернетку скарги на скасування ${cancellations_index}
  634 +
  635 +
  636 +Можливість створити чернетку скарги на скасування тендера
  637 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження скасування тендера
  638 + ... provider
  639 + ... ${USERS.users['${provider}'].broker}
  640 + ... tender_cancellation_complaint_draft
  641 + ... critical
  642 + [Setup] Дочекатись синхронізації з майданчиком ${provider}
  643 + [Teardown] Оновити LAST_MODIFICATION_DATE
  644 + Можливість створити чернетку скарги на скасування ${cancellations_index}
  645 +
  646 +
  647 +Можливість подати скаргу на скасування
  648 + [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження скасування тендера/лота
  649 + ... provider
  650 + ... ${USERS.users['${provider}'].broker}
  651 + ... cancel_complaint_pending
  652 + ... critical
  653 + [Teardown] Оновити LAST_MODIFICATION_DATE
  654 + Можливість подати скаргу на скасування ${cancellations_index}
  655 +
  656 +
  657 +Можливість позначити скаргу на скасування як помилково створену
  658 + [Tags] ${USERS.users['${provider}'].broker}: Скарга на скасування тендера/лота створена помилково
  659 + ... provider
  660 + ... ${USERS.users['${provider}'].broker}
  661 + ... mistaken_cancel_complaint
  662 + ... critical
  663 + [Teardown] Оновити LAST_MODIFICATION_DATE
  664 + Помилково створена скарга скасування ${cancellations_index}
  665 +
  666 +
  667 +Можливість залишити скаргу на скасування без розгляду
  668 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на скасування тендера/лота без розгляду
  669 + ... amcu_user
  670 + ... ${USERS.users['${amcu_user}'].broker}
  671 + ... invalid_cancel_complaint
  672 + ... critical
  673 + [Teardown] Оновити LAST_MODIFICATION_DATE
  674 + Залишити скаргу на скасування ${cancellations_index}
  675 +
  676 +
  677 +Можливість прийняти скаргу на визначення переможця до розгляду
  678 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на скасування тендера/лота прийнята до розгляду
  679 + ... amcu_user
  680 + ... ${USERS.users['${amcu_user}'].broker}
  681 + ... accept_cancel_complaint
  682 + ... critical
  683 + [Teardown] Оновити LAST_MODIFICATION_DATE
  684 + Прийняти скаргу на скасування ${cancellations_index} до розгляду
  685 +
  686 +
  687 +Можливість задовільнити скаргу на визначення переможця
  688 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на скасування тендера/лота задоволена
  689 + ... amcu_user
  690 + ... ${USERS.users['${amcu_user}'].broker}
  691 + ... satisfy_cancel_complaint
  692 + ... critical
  693 + [Teardown] Оновити LAST_MODIFICATION_DATE
  694 + Задовільнити скаргу на скасування ${cancellations_index}
  695 +
  696 +
  697 +Можливість виконати рішення АМКУ Замовником
  698 + [Tags] ${USERS.users['${tender_owner}'].broker}: Замовник виконує рішення АМКУ по скарзі на скасування тендера/лота
  699 + ... tender_owner
  700 + ... ${USERS.users['${tender_owner}'].broker}
  701 + ... resolved_cancel_complaint
  702 + ... critical
  703 + [Teardown] Оновити LAST_MODIFICATION_DATE
  704 + Виконати рішення АМКУ по скарзі на скасування ${cancellations_index}
  705 +
  706 +
  707 +Можливість відхилити скаргу на визначення переможця
  708 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на скасування тендера/лота відхилена
  709 + ... amcu_user
  710 + ... ${USERS.users['${amcu_user}'].broker}
  711 + ... decline_cancel_complaint
  712 + ... critical
  713 + [Teardown] Оновити LAST_MODIFICATION_DATE
  714 + Відхилити скаргу на скасування ${cancellations_index}
  715 +
  716 +
  717 +Можливість зупинити розгляд скарги на визначення переможця
  718 + [Tags] ${USERS.users['${amcu_user}'].broker}: Скарга на скасування тендера/лота зупинена
  719 + ... amcu_user
  720 + ... ${USERS.users['${amcu_user}'].broker}
  721 + ... stop_cancel_complaint
  722 + ... critical
  723 + [Teardown] Оновити LAST_MODIFICATION_DATE
  724 + Зупинити скаргу на скасування ${cancellations_index}
  725 +
  726 +
  727 +*** Keywords ***
  728 +
  729 +Можливість скасувати ${index} лот
  730 + ${cancellation_data}= Підготувати дані про скасування ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
  731 + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${index}]}
  732 + Run As ${tender_owner}
  733 + ... Скасувати лот
  734 + ... ${TENDER['TENDER_UAID']}
  735 + ... ${lot_id}
  736 + ... ${cancellation_data['cancellation_reason']}
  737 + ... ${cancellation_data['cancellation_reasonType']}
  738 + ... ${cancellation_data['document']['doc_path']}
  739 + ... ${cancellation_data['description']}
  740 + Set To Dictionary ${USERS.users['${tender_owner}']} lot_cancellation_data=${cancellation_data}
  741 +
  742 +
  743 +Можливість скасувати тендер
  744 + ${cancellation_data}= Підготувати дані про скасування ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
  745 + Run As ${tender_owner}
  746 + ... Скасувати закупівлю
  747 + ... ${TENDER['TENDER_UAID']}
  748 + ... ${cancellation_data['cancellation_reason']}
  749 + ... ${cancellation_data['cancellation_reasonType']}
  750 + ... ${cancellation_data['document']['doc_path']}
  751 + ... ${cancellation_data['description']}
  752 + Set To Dictionary ${USERS.users['${tender_owner}']} tender_cancellation_data=${cancellation_data}
  753 +
  754 +
... ...
... ... @@ -86,6 +86,8 @@ Quinta:
86 86 tender_owner: Tender_Owner
87 87 viewer: Tender_Viewer
88 88 dasu_user: Dasu_User
  89 + amcu_user: Amcu_User
  90 + payment_user: Payment_User
89 91 timeout_on_wait: 15
90 92 Etender:
91 93 intervals:
... ...
... ... @@ -6,6 +6,7 @@ users:
6 6 auctions: [test.quintagroup.com, bc698baa8b814908bc75405ed3d63548]
7 7 api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
8 8 auth_dasu: [test.quintagroup.com, e9c3ccb8e8124f26941d5f9639a4ebc3]
  9 + auth_amcu: e9c3ccb8e8124f26941d5f9639a4ebc3
9 10 broker: Quinta
10 11 auth_edr: [test.quintagroup.com, f5111c99a97a45348d8165ba8fcf0d62]
11 12 browser: phantomjs
... ... @@ -18,6 +19,7 @@ users:
18 19 auctions: [test.quintagroup.com, bc698baa8b814908bc75405ed3d63548]
19 20 api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
20 21 auth_dasu: [test.quintagroup.com, e9c3ccb8e8124f26941d5f9639a4ebc3]
  22 + auth_amcu: e9c3ccb8e8124f26941d5f9639a4ebc3
21 23 broker: Quinta
22 24 auth_edr: [test.quintagroup.com, f5111c99a97a45348d8165ba8fcf0d62]
23 25 browser: phantomjs
... ... @@ -30,6 +32,7 @@ users:
30 32 auctions: [test.quintagroup.com, bc698baa8b814908bc75405ed3d63548]
31 33 api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
32 34 auth_dasu: [test.quintagroup.com, e9c3ccb8e8124f26941d5f9639a4ebc3]
  35 + auth_amcu: e9c3ccb8e8124f26941d5f9639a4ebc3
33 36 broker: Quinta
34 37 auth_edr: [test.quintagroup.com, f5111c99a97a45348d8165ba8fcf0d62]
35 38 browser: phantomjs
... ... @@ -42,6 +45,7 @@ users:
42 45 auctions: [test.quintagroup.com, bc698baa8b814908bc75405ed3d63548]
43 46 api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
44 47 auth_dasu: [test.quintagroup.com, e9c3ccb8e8124f26941d5f9639a4ebc3]
  48 + auth_amcu: e9c3ccb8e8124f26941d5f9639a4ebc3
45 49 broker: Quinta
46 50 auth_edr: [test.quintagroup.com, f5111c99a97a45348d8165ba8fcf0d62]
47 51 browser: phantomjs
... ... @@ -72,6 +76,32 @@ users:
72 76 auth_edr: [test.quintagroup.com, f5111c99a97a45348d8165ba8fcf0d62]
73 77 position: [0, 0]
74 78 size: [1400, 900]
  79 + Amcu_User:
  80 + auth_ds:
  81 + monitorings: [test.quintagroup.com, test.quintagroup.com]
  82 + plans: [test.quintagroup.com, test.quintagroup.com]
  83 + tenders: [test.quintagroup.com, test.quintagroup.com]
  84 + auth_dasu: [test.quintagroup.com, e9c3ccb8e8124f26941d5f9639a4ebc3]
  85 + auth_amcu: 210945ed5de940b7bce976f411a1a290
  86 + api_key: 210945ed5de940b7bce976f411a1a290
  87 + broker: Quinta
  88 + browser: phantomjs
  89 + auth_edr: [test.quintagroup.com, f5111c99a97a45348d8165ba8fcf0d62]
  90 + position: [0, 0]
  91 + size: [1400, 900]
  92 + Payment_User:
  93 + auth_ds:
  94 + monitorings: [test.quintagroup.com, test.quintagroup.com]
  95 + plans: [test.quintagroup.com, test.quintagroup.com]
  96 + tenders: [test.quintagroup.com, test.quintagroup.com]
  97 + auth_dasu: [test.quintagroup.com, e9c3ccb8e8124f26941d5f9639a4ebc3]
  98 + auth_payment: ab15262404644b60972a8118bac2c587
  99 + api_key: ab15262404644b60972a8118bac2c587
  100 + broker: Quinta
  101 + browser: phantomjs
  102 + auth_edr: [test.quintagroup.com, f5111c99a97a45348d8165ba8fcf0d62]
  103 + position: [0, 0]
  104 + size: [1400, 900]
75 105 Etender_Owner:
76 106 broker: Etender
77 107 homepage: "https://stage.e-tender.ua/"
... ...
... ... @@ -12,19 +12,19 @@ from munch import munchify
12 12 from op_faker import OP_Provider
13 13 from .local_time import get_now, TZ
14 14
15   -
16 15 fake_en = Factory.create(locale='en_US')
17 16 fake_ru = Factory.create(locale='ru_RU')
18 17 fake_uk = Factory.create(locale='uk_UA')
19 18 fake_uk.add_provider(OP_Provider)
20 19 fake = fake_uk
21 20 used_identifier_id = []
22   -mode_open = ["belowThreshold", "aboveThresholdUA", "aboveThresholdEU",
23   - "aboveThresholdUA.defense", "competitiveDialogueUA", "competitiveDialogueEU", "esco", "closeFrameworkAgreementUA"]
24   -mode_limited = ["reporting", "negotiation.quick", "negotiation"]
  21 +mode_open = ["belowThreshold", "aboveThresholdUA", "aboveThresholdEU",
  22 + "aboveThresholdUA.defense", "competitiveDialogueUA", "competitiveDialogueEU", "esco",
  23 + "closeFrameworkAgreementUA"]
  24 +mode_limited = ["reporting", "negotiation.quick", "negotiation"]
25 25 violationType = ["corruptionDescription", "corruptionProcurementMethodType", "corruptionChanges",
26   - "corruptionPublicDisclosure", "corruptionBiddingDocuments", "documentsForm",
27   - "corruptionAwarded", "corruptionCancelled", "corruptionContracting"]
  26 + "corruptionPublicDisclosure", "corruptionBiddingDocuments", "documentsForm",
  27 + "corruptionAwarded", "corruptionCancelled", "corruptionContracting"]
28 28
29 29 # This workaround fixes an error caused by missing "catch_phrase" class method
30 30 # for the "ru_RU" locale in Faker >= 0.7.4
... ... @@ -106,10 +106,10 @@ def create_fake_period(days=0, hours=0, minutes=0):
106 106
107 107
108 108 def subtraction(value1, value2):
109   - if "." in str (value1) or "." in str (value2):
110   - return (float (value1) - float (value2))
  109 + if "." in str(value1) or "." in str(value2):
  110 + return (float(value1) - float(value2))
111 111 else:
112   - return (int (value1) - int (value2))
  112 + return (int(value1) - int(value2))
113 113
114 114
115 115 def create_fake_value_amount():
... ... @@ -132,7 +132,7 @@ def translate_country_en(country):
132 132
133 133
134 134 def convert_amount(amount):
135   - return (("{:,}".format(float (amount))).replace(',',' ').replace('.',','))
  135 + return ("{:,}".format(float(amount))).replace(',', ' ').replace('.', ',')
136 136
137 137
138 138 def translate_country_ru(country):
... ... @@ -201,7 +201,7 @@ def test_tender_data(params,
201 201 accelerator = accelerator \
202 202 if accelerator else params['intervals']['accelerator']
203 203 data['procurementMethodDetails'] = 'quick, ' \
204   - 'accelerator={}'.format(accelerator)
  204 + 'accelerator={}'.format(accelerator)
205 205 data["procuringEntity"]["kind"] = "other"
206 206 if data.get("mode") == "test":
207 207 data["title"] = u"[ТЕСТУВАННЯ] {}".format(data["title"])
... ... @@ -318,7 +318,7 @@ def test_tender_data_planning(params):
318 318 "mode": "test",
319 319 "items": [],
320 320 "buyers": []
321   - }
  321 + }
322 322 data["procuringEntity"]["name"] = data["procuringEntity"]["identifier"]["legalName"]
323 323 buyers = test_buyers_data()
324 324 buyers["name"] = buyers["identifier"]["legalName"]
... ... @@ -345,7 +345,8 @@ def test_tender_data_planning(params):
345 345 item_data = test_item_data(id_cpv)
346 346 del item_data['deliveryAddress']
347 347 del item_data['deliveryLocation']
348   - item_data['deliveryDate']['endDate'] = (get_now() + timedelta(days=10)).replace(hour=0, minute=0, second=0, microsecond=0).isoformat()
  348 + item_data['deliveryDate']['endDate'] = (get_now() + timedelta(days=10)).replace(hour=0, minute=0, second=0,
  349 + microsecond=0).isoformat()
349 350 del item_data['deliveryDate']['startDate']
350 351 data['items'].append(item_data)
351 352 if params['mode'] in mode_open:
... ... @@ -445,13 +446,49 @@ def test_complaint_data():
445 446 data = {
446 447 "author": fake.procuringTenderer(),
447 448 "description": fake.description(),
448   - "title": field_with_id("q", fake.title())
  449 + "title": field_with_id("q", fake.title()),
  450 + "type": "complaint"
  451 + }
  452 + del data['author']['scale']
  453 + return munchify({'data': data})
  454 +
  455 +
  456 +def test_accept_complaint_data():
  457 + data = {
  458 + "status": "accepted",
  459 + "reviewDate": get_now().isoformat(),
  460 + "reviewPlace": "Place of review"
  461 + }
  462 + return munchify({'data': data})
  463 +
  464 +
  465 +def test_reject_complaint_data():
  466 + data = {
  467 + "rejectReason": random.choice(["lawNonCompliance", "buyerViolationsCorrected", "alreadyExists", "tenderCancelled"])
  468 + }
  469 + return munchify({'data': data})
  470 +
  471 +
  472 +def test_award_complaint_data():
  473 + data = {
  474 + "author": fake.procuringTenderer(),
  475 + "description": fake.description(),
  476 + "title": field_with_id("q", fake.title()),
  477 + "type": "complaint"
449 478 }
450 479 del data['author']['scale']
451 480 return munchify({'data': data})
452 481
453 482
454   -test_claim_data = test_complaint_data
  483 +def test_claim_data():
  484 + data = {
  485 + "author": fake.procuringTenderer(),
  486 + "description": fake.description(),
  487 + "title": field_with_id("q", fake.title()),
  488 + "type": "claim"
  489 + }
  490 + del data['author']['scale']
  491 + return munchify({'data': data})
455 492
456 493
457 494 def test_claim_answer_data(status):
... ... @@ -474,6 +511,15 @@ def test_confirm_data(id):
474 511 })
475 512
476 513
  514 +def test_cancel_pending_data(id):
  515 + return munchify({
  516 + "data": {
  517 + "status": "pending",
  518 + "id": id
  519 + }
  520 + })
  521 +
  522 +
477 523 def test_submit_claim_data(claim_id):
478 524 return munchify({
479 525 "data": {
... ... @@ -545,12 +591,12 @@ def test_bid_value(max_value_amount, vat_included):
545 591 def test_bid_value_esco(tender_data):
546 592 annual_cost = []
547 593 for i in range(0, 21):
548   - cost=round(random.uniform(1, 100), 2)
  594 + cost = round(random.uniform(1, 100), 2)
549 595 annual_cost.append(cost)
550 596 if tender_data['fundingKind'] == "budget":
551   - yearly_percentage=round(random.uniform(0.01, float(tender_data['yearlyPaymentsPercentageRange'])), 5)
  597 + yearly_percentage = round(random.uniform(0.01, float(tender_data['yearlyPaymentsPercentageRange'])), 5)
552 598 else:
553   - yearly_percentage= 0.8
  599 + yearly_percentage = 0.8
554 600 # when tender fundingKind is budget, yearlyPaymentsPercentageRange should be less or equal 0.8, and more or equal 0
555 601 # when tender fundingKind is other, yearlyPaymentsPercentageRange should be equal 0.8
556 602 return munchify({
... ... @@ -577,7 +623,9 @@ def test_bid_data_selection(data, index):
577 623 })
578 624 bid.data['status'] = 'draft'
579 625 bid.data['parameters'] = data['agreements'][0]['contracts'][index]['parameters']
580   - bid.data['lotValues'] = [test_bid_value(data['agreements'][0]['contracts'][index]['value']['amount'], data['agreements'][0]['contracts'][index]['value']['valueAddedTaxIncluded'])]
  626 + bid.data['lotValues'] = [test_bid_value(data['agreements'][0]['contracts'][index]['value']['amount'],
  627 + data['agreements'][0]['contracts'][index]['value'][
  628 + 'valueAddedTaxIncluded'])]
581 629 return bid
582 630
583 631
... ... @@ -605,8 +653,10 @@ def test_item_data(cpv=None):
605 653 startDate = fake.random_int(min=1, max=30)
606 654 endDate = startDate + fake.random_int(min=1, max=7)
607 655 data["deliveryDate"] = {
608   - "startDate": (get_now() + timedelta(days=startDate)).astimezone(TZ).replace(hour=0, minute=0, second=0, microsecond=0).isoformat(),
609   - "endDate": (get_now() + timedelta(days=endDate)).astimezone(TZ).replace(hour=0, minute=0, second=0, microsecond=0).isoformat()
  656 + "startDate": (get_now() + timedelta(days=startDate)).astimezone(TZ).replace(hour=0, minute=0, second=0,
  657 + microsecond=0).isoformat(),
  658 + "endDate": (get_now() + timedelta(days=endDate)).astimezone(TZ).replace(hour=0, minute=0, second=0,
  659 + microsecond=0).isoformat()
610 660 }
611 661 data["deliveryAddress"]["countryName_en"] = translate_country_en(data["deliveryAddress"]["countryName"])
612 662 data["deliveryAddress"]["countryName_ru"] = translate_country_ru(data["deliveryAddress"]["countryName"])
... ... @@ -698,7 +748,8 @@ def test_tender_data_openeu(params, submissionMethodDetails, plan_data):
698 748 data['procuringEntity']['name_en'] = fake_en.name()
699 749 data['procuringEntity']['contactPoint']['name_en'] = fake_en.name()
700 750 data['procuringEntity']['contactPoint']['availableLanguage'] = "en"
701   - data['procuringEntity']['identifier']['legalName_en'] = u"Institution \"Vinnytsia City Council primary and secondary general school № 10\""
  751 + data['procuringEntity']['identifier'][
  752 + 'legalName_en'] = u"Institution \"Vinnytsia City Council primary and secondary general school № 10\""
702 753 data['procuringEntity']['kind'] = 'general'
703 754 return data
704 755
... ... @@ -748,34 +799,34 @@ def test_tender_data_selection(procedure_intervals, params, submissionMethodDeta
748 799 data['agreements'] = [{'id': tender_data['data']['agreements'][0]['id']}]
749 800 del data['value']
750 801 del data['minimalStep']
751   - return munchify({'data':data})
  802 + return munchify({'data': data})
752 803
753 804
754 805 def test_change_data():
755 806 return munchify(
756   - {
757   - "data":
758 807 {
759   - "rationale": fake.description(),
760   - "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
761   - "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
762   - "rationaleTypes": fake.rationaleTypes(amount=3),
763   - "status": "pending"
764   - }
765   - })
  808 + "data":
  809 + {
  810 + "rationale": fake.description(),
  811 + "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
  812 + "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
  813 + "rationaleTypes": fake.rationaleTypes(amount=3),
  814 + "status": "pending"
  815 + }
  816 + })
766 817
767 818
768 819 def test_agreement_change_data(rationaleType):
769 820 return munchify(
770   - {
771   - "data":
772 821 {
773   - "rationale": fake.description(),
774   - "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
775   - "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
776   - "rationaleType": rationaleType,
777   - }
778   - })
  822 + "data":
  823 + {
  824 + "rationale": fake.description(),
  825 + "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
  826 + "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
  827 + "rationaleType": rationaleType,
  828 + }
  829 + })
779 830
780 831
781 832 def test_modification_data(item_id, field_name, field_value):
... ... @@ -787,24 +838,21 @@ def test_modification_data(item_id, field_name, field_value):
787 838 }
788 839 ]
789 840 }
790   - return munchify({'data':data})
  841 + return munchify({'data': data})
791 842
792 843
793 844 def get_hash(file_contents):
794   - return ("md5:"+hashlib.md5(file_contents).hexdigest())
  845 + return ("md5:" + hashlib.md5(file_contents).hexdigest())
795 846
796 847
797   -def tets_monitoring_data( tender_id, accelerator=None):
798   - data = {
799   - "reasons": [random.choice(["public", "fiscal", "indicator", "authorities", "media"])],
800   - "tender_id": tender_id,
801   - "procuringStages": [random.choice(["awarding", "contracting", "planning"])],
802   - "parties": [test_party()],
803   - "mode": "test"
804   - }
805   - data['monitoringDetails'] = 'quick, ' \
806   - 'accelerator={}'.format(accelerator)
807   - return munchify({'data':data})
  848 +def test_monitoring_data(tender_id, accelerator=None):
  849 + data = {"reasons": [random.choice(["public", "fiscal", "indicator", "authorities", "media"])],
  850 + "tender_id": tender_id,
  851 + "procuringStages": [random.choice(["awarding", "contracting", "planning"])],
  852 + "parties": [test_party()],
  853 + "mode": "test",
  854 + 'monitoringDetails': 'quick, ' 'accelerator={}'.format(accelerator)}
  855 + return munchify({'data': data})
808 856
809 857
810 858 def test_party():
... ... @@ -816,26 +864,26 @@ def test_party():
816 864
817 865 def test_dialogue():
818 866 return munchify(
819   - {
820   - "data":
821 867 {
822   - "title": fake_en.sentence(nb_words=10, variable_nb_words=True),
823   - "description": fake_en.sentence(nb_words=10, variable_nb_words=True)
824   - }
825   - })
  868 + "data":
  869 + {
  870 + "title": fake_en.sentence(nb_words=10, variable_nb_words=True),
  871 + "description": fake_en.sentence(nb_words=10, variable_nb_words=True)
  872 + }
  873 + })
826 874
827 875
828 876 def test_conclusion(violationOccurred, relatedParty_id):
829 877 return munchify(
830   - {
831   - "data": {
832   - "conclusion": {
833   - "violationOccurred": violationOccurred,
834   - "violationType": random.choice(violationType),
835   - "relatedParty": relatedParty_id,
  878 + {
  879 + "data": {
  880 + "conclusion": {
  881 + "violationOccurred": violationOccurred,
  882 + "violationType": random.choice(violationType),
  883 + "relatedParty": relatedParty_id,
  884 + }
836 885 }
837   - }
838   - })
  886 + })
839 887
840 888
841 889 def test_status_data(status, relatedParty_id=None):
... ... @@ -890,7 +938,7 @@ def test_tender_data_esco(params, submissionMethodDetails, plan_data):
890 938 if index == 0:
891 939 data['lots'][index]['minimalStepPercentage'] = data['minimalStepPercentage']
892 940 else:
893   - data['lots'][index]['minimalStepPercentage'] = round((float(data['minimalStepPercentage'])-0.0002), 5)
  941 + data['lots'][index]['minimalStepPercentage'] = round((float(data['minimalStepPercentage']) - 0.0002), 5)
894 942 if data['fundingKind'] == "budget":
895 943 data['lots'][index]['yearlyPaymentsPercentageRange'] = float(round(random.uniform(0.01, 0.8), 5))
896 944 else:
... ... @@ -932,25 +980,25 @@ def percentage_generation(number_of_milestones):
932 980
933 981 def invalid_INN_data():
934 982 return munchify({
935   - "scheme": "INN",
936   - "description": "Insulin (human)",
937   - "id": "insulin (human)"
  983 + "scheme": "INN",
  984 + "description": "Insulin (human)",
  985 + "id": "insulin (human)"
938 986 })
939 987
940 988
941 989 def invalid_cost_data():
942 990 return munchify({
943   - "scheme": "UA-ROAD",
944   - "id": "H-08",
945   - "description": "Бориспіль - Дніпро - Запоріжжя (через м. Кременчук) - Маріуполь"
  991 + "scheme": "UA-ROAD",
  992 + "id": "H-08",
  993 + "description": "Бориспіль - Дніпро - Запоріжжя (через м. Кременчук) - Маріуполь"
946 994 })
947 995
948 996
949 997 def invalid_gmdn_data():
950 998 return munchify({
951   - "scheme": "GMDN",
952   - "id": "10082",
953   - "description": "Змішувач амальгами для стоматології"
  999 + "scheme": "GMDN",
  1000 + "id": "10082",
  1001 + "description": "Змішувач амальгами для стоматології"
954 1002 })
955 1003
956 1004
... ... @@ -973,7 +1021,7 @@ def invalid_buyers_data():
973 1021 "legalName": "Київський Тестовий Ліцей",
974 1022 },
975 1023 "name": "Київський Тестовий Ліцей"
976   - }
  1024 + }
977 1025 return munchify(buyers)
978 1026
979 1027
... ... @@ -1011,3 +1059,15 @@ def breakdown_value_generation(number_of_breakdown, plan_value):
1011 1059 value_data = [round(random.uniform(1, plan_value / number_of_breakdown), 2) for _ in range(number_of_breakdown - 1)]
1012 1060 value_data.append(round(plan_value - sum(value_data), 2))
1013 1061 return value_data
  1062 +
  1063 +
  1064 +def test_cancellation_data(procurement_method_type):
  1065 + if procurement_method_type == "aboveThresholdUA.defense":
  1066 + result = random.choice(["noDemand", "unFixable", "expensesCut"])
  1067 + elif procurement_method_type in ["negotiation", "negotiation.quick"]:
  1068 + result = random.choice(["noObjectiveness", "unFixable", "noDemand", "expensesCut", "dateViolation"])
  1069 + elif procurement_method_type == "belowThreshold":
  1070 + result = random.choice(["noDemand", "unFixable", "expensesCut"])
  1071 + else:
  1072 + result = random.choice(["noDemand", "unFixable", "forceMajeure", "expensesCut"])
  1073 + return munchify({"reasonType": result})
... ...
  1 +coding: utf-8
1 2 *** Settings ***
2 3 Library op_robot_tests.tests_files.service_keywords
3 4 Library String
... ... @@ -292,11 +293,21 @@ Get Broker Property By Username
292 293
293 294
294 295 Підготувати дані для подання скарги
295   - [Arguments] ${lot}=${False}
296   - ${complaint}= test_complaint_data ${lot}
  296 + #[Arguments] ${lot}=${False}
  297 + ${complaint}= test_complaint_data
297 298 [Return] ${complaint}
298 299
299 300
  301 +Підготувати дані для прийняття скарги до розгляду
  302 + ${confirmation_data}= test_accept_complaint_data
  303 + [Return] ${confirmation_data}
  304 +
  305 +
  306 +Підготувати дані для відхилення скарги
  307 + ${reject_reason}= test_reject_complaint_data
  308 + [Return] ${reject_reason}
  309 +
  310 +
300 311 Підготувати дані для відповіді на скаргу
301 312 ${reply}= test_complaint_reply_data
302 313 [Return] ${reply}
... ... @@ -342,6 +353,8 @@ Get Broker Property By Username
342 353
343 354
344 355 Підготувати дані про скасування
  356 + [Arguments] ${procurementMethodType}
  357 + ${cancellation_data}= test_cancellation_data ${procurementMethodType}
345 358 ${cancellation_reason}= create_fake_sentence
346 359 ${cancellation_reason}= field_with_id c ${cancellation_reason}
347 360 ${cancellation_id}= get_id_from_string ${cancellation_reason}
... ... @@ -355,6 +368,7 @@ Get Broker Property By Username
355 368 ${new_description}= create_fake_sentence
356 369 ${cancellation_data}= Create Dictionary
357 370 ... cancellation_reason=${cancellation_reason}
  371 + ... cancellation_reasonType=${cancellation_data.reasonType}
358 372 ... cancellation_id=${cancellation_id}
359 373 ... document=${document}
360 374 ... description=${new_description}
... ... @@ -1007,6 +1021,12 @@ Require Failure
1007 1021 Порівняти об'єкти ${left} ${right}
1008 1022
1009 1023
  1024 +Звірити статус cancellations
  1025 + [Arguments] ${username} ${tender_uaid} ${left} ${cancellation_index}
  1026 + ${right}= Run as ${username} Отримати інформацію із cancellation ${tender_uaid} status ${cancellation_index}
  1027 + Порівняти об'єкти ${left} ${right}
  1028 +
  1029 +
1010 1030 Дочекатись дати початку періоду уточнення
1011 1031 [Arguments] ${username} ${tender_uaid}
1012 1032 Оновити LAST_MODIFICATION_DATE
... ... @@ -1215,6 +1235,19 @@ Require Failure
1215 1235 ... ${award_index}
1216 1236
1217 1237
  1238 +Дочекатись зміни статусу cancellations
  1239 + [Arguments] ${username} ${tender_uaid} ${status} ${cancellation_index}
  1240 + Дочекатись синхронізації з майданчиком ${username}
  1241 + Wait until keyword succeeds
  1242 + ... 20 min
  1243 + ... 60 sec
  1244 + ... Звірити статус cancellations
  1245 + ... ${username}
  1246 + ... ${tender_uaid}
  1247 + ... ${status}
  1248 + ... ${cancellation_index}
  1249 +
  1250 +
1218 1251 Оновити LAST_MODIFICATION_DATE
1219 1252 [Documentation]
1220 1253 ... Variable ``${TEST_STATUS}`` is only available in test case teardown.
... ...
... ... @@ -60,7 +60,7 @@ from .initial_data import (
60 60 test_tender_data_framework_agreement,
61 61 test_tender_data_selection,
62 62 test_bid_competitive_data,
63   - tets_monitoring_data,
  63 + test_monitoring_data,
64 64 test_party,
65 65 test_dialogue,
66 66 test_conclusion,
... ... @@ -80,7 +80,11 @@ from .initial_data import (
80 80 invalid_gmdn_data,
81 81 invalid_buyers_data,
82 82 test_plan_cancel_data,
83   - test_confirm_plan_cancel_data
  83 + test_confirm_plan_cancel_data,
  84 + test_accept_complaint_data,
  85 + test_reject_complaint_data,
  86 + test_cancellation_data,
  87 + test_cancel_pending_data
84 88 )
85 89 from barbecue import chef
86 90 from restkit import request
... ...
... ... @@ -3,12 +3,16 @@
3 3 -v NUMBER_OF_ITEMS:1
4 4 -v NUMBER_OF_LOTS:2
5 5
6   --v TENDER_MEAT:True
7   --v ITEM_MEAT:True
8   --v LOT_MEAT:True
  6 +-v TENDER_MEAT:False
  7 +-v ITEM_MEAT:False
  8 +-v LOT_MEAT:False
9 9
10 10 -i create_tender
11 11 -i find_tender
12   --i tender_cancellation
13 12 -i lot_cancellation
  13 +-i lot_cancellation_stand_still
  14 +-i lot_cancellation_view
  15 +-i tender_cancellation
  16 +-i tender_cancellation_stand_still
  17 +-i tender_cancellation_view
14 18 -i delete_lot
\ No newline at end of file
... ...
  1 +-v MODE:openua
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i make_bid_by_provider
  11 +-i make_bid_by_provider1
  12 +
  13 +-i awardPeriod_startDate
  14 +-i qualification_approve_first_award
  15 +
  16 +-i award_complaint_draft
  17 +-i award_complaint_add_doc
  18 +-i award_complaint_pending
  19 +-i accept_award_complaint
  20 +-i decline_award_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openua
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i make_bid_by_provider
  11 +-i make_bid_by_provider1
  12 +
  13 +-i awardPeriod_startDate
  14 +-i qualification_approve_first_award
  15 +
  16 +-i award_complaint_draft
  17 +-i award_complaint_add_doc
  18 +-i award_complaint_pending
  19 +-i invalid_award_complaint
... ...
  1 +-v MODE:openua
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i make_bid_by_provider
  11 +-i make_bid_by_provider1
  12 +
  13 +-i awardPeriod_startDate
  14 +-i qualification_approve_first_award
  15 +
  16 +-i award_complaint_draft
  17 +-i award_complaint_add_doc
  18 +-i mistaken_award_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openua
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i make_bid_by_provider
  11 +-i make_bid_by_provider1
  12 +
  13 +-i awardPeriod_startDate
  14 +-i qualification_approve_first_award
  15 +
  16 +-i award_complaint_draft
  17 +-i award_complaint_add_doc
  18 +-i award_complaint_pending
  19 +-i accept_award_complaint
  20 +-i satisfy_award_complaint
  21 +-i resolved_award_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openua
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i make_bid_by_provider
  11 +-i make_bid_by_provider1
  12 +
  13 +-i awardPeriod_startDate
  14 +-i qualification_approve_first_award
  15 +
  16 +-i award_complaint_draft
  17 +-i award_complaint_add_doc
  18 +-i award_complaint_pending
  19 +-i accept_award_complaint
  20 +-i stop_award_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:2
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i lot_cancellation
  11 +-i cancellation_status_view
  12 +-i lot_cancellation_complaint_draft
  13 +-i cancel_complaint_pending
  14 +-i accept_cancel_complaint
  15 +-i satisfy_cancel_complaint
  16 +-i resolved_cancel_complaint
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i tender_cancellation
  11 +-i cancellation_status_view
  12 +-i tender_cancellation_complaint_draft
  13 +-i cancel_complaint_pending
  14 +-i accept_cancel_complaint
  15 +-i satisfy_cancel_complaint
  16 +-i resolved_cancel_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i lot_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i tender_complaint_pending
  14 +-i accept_tender_complaint
  15 +-i decline_tender_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i lot_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i tender_complaint_pending
  14 +-i invalid_tender_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i lot_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i mistaken_tender_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i lot_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i tender_complaint_pending
  14 +-i accept_tender_complaint
  15 +-i satisfy_tender_complaint
  16 +-i resolved_tender_complaint
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i lot_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i tender_complaint_pending
  14 +-i accept_tender_complaint
  15 +-i stop_tender_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-i create_tender
  4 +-i find_tender
  5 +-i tender_view
  6 +
  7 +-i make_bid_by_provider
  8 +-i make_bid_by_provider1
  9 +
  10 +-i pre-qualification_approve_first_bid
  11 +-i pre-qualification_approve_second_bid
  12 +-i pre-qualification_approve_qualifications
  13 +-i pre-qualification_view
  14 +
  15 +-i pre-qualification_complaint_draft
  16 +-i pre-qualification_complaint_add_doc
  17 +-i pre-qualification_complaint_pending
  18 +-i accept_pre-qualification_complaint
  19 +-i decline_pre-qualification_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-i create_tender
  4 +-i find_tender
  5 +-i tender_view
  6 +
  7 +-i make_bid_by_provider
  8 +-i make_bid_by_provider1
  9 +
  10 +-i pre-qualification_approve_first_bid
  11 +-i pre-qualification_approve_second_bid
  12 +-i pre-qualification_approve_qualifications
  13 +-i pre-qualification_view
  14 +
  15 +-i pre-qualification_complaint_draft
  16 +-i pre-qualification_complaint_add_doc
  17 +-i pre-qualification_complaint_pending
  18 +-i invalid_pre-qualification_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-i create_tender
  4 +-i find_tender
  5 +-i tender_view
  6 +
  7 +-i make_bid_by_provider
  8 +-i make_bid_by_provider1
  9 +
  10 +-i pre-qualification_approve_first_bid
  11 +-i pre-qualification_approve_second_bid
  12 +-i pre-qualification_approve_qualifications
  13 +-i pre-qualification_view
  14 +
  15 +-i pre-qualification_complaint_draft
  16 +-i pre-qualification_complaint_add_doc
  17 +-i mistaken_pre-qualification_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-i create_tender
  4 +-i find_tender
  5 +-i tender_view
  6 +
  7 +-i make_bid_by_provider
  8 +-i make_bid_by_provider1
  9 +
  10 +-i pre-qualification_approve_first_bid
  11 +-i pre-qualification_approve_second_bid
  12 +-i pre-qualification_approve_qualifications
  13 +-i pre-qualification_view
  14 +
  15 +-i pre-qualification_complaint_draft
  16 +-i pre-qualification_complaint_add_doc
  17 +-i pre-qualification_complaint_pending
  18 +-i accept_pre-qualification_complaint
  19 +-i satisfy_pre-qualification_complaint
  20 +-i resolved_pre-qualification_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-i create_tender
  4 +-i find_tender
  5 +-i tender_view
  6 +
  7 +-i make_bid_by_provider
  8 +-i make_bid_by_provider1
  9 +
  10 +-i pre-qualification_approve_first_bid
  11 +-i pre-qualification_approve_second_bid
  12 +-i pre-qualification_approve_qualifications
  13 +-i pre-qualification_view
  14 +
  15 +-i pre-qualification_complaint_draft
  16 +-i pre-qualification_complaint_add_doc
  17 +-i pre-qualification_complaint_pending
  18 +-i accept_pre-qualification_complaint
  19 +-i stop_pre-qualification_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i tender_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i tender_complaint_pending
  14 +-i accept_tender_complaint
  15 +-i decline_tender_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i tender_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i tender_complaint_pending
  14 +-i invalid_tender_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i tender_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i mistaken_tender_complaint
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i tender_complaint_draft
  11 +-i tender_complaint_view
  12 +-i tender_complaint_add_doc
  13 +-i tender_complaint_pending
  14 +-i accept_tender_complaint
  15 +-i satisfy_tender_complaint
  16 +-i resolved_tender_complaint
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-i create_tender
  7 +-i find_tender
  8 +-i tender_view
  9 +
  10 +-i tender_complaint_draft
  11 +-i tender_complaint_add_doc
  12 +-i tender_complaint_pending
  13 +-i accept_tender_complaint
  14 +-i stop_tender_complaint
\ No newline at end of file
... ...
... ... @@ -9,4 +9,6 @@
9 9
10 10 -i create_tender
11 11 -i find_tender
12   --i tender_cancellation
\ No newline at end of file
  12 +-i tender_cancellation
  13 +-i tender_cancellation_stand_still
  14 +-i tender_cancellation_view
\ No newline at end of file
... ...
Please register or login to post a comment