Commit ccd6de4666556efb02390e77f4f92cf249c917c2
1 parent
354b1a6b
Add test case for auction/participation url check
Showing
4 changed files
with
105 additions
and
14 deletions
@@ -61,10 +61,20 @@ Library openprocurement_client_helper.py | @@ -61,10 +61,20 @@ Library openprocurement_client_helper.py | ||
61 | Отримати посилання на аукціон для глядача | 61 | Отримати посилання на аукціон для глядача |
62 | [Arguments] ${username} ${tender_uaid} ${lot_id}=${Empty} | 62 | [Arguments] ${username} ${tender_uaid} ${lot_id}=${Empty} |
63 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 63 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
64 | - ${auctionUrl}= Run Keyword IF '${lot_id}' Set Variable ${tender.data.lots[${lot_index}].auctionUrl} | ||
65 | - ... ELSE Set Variable ${tender.data.auctionUrl} | 64 | + ${lots}= get_object_by_id ${tender.data} ${lot_id} lots id |
65 | + ${auctionUrl}= Get Variable Value ${lots['auctionUrl']} | ||
66 | [return] ${auctionUrl} | 66 | [return] ${auctionUrl} |
67 | 67 | ||
68 | + | ||
69 | +Отримати посилання на аукціон для учасника | ||
70 | + [Arguments] ${username} ${tender_uaid} ${relatedLot}=${Empty} | ||
71 | + ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | ||
72 | + Log ${bid} | ||
73 | + ${lot_Values}= get_object_by_id ${bid.data} ${relatedLot} lotValues relatedLot | ||
74 | + ${participationUrl}= Get Variable Value ${lot_Values['participationUrl']} | ||
75 | + Log ${participationUrl} | ||
76 | + [return] ${participationUrl} | ||
77 | + | ||
68 | ############################################################################## | 78 | ############################################################################## |
69 | # Tender operations | 79 | # Tender operations |
70 | ############################################################################## | 80 | ############################################################################## |
@@ -792,13 +802,6 @@ Library openprocurement_client_helper.py | @@ -792,13 +802,6 @@ Library openprocurement_client_helper.py | ||
792 | [return] ${bid.data.${field}} | 802 | [return] ${bid.data.${field}} |
793 | 803 | ||
794 | 804 | ||
795 | -Отримати посилання на аукціон для учасника | ||
796 | - [Arguments] ${username} ${tender_uaid} ${lot_id}=${Empty} | ||
797 | - ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | ||
798 | - ${participationUrl}= Run Keyword IF '${lot_id}' Set Variable ${bid.data.lotValues[${lot_index}].participationUrl} | ||
799 | - ... ELSE Set Variable ${bid.data.participationUrl} | ||
800 | - [return] ${participationUrl} | ||
801 | - | ||
802 | ############################################################################## | 805 | ############################################################################## |
803 | # Qualification operations | 806 | # Qualification operations |
804 | ############################################################################## | 807 | ############################################################################## |
@@ -599,6 +599,37 @@ Require Failure | @@ -599,6 +599,37 @@ Require Failure | ||
599 | [return] ${value} | 599 | [return] ${value} |
600 | 600 | ||
601 | 601 | ||
602 | + | ||
603 | +Можливість отримати посилання на аукціон для глядача | ||
604 | + ${timeout_on_wait}= Get Broker Property By Username ${viewer} timeout_on_wait | ||
605 | + ${timeout_on_wait}= Set Variable If | ||
606 | + ... ${timeout_on_wait} < ${120} | ||
607 | + ... ${120} | ||
608 | + ... ${timeout_on_wait} | ||
609 | + ${url}= Wait Until Keyword Succeeds | ||
610 | + ... ${timeout_on_wait} | ||
611 | + ... 15 s | ||
612 | + ... Run As ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} | ||
613 | + Should Be True '${url}' | ||
614 | + Should Match Regexp ${url} ^https?:\/\/auction(?:-sandbox)?\.openprocurement\.org\/tenders\/([0-9A-Fa-f]{32}) | ||
615 | + Log URL аукціону для глядача: ${url} | ||
616 | + | ||
617 | + | ||
618 | +Можливість отримати посилання на аукціон для учасника ${username} | ||
619 | + ${timeout_on_wait}= Get Broker Property By Username ${username} timeout_on_wait | ||
620 | + ${timeout_on_wait}= Set Variable If | ||
621 | + ... ${timeout_on_wait} < ${120} | ||
622 | + ... ${120} | ||
623 | + ... ${timeout_on_wait} | ||
624 | + ${url}= Wait Until Keyword Succeeds | ||
625 | + ... ${timeout_on_wait} | ||
626 | + ... 15 s | ||
627 | + ... Run As ${username} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} | ||
628 | + Should Be True '${url}' | ||
629 | + Should Match Regexp ${url} ^https?:\/\/auction(?:-sandbox)?\.openprocurement\.org\/tenders\/([0-9A-Fa-f]{32}) | ||
630 | + Log URL аукціону для учасника: ${url} | ||
631 | + | ||
632 | + | ||
602 | Дочекатись дати | 633 | Дочекатись дати |
603 | [Arguments] ${date} | 634 | [Arguments] ${date} |
604 | ${sleep}= wait_to_date ${date} | 635 | ${sleep}= wait_to_date ${date} |
@@ -1847,6 +1847,37 @@ ${ITEM_MEAT} ${True} | @@ -1847,6 +1847,37 @@ ${ITEM_MEAT} ${True} | ||
1847 | ... compare_stages | 1847 | ... compare_stages |
1848 | Звірити відображення поля procuringEntity.name тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.procuringEntity.name} для користувача ${viewer} | 1848 | Звірити відображення поля procuringEntity.name тендера із ${USERS.users['${tender_owner}'].second_stage_data.data.procuringEntity.name} для користувача ${viewer} |
1849 | 1849 | ||
1850 | +################################################################### | ||
1851 | +# Відображення посилання на аукціон | ||
1852 | +################################################################### | ||
1853 | + | ||
1854 | +Можливість вичитати посилання на аукціон для глядача | ||
1855 | + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону | ||
1856 | + ... viewer | ||
1857 | + ... ${USERS.users['${viewer}'].broker} | ||
1858 | + ... auction_url | ||
1859 | + [Setup] Дочекатись дати початку періоду аукціону ${viewer} ${TENDER['TENDER_UAID']} | ||
1860 | + Можливість отримати посилання на аукціон для глядача | ||
1861 | + | ||
1862 | + | ||
1863 | +Можливість вичитати посилання на аукціон для першого учасника | ||
1864 | + [Tags] ${USERS.users['${provider}'].broker}: Процес аукціону | ||
1865 | + ... provider | ||
1866 | + ... ${USERS.users['${provider}'].broker} | ||
1867 | + ... auction_url | ||
1868 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
1869 | + Можливість отримати посилання на аукціон для учасника ${provider} | ||
1870 | + | ||
1871 | + | ||
1872 | +Можливість вичитати посилання на аукціон для другого учасника | ||
1873 | + [Tags] ${USERS.users['${provider1}'].broker}: Процес аукціону | ||
1874 | + ... provider1 | ||
1875 | + ... ${USERS.users['${provider1}'].broker} | ||
1876 | + ... auction_url | ||
1877 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
1878 | + Можливість отримати посилання на аукціон для учасника ${provider1} | ||
1879 | + | ||
1880 | + | ||
1850 | ############################################################################################## | 1881 | ############################################################################################## |
1851 | # Відображення основних даних лоту для другого етапу | 1882 | # Відображення основних даних лоту для другого етапу |
1852 | ############################################################################################## | 1883 | ############################################################################################## |
@@ -443,29 +443,55 @@ def get_object_type_by_id(object_id): | @@ -443,29 +443,55 @@ def get_object_type_by_id(object_id): | ||
443 | return prefixes.get(object_id[0]) | 443 | return prefixes.get(object_id[0]) |
444 | 444 | ||
445 | 445 | ||
446 | -def get_object_index_by_id(data, object_id): | 446 | +def get_complaint_index_by_complaintID(data, complaintID): |
447 | if not data: | 447 | if not data: |
448 | return 0 | 448 | return 0 |
449 | for index, element in enumerate(data): | 449 | for index, element in enumerate(data): |
450 | - element_id = get_id_from_object(element) | ||
451 | - if element_id == object_id: | 450 | + if element['complaintID'] == complaintID: |
452 | break | 451 | break |
453 | else: | 452 | else: |
454 | index += 1 | 453 | index += 1 |
455 | return index | 454 | return index |
456 | 455 | ||
457 | 456 | ||
458 | -def get_complaint_index_by_complaintID(data, complaintID): | 457 | +def get_object_index_by_id(data, object_id): |
459 | if not data: | 458 | if not data: |
460 | return 0 | 459 | return 0 |
461 | for index, element in enumerate(data): | 460 | for index, element in enumerate(data): |
462 | - if element['complaintID'] == complaintID: | 461 | + element_id = get_id_from_object(element) |
462 | + if element_id == object_id: | ||
463 | break | 463 | break |
464 | else: | 464 | else: |
465 | index += 1 | 465 | index += 1 |
466 | return index | 466 | return index |
467 | 467 | ||
468 | 468 | ||
469 | +def get_object_by_id(data, given_object_id, slice_element, object_id): | ||
470 | + """ | ||
471 | + data: object to slice | ||
472 | + given_object_id: with what id we should compare | ||
473 | + slice_element: what path should be extracted (e.g. from { key: val } extract key ) | ||
474 | + object_id: what property is id (e.g. from { id: 1, name: 2 } extract id) | ||
475 | + """ | ||
476 | + sliced_object = data[slice_element] | ||
477 | + # Slice the given object, e.g. slice bid object to lotValues object | ||
478 | + | ||
479 | + if not sliced_object: | ||
480 | + return data | ||
481 | + | ||
482 | + if len(sliced_object) == 1: | ||
483 | + return sliced_object[0] | ||
484 | + # If there is one sliced object, get the 1st element | ||
485 | + | ||
486 | + for index, element in enumerate(sliced_object): | ||
487 | + element_id = element[object_id] | ||
488 | + if element_id == given_object_id: | ||
489 | + return element | ||
490 | + # Compare given object id and id from sliced object | ||
491 | + | ||
492 | + return sliced_object[0] | ||
493 | + | ||
494 | + | ||
469 | def generate_test_bid_data(tender_data): | 495 | def generate_test_bid_data(tender_data): |
470 | bid = test_bid_data() | 496 | bid = test_bid_data() |
471 | if tender_data.get('procurementMethodType', '')[:-2] in ('aboveThreshold', 'competitiveDialogue'): | 497 | if tender_data.get('procurementMethodType', '')[:-2] in ('aboveThreshold', 'competitiveDialogue'): |
Please
register
or
login
to post a comment