Commit c66d0cfe0674332f189ee117ffed8d64ae158044
Merge branch 'e-tender_+_netcast'
Conflicts: op_robot_tests/tests_files/data/brokers.yaml op_robot_tests/tests_files/data/users.yaml op_robot_tests/tests_files/initial_data.py
Showing
11 changed files
with
433 additions
and
316 deletions
| 1 | -*** Setting *** | |
| 2 | -Library op_robot_tests.tests_files.service_keywords | |
| 3 | -Library String | |
| 4 | -LIbrary Collections | |
| 5 | -LIbrary Selenium2Library | |
| 6 | -Library DebugLibrary | |
| 7 | -Resource keywords.robot | |
| 8 | -Resource resource.robot | |
| 9 | -Suite Setup TestCaseSetup | |
| 10 | -Suite Teardown Close all browsers | |
| 11 | - | |
| 12 | -*** Variables *** | |
| 13 | -${tender_dump_id} 0 | |
| 14 | -${tender_owner} Tender_Owner | |
| 15 | -${provider} Tender_User | |
| 16 | -${viewer} Tender_Viewer | |
| 17 | - | |
| 18 | -${LOAD_USERS} ["${tender_owner}", "${provider}"] | |
| 19 | - | |
| 20 | -${item_id} 0 | |
| 21 | -${question_id} 0 | |
| 22 | - | |
| 23 | - | |
| 24 | -*** Test Cases *** | |
| 25 | -Можливість оголосити однопердметний тендер | |
| 26 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Пошук тендера по ідентифікатору | |
| 27 | - ${TENDER_ID}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | |
| 28 | - Set Global Variable ${TENDER_ID} | |
| 29 | - ${LAST_MODIFICATION_DATE}= Get Current Date | |
| 30 | - ${TENDER_DATA}= Get Variable Value ${INITIAL_TENDER_DATA} | |
| 31 | - Set Global Variable ${TENDER_DATA} | |
| 32 | - Set Global Variable ${LAST_MODIFICATION_DATE} | |
| 33 | - | |
| 34 | -Пошук однопредметного тендера по ідентифікатору | |
| 35 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Пошук тендера по ідентифікатору | |
| 36 | - Дочекатись синхронізації з майданчиком ${provider} | |
| 37 | - Викликати для учасника ${provider} Пошук тендера по ідентифікатору ${TENDER_ID} ${TENDER_ID} | |
| 38 | - | |
| 39 | -Відображення заголовоку оголошеного тендера | |
| 40 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 41 | - Звірити поле тендера ${provider} title | |
| 42 | - | |
| 43 | -Відображення опису оголошеного тендера | |
| 44 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 45 | - Звірити поле тендера ${provider} description | |
| 46 | - | |
| 47 | -Відображення бюджету оголошеного тендера | |
| 48 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 49 | - Звірити поле тендера ${provider} value.amount | |
| 50 | - | |
| 51 | -Відображення procuringEntity.name оголошеного тендера | |
| 52 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 53 | - Звірити поле тендера ${provider} procuringEntity.name | |
| 54 | - | |
| 55 | -#Відображення початоку періоду уточнення оголошеного тендера | |
| 56 | -# [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 57 | -# Звірити поле тендера ${provider} enquiryPeriod.startDate | |
| 58 | - | |
| 59 | -Відображення закінчення періоду уточнення оголошеного тендера | |
| 60 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 61 | - Звірити дату ${provider} enquiryPeriod.endDate | |
| 62 | - | |
| 63 | -Відображення початоку періоду прийому пропозицій оголошеного тендера | |
| 64 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 65 | - Звірити дату ${provider} tenderPeriod.startDate | |
| 66 | - | |
| 67 | -Відображення закінчення періоду прийому пропозицій оголошеного тендера | |
| 68 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 69 | - Звірити дату ${provider} tenderPeriod.endDate | |
| 70 | - | |
| 71 | -Відображення мінімального кроку оголошеного тендера | |
| 72 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис основних даних оголошеного тендера | |
| 73 | - Звірити поле тендера ${provider} minimalStep.amount | |
| 74 | - | |
| 75 | -Відображення опису позицій закупівлі однопредметного тендера | |
| 76 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 77 | - Звірити поле тендера ${provider} items[${item_id}].description | |
| 78 | - | |
| 79 | -Відображення дати доставки позицій закупівлі однопредметного тендера | |
| 80 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 81 | - Звірити дату ${provider} items[${item_id}].deliveryDate.endDate | |
| 82 | - | |
| 83 | -Відображення координат широти доставки позицій закупівлі однопредметного тендера | |
| 84 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 85 | - Звірити поле тендера ${provider} items[${item_id}].deliveryLocation.latitude | |
| 86 | - | |
| 87 | -Відображення координат довготи доставки позицій закупівлі однопредметного тендера | |
| 88 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 89 | - Звірити поле тендера ${provider} items[${item_id}].deliveryLocation.longitude | |
| 90 | - | |
| 91 | -Відображення назви нас. пункту доставки позицій закупівлі однопредметного тендера | |
| 92 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 93 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.countryName | |
| 94 | - | |
| 95 | -Відображення пошт коду доставки позицій закупівлі однопредметного тендера | |
| 96 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 97 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.postalCode | |
| 98 | - | |
| 99 | -Відображення регіону доставки позицій закупівлі однопредметного тендера | |
| 100 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 101 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.region | |
| 102 | - | |
| 103 | -Відображення locality адреси доставки позицій закупівлі однопредметного тендера | |
| 104 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 105 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.locality | |
| 106 | - | |
| 107 | -Відображення вулиці доставки позицій закупівлі однопредметного тендера | |
| 108 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 109 | - Звірити поле тендера ${provider} items[${item_id}].deliveryAddress.streetAddress | |
| 110 | - | |
| 111 | -Відображення схеми класифікації позицій закупівлі однопредметного тендера | |
| 112 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 113 | - Звірити поле тендера ${provider} items[${item_id}].classification.scheme | |
| 114 | - | |
| 115 | -Відображення ідентифйікатора класифікації позицій закупівлі однопредметного тендера | |
| 116 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 117 | - Звірити поле тендера ${provider} items[${item_id}].classification.id | |
| 118 | - | |
| 119 | -Відображення опису класифікації позицій закупівлі однопредметного тендера | |
| 120 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 121 | - Звірити поле тендера ${provider} items[${item_id}].classification.description | |
| 122 | - | |
| 123 | -Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера | |
| 124 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 125 | - Звірити поле тендера ${provider} items[${item_id}].additionalClassifications.scheme | |
| 126 | - | |
| 127 | -Відображення ідентифікатора додаткової класифікації позицій закупівлі однопредметного тендера | |
| 128 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 129 | - Звірити поле тендера ${provider} items[${item_id}].additionalClassifications.id | |
| 130 | - | |
| 131 | -Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера | |
| 132 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 133 | - Звірити поле тендера ${provider} items[${item_id}].additionalClassifications.description | |
| 134 | - | |
| 135 | -Відображення назви одиниці позицій закупівлі однопредметного тендера | |
| 136 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 137 | - Звірити поле тендера ${provider} items[${item_id}].unit.name | |
| 138 | - | |
| 139 | -Відображення коду одиниці позицій закупівлі однопредметного тендера | |
| 140 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 141 | - Звірити поле тендера ${provider} items[${item_id}].unit.code | |
| 142 | - | |
| 143 | -Відображення кількості позицій закупівлі однопредметного тендера | |
| 144 | - [Tags] Owner_Tests ${USERS.users['${tender_owner}'].broker}: Запис полів пердметів однопредметного тендера | |
| 145 | - Звірити поле тендера ${provider} items[${item_id}].quantity | |
| 146 | - | |
| 147 | - |
| ... | ... | @@ -3,18 +3,8 @@ Library Selenium2Screenshots |
| 3 | 3 | Library String |
| 4 | 4 | Library DateTime |
| 5 | 5 | |
| 6 | - | |
| 7 | 6 | *** Variables *** |
| 8 | 7 | ${locator.tenderId} jquery=h3 |
| 9 | -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)> | |
| 10 | -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)> | |
| 11 | -${locator.minimalStep.amount} jquery=tender-subject-info>div.row:contains("Мінімальний крок аукціону, грн.:")>:eq(1)> | |
| 12 | -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)> | |
| 13 | -${locator.value.amount} jquery=tender-subject-info>div.row:contains("Повний доступний бюджет закупівлі, грн.:")>:eq(1)> | |
| 14 | -${locator.tenderPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок прийому пропозицій:")>:eq(1)> | |
| 15 | -${locator.tenderPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення прийому пропозицій:")>:eq(1)> | |
| 16 | -${locator.enquiryPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок періоду уточнень:")>:eq(1)> | |
| 17 | -${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення періоду уточнень:")>:eq(1)> | |
| 18 | 8 | |
| 19 | 9 | *** Keywords *** |
| 20 | 10 | Підготувати дані для оголошення тендера |
| ... | ... | @@ -32,6 +22,7 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai |
| 32 | 22 | # login |
| 33 | 23 | Wait Until Page Contains Element id=inputUsername 100 |
| 34 | 24 | Input text id=inputUsername ${USERS.users['${username}'].login} |
| 25 | + Wait Until Page Contains Element id=inputPassword 100 | |
| 35 | 26 | Input text id=inputPassword ${USERS.users['${username}'].password} |
| 36 | 27 | Click Button id=btn_submit |
| 37 | 28 | |
| ... | ... | @@ -78,43 +69,41 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai |
| 78 | 69 | Input text id=minimalStep ${step_rate} |
| 79 | 70 | Input text id=itemsDescription ${items_description} |
| 80 | 71 | Input text id=itemsQuantity ${quantity} |
| 72 | + Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] 100 | |
| 81 | 73 | Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram'] |
| 82 | 74 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date} |
| 83 | 75 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.enquiryPeriod.endDate'] ${enquiry_end_time} |
| 84 | - | |
| 85 | 76 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='startDate'] ${start_date} |
| 86 | 77 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.startDate'] ${start_time} |
| 87 | 78 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='endDate'] ${end_date} |
| 88 | 79 | Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.endDate'] ${end_time} |
| 89 | - | |
| 90 | 80 | Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#classification'] |
| 91 | - Wait Until Page Contains Оберіть класифікатор CPV 100 | |
| 92 | - Input text xpath=//div[contains(@class, 'modal-content')]//input[@ng-model='searchstring'] ${cpv} | |
| 93 | - Wait Until Page Contains Картонки 100 | |
| 94 | - Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-table-rowselected ng-scope ng-table')]//tr[1]//td[1] | |
| 95 | - Wait Until Page Contains 44617100-9 Картонки 100 | |
| 81 | + Wait Until Element Is Visible xpath=//div[contains(@role,'dialog')] | |
| 82 | + Input text xpath=//div[contains(@class, 'modal-content')]//input[@ng-model='searchstring'] ${cpv} | |
| 83 | + Wait Until Page Contains ${cpv} | |
| 84 | + Click Element xpath=//td[contains(., '${cpv}')] | |
| 96 | 85 | Click Element xpath=//div[contains(@class, 'modal-content')]//button[@ng-click='choose()'] |
| 97 | - | |
| 98 | 86 | Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'] |
| 99 | - Wait Until Page Contains Класифікатор ДКПП 100 | |
| 87 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
| 100 | 88 | Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc} |
| 101 | - Wait Until Page Contains ${dkpp_id} 100 | |
| 102 | - Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-table-rowselected ng-scope ng-table')]//tr[2]//td[1] | |
| 103 | - Wait Until Page Contains 17.21.1 "Папір і картон гофровані, паперова й картонна тара" 100 | |
| 89 | + Wait Until Page Contains ${dkpp_id} | |
| 90 | + Click Element xpath=//td[contains(., '${dkpp_id}')] | |
| 104 | 91 | Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] |
| 92 | + Run Keyword if '${mode}' == 'multi' Додати предмет items | |
| 93 | + Wait Until Page Contains Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | |
| 105 | 94 | Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] |
| 106 | 95 | Wait Until Page Contains [ТЕСТУВАННЯ] 100 |
| 107 | 96 | Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a |
| 108 | 97 | ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid |
| 109 | 98 | ### harcode Idis bacause issues on the E-tender side, to remove, 1 line: |
| 110 | - ${tender_UAid}= Convert To String UA-2015-06-30-000012 | |
| 111 | - ${Ids} Create List ${tender_UAid} | |
| 99 | + ${tender_UAid}= Convert To String UA-2015-08-03-000025 | |
| 100 | + ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${tender_UAid} | |
| 101 | + ${Ids} Create List ${tender_UAid} ${id} | |
| 112 | 102 | [return] ${Ids} |
| 113 | 103 | |
| 114 | 104 | get tender UAid |
| 115 | 105 | ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")] |
| 116 | 106 | ${tender_UAid}= Get Substring ${tender_UAid} 7 27 |
| 117 | - [return] ${tender_UAid} | |
| 118 | 107 | |
| 119 | 108 | Oтримати internal id по UAid |
| 120 | 109 | [Arguments] @{ARGUMENTS} |
| ... | ... | @@ -124,10 +113,49 @@ Oтримати internal id по UAid |
| 124 | 113 | etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
| 125 | 114 | ${current_location}= Get Location |
| 126 | 115 | ${tender_id}= Fetch From Right ${current_location} / |
| 127 | -### harcode Idis bacause issues on the E-tender side, to remove, 1 line: | |
| 116 | +## harcode Idis bacause issues on the E-tender side, to remove, 1 line: | |
| 128 | 117 | ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2 |
| 129 | - log ${internal_id} | |
| 130 | - [return] ${internal_id} | |
| 118 | + log ${tender_id} | |
| 119 | + [return] ${tender_id} | |
| 120 | + | |
| 121 | +Додати предмет | |
| 122 | + [Arguments] @{ARGUMENTS} | |
| 123 | + [Documentation] | |
| 124 | + ... ${ARGUMENTS[0]} == items | |
| 125 | + ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description | |
| 126 | + ${dkpp_id1}= Get From Dictionary ${items[1].additionalClassifications[0]} id | |
| 127 | + ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description | |
| 128 | + ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id | |
| 129 | + ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description | |
| 130 | + ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id | |
| 131 | + | |
| 132 | + Wait Until Page Contains Element xpath=.//*[@id='myform']/tender-form/div/button 100 | |
| 133 | + Click Element xpath=.//*[@id='myform']/tender-form/div/button | |
| 134 | + Sleep 2 | |
| 135 | + Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[2] | |
| 136 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
| 137 | + Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc1} | |
| 138 | + Wait Until Page Contains ${dkpp_id1} | |
| 139 | + Click Element xpath=//td[contains(., '${dkpp_id1}')] | |
| 140 | + Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | |
| 141 | + Sleep 2 | |
| 142 | + Click Element xpath=.//*[@id='myform']/tender-form/div/button | |
| 143 | + Sleep 2 | |
| 144 | + Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[3] | |
| 145 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
| 146 | + Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc2} | |
| 147 | + Wait Until Page Contains ${dkpp_id2} | |
| 148 | + Click Element xpath=//td[contains(., '${dkpp_id2}')] | |
| 149 | + Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | |
| 150 | + Sleep 2 | |
| 151 | + Click Element xpath=.//*[@id='myform']/tender-form/div/button | |
| 152 | + Sleep 2 | |
| 153 | + Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[4] | |
| 154 | + Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')] | |
| 155 | + Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc3} | |
| 156 | + Wait Until Page Contains ${dkpp_id3} | |
| 157 | + Click Element xpath=//td[contains(., '${dkpp_id3}')] | |
| 158 | + Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()'] | |
| 131 | 159 | |
| 132 | 160 | Пошук тендера по ідентифікатору |
| 133 | 161 | [Arguments] @{ARGUMENTS} |
| ... | ... | @@ -136,17 +164,68 @@ Oтримати internal id по UAid |
| 136 | 164 | ... ${ARGUMENTS[1]} == tenderId |
| 137 | 165 | |
| 138 | 166 | Switch browser ${ARGUMENTS[0]} |
| 139 | - Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} | |
| 167 | + Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} | |
| 140 | 168 | Wait Until Page Contains Список закупівель 10 |
| 141 | - sleep 1 | |
| 142 | - Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]} | |
| 143 | - Click Link jquery=a[ng-click='search()'] | |
| 144 | - sleep 2 | |
| 169 | + sleep 1 | |
| 170 | + Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]} | |
| 171 | + Click Link jquery=a[ng-click='search()'] | |
| 172 | + sleep 2 | |
| 145 | 173 | Click Link jquery=a[href^="#/tenderDetailes"] |
| 146 | 174 | Wait Until Page Contains ${ARGUMENTS[1]} 10 |
| 147 | 175 | sleep 1 |
| 148 | 176 | Capture Page Screenshot |
| 149 | 177 | |
| 178 | + Подати цінову пропозицію | |
| 179 | + [Arguments] @{ARGUMENTS} | |
| 180 | + [Documentation] | |
| 181 | + ... ${ARGUMENTS[0]} == username | |
| 182 | + ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID} | |
| 183 | + ... ${ARGUMENTS[2]} == test_bid_data | |
| 184 | + | |
| 185 | + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount | |
| 186 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
| 187 | + Wait Until Page Contains Інформація про процедуру закупівлі 100 | |
| 188 | + Wait Until Page Contains Element id=amount 10 | |
| 189 | + Input text id=amount ${bid} | |
| 190 | + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції'] | |
| 191 | + | |
| 192 | +Задати питання | |
| 193 | + [Arguments] @{ARGUMENTS} | |
| 194 | + [Documentation] | |
| 195 | + ... ${ARGUMENTS[0]} = username | |
| 196 | + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | |
| 197 | + ... ${ARGUMENTS[2]} = question_data | |
| 198 | + | |
| 199 | + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | |
| 200 | + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | |
| 201 | + | |
| 202 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
| 203 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | |
| 204 | + | |
| 205 | + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100 | |
| 206 | + Click Element jquery=a[href^="#/addQuestion/"] | |
| 207 | + Wait Until Page Contains Element id=title | |
| 208 | + Input text id=title ${title} | |
| 209 | + Input text id=description ${description} | |
| 210 | + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | |
| 211 | + | |
| 212 | +Відповісти на питання | |
| 213 | + [Arguments] @{ARGUMENTS} | |
| 214 | + [Documentation] | |
| 215 | + ... ${ARGUMENTS[0]} = username | |
| 216 | + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | |
| 217 | + ... ${ARGUMENTS[2]} = 0 | |
| 218 | + ... ${ARGUMENTS[3]} = answer_data | |
| 219 | + | |
| 220 | + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | |
| 221 | + | |
| 222 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
| 223 | + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | |
| 224 | + | |
| 225 | + Click Element xpath=//div[div/pre[1]]/div[1] | |
| 226 | + Input text xpath=//div[textarea]/textarea ${answer} | |
| 227 | + Click Element xpath=//div[textarea]/span/button[1] | |
| 228 | + | |
| 150 | 229 | обновити сторінку з тендером |
| 151 | 230 | [Arguments] @{ARGUMENTS} |
| 152 | 231 | [Documentation] |
| ... | ... | @@ -281,54 +360,3 @@ Oтримати internal id по UAid |
| 281 | 360 | відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last> |
| 282 | 361 | ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last> |
| 283 | 362 | [return] ${return_value} |
| 284 | - | |
| 285 | -Подати цінову пропозицію | |
| 286 | - [Arguments] @{ARGUMENTS} | |
| 287 | - [Documentation] | |
| 288 | - ... ${ARGUMENTS[0]} == username | |
| 289 | - ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID} | |
| 290 | - ... ${ARGUMENTS[2]} == test_bid_data | |
| 291 | - | |
| 292 | - ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount | |
| 293 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
| 294 | - Wait Until Page Contains Інформація про процедуру закупівлі 100 | |
| 295 | - Wait Until Page Contains Element id=amount 10 | |
| 296 | - Input text id=amount ${bid} | |
| 297 | - Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції'] | |
| 298 | - | |
| 299 | -Задати питання | |
| 300 | - [Arguments] @{ARGUMENTS} | |
| 301 | - [Documentation] | |
| 302 | - ... ${ARGUMENTS[0]} = username | |
| 303 | - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | |
| 304 | - ... ${ARGUMENTS[2]} = question_data | |
| 305 | - | |
| 306 | - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | |
| 307 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | |
| 308 | - | |
| 309 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
| 310 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | |
| 311 | - | |
| 312 | - Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100 | |
| 313 | - Click Element jquery=a[href^="#/addQuestion/"] | |
| 314 | - Wait Until Page Contains Element id=title | |
| 315 | - Input text id=title ${title} | |
| 316 | - Input text id=description ${description} | |
| 317 | - Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit'] | |
| 318 | - | |
| 319 | -Відповісти на питання | |
| 320 | - [Arguments] @{ARGUMENTS} | |
| 321 | - [Documentation] | |
| 322 | - ... ${ARGUMENTS[0]} = username | |
| 323 | - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID} | |
| 324 | - ... ${ARGUMENTS[2]} = 0 | |
| 325 | - ... ${ARGUMENTS[3]} = answer_data | |
| 326 | - | |
| 327 | - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | |
| 328 | - | |
| 329 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
| 330 | - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID} | |
| 331 | - | |
| 332 | - Click Element xpath=//div[div/pre[1]]/div[1] | |
| 333 | - Input text xpath=//div[textarea]/textarea ${answer} | |
| 334 | - Click Element xpath=//div[textarea]/span/button[1] | ... | ... |
| ... | ... | @@ -5,25 +5,170 @@ Library DateTime |
| 5 | 5 | |
| 6 | 6 | *** Variables *** |
| 7 | 7 | ${locator.tenderId} jquery=h3 |
| 8 | -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)> | |
| 9 | -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)> | |
| 10 | -${locator.minimalStep.amount} jquery=tender-subject-info>div.row:contains("Мінімальний крок аукціону, грн.:")>:eq(1)> | |
| 11 | -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)> | |
| 12 | -${locator.value.amount} jquery=tender-subject-info>div.row:contains("Повний доступний бюджет закупівлі, грн.:")>:eq(1)> | |
| 13 | -${locator.tenderPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок прийому пропозицій:")>:eq(1)> | |
| 14 | -${locator.tenderPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення прийому пропозицій:")>:eq(1)> | |
| 15 | -${locator.enquiryPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок періоду уточнень:")>:eq(1)> | |
| 16 | -${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення періоду уточнень:")>:eq(1)> | |
| 17 | - | |
| 18 | 8 | |
| 19 | 9 | *** Keywords *** |
| 20 | 10 | Підготувати клієнт для користувача |
| 21 | - [Arguments] ${username} | |
| 11 | + [Arguments] @{ARGUMENTS} | |
| 22 | 12 | [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо |
| 23 | - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${username} | |
| 24 | - Set Window Position @{USERS.users['${username}'].position} | |
| 25 | - Set Window Size @{USERS.users['${username}'].size} | |
| 26 | - Log Variables | |
| 13 | + ... ${ARGUMENTS[0]} == username | |
| 14 | + Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]} | |
| 15 | + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | |
| 16 | + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | |
| 17 | + | |
| 18 | +# login | |
| 19 | + Wait Until Page Contains Element name=siteLogin 100 | |
| 20 | + Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login} | |
| 21 | + Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password} | |
| 22 | + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | |
| 23 | + | |
| 24 | + Wait Until Page Contains Element jquery=a[href="/cabinet"] | |
| 25 | + Click Element jquery=a[href="/cabinet"] | |
| 26 | + Wait Until Page Contains Element name=email 100 | |
| 27 | + Input text name=email mail | |
| 28 | + Sleep 1 | |
| 29 | + Input text name=email ${USERS.users['${username}'].login} | |
| 30 | + Sleep 2 | |
| 31 | + Input text name=psw ${USERS.users['${username}'].password} | |
| 32 | + Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100 | |
| 33 | + Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] | |
| 34 | + | |
| 35 | +Створити тендер | |
| 36 | + [Arguments] @{ARGUMENTS} | |
| 37 | + [Documentation] | |
| 38 | + ... ${ARGUMENTS[0]} == username | |
| 39 | + ... ${ARGUMENTS[1]} == tender_data | |
| 40 | + | |
| 41 | + ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | |
| 42 | + ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | |
| 43 | + ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | |
| 44 | + ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | |
| 45 | + ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | |
| 46 | + ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description | |
| 47 | + ${quantity}= Get From Dictionary ${items[0]} quantity | |
| 48 | + ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName | |
| 49 | + ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate | |
| 50 | + ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} | |
| 51 | + ${cpv}= Get From Dictionary ${items[0].classification} description_ua | |
| 52 | + ${cpv_id}= Get From Dictionary ${items[0].classification} id | |
| 53 | + ${cpv_id1}= Replace String ${cpv_id} - _ | |
| 54 | + ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | |
| 55 | + ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | |
| 56 | + ${dkpp_id1}= Replace String ${dkpp_id} - _ | |
| 57 | + ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | |
| 58 | + ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} | |
| 59 | + ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | |
| 60 | + ${end_date}= convert_date_to_slash_format ${end_date} | |
| 61 | + | |
| 62 | + Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
| 63 | + Wait Until Page Contains Element jquery=a[href="/tenders/new"] 100 | |
| 64 | + Click Element jquery=a[href="/tenders/new"] | |
| 65 | + Wait Until Page Contains Element name=tender_title 100 | |
| 66 | + Input text name=tender_title ${title} | |
| 67 | + Input text name=tender_description ${description} | |
| 68 | + Input text name=tender_value_amount ${budget} | |
| 69 | + Input text name=tender_minimalStep_amount ${step_rate} | |
| 70 | + Input text name=items[0][item_description] ${items_description} | |
| 71 | + Input text name=items[0][item_quantity] ${quantity} | |
| 72 | + Input text name=items[0][item_deliveryAddress_countryName] ${countryName} | |
| 73 | + Input text name=items[0][item_deliveryDate_endDate] ${delivery_end_date} | |
| 74 | + Click Element xpath=//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'] | |
| 75 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
| 76 | + Input text id=search ${cpv} | |
| 77 | + Wait Until Page Contains ${cpv_id} | |
| 78 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
| 79 | + Click Element xpath=.//*[@id='select'] | |
| 80 | + Unselect Frame | |
| 81 | + Click Element xpath=//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'] | |
| 82 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
| 83 | + Input text id=search ${dkpp_desc} | |
| 84 | + Wait Until Page Contains ${dkpp_id} | |
| 85 | + Click Element xpath=//a[contains(@id,'${dkpp_id1}')] | |
| 86 | + Click Element xpath=.//*[@id='select'] | |
| 87 | + Unselect Frame | |
| 88 | + Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} | |
| 89 | + Input text name=tender_tenderPeriod_endDate ${end_date} | |
| 90 | + Run Keyword if '${mode}' == 'multi' Додати предмет items | |
| 91 | + Wait Until Page Contains Element name=do 100 | |
| 92 | + Click Element name=do | |
| 93 | + Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100 | |
| 94 | + Click Element xpath=//a[contains(@class, 'button pubBtn')] | |
| 95 | + Wait Until Page Contains Тендер опубліковано 100 | |
| 96 | + ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2] | |
| 97 | + ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2] | |
| 98 | + ${Ids} Create List ${tender_UAid} ${id} | |
| 99 | + [return] ${Ids} | |
| 100 | + | |
| 101 | +Додати предмет | |
| 102 | + [Arguments] @{ARGUMENTS} | |
| 103 | + [Documentation] | |
| 104 | + ... ${ARGUMENTS[0]} == items | |
| 105 | + ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description | |
| 106 | + ${dkpp_id11}= Get From Dictionary ${items[1].additionalClassifications[0]} id | |
| 107 | + ${dkpp_1id}= Replace String ${dkpp_id11} - _ | |
| 108 | + ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description | |
| 109 | + ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id | |
| 110 | + ${dkpp_id2_1}= Replace String ${dkpp_id2} - _ | |
| 111 | + ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description | |
| 112 | + ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id | |
| 113 | + ${dkpp_id3_1}= Replace String ${dkpp_id3} - _ | |
| 114 | + | |
| 115 | + Wait Until Page Contains Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
| 116 | + Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
| 117 | + Wait Until Page Contains Element name=items[1][item_description] 100 | |
| 118 | + Input text name=items[1][item_description] ${description} | |
| 119 | + Input text name=items[1][item_quantity] ${quantity} | |
| 120 | + Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[2] | |
| 121 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
| 122 | + Input text id=search ${cpv} | |
| 123 | + Wait Until Page Contains ${cpv_id} | |
| 124 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
| 125 | + Click Element xpath=.//*[@id='select'] | |
| 126 | + Unselect Frame | |
| 127 | + Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[2] | |
| 128 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
| 129 | + Input text id=search ${dkpp_desc1} | |
| 130 | + Wait Until Page Contains ${dkpp_id11} | |
| 131 | + Click Element xpath=//a[contains(@id,'${dkpp_1id}')] | |
| 132 | + Click Element xpath=.//*[@id='select'] | |
| 133 | + Unselect Frame | |
| 134 | + Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
| 135 | + Wait Until Page Contains Element name=items[2][item_description] 100 | |
| 136 | + Input text name=items[2][item_description] ${description} | |
| 137 | + Input text name=items[2][item_quantity] ${quantity} | |
| 138 | + Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[3] | |
| 139 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
| 140 | + Input text id=search ${cpv} | |
| 141 | + Wait Until Page Contains ${cpv_id} | |
| 142 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
| 143 | + Click Element xpath=.//*[@id='select'] | |
| 144 | + Unselect Frame | |
| 145 | + Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[3] | |
| 146 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
| 147 | + Input text id=search ${dkpp_desc2} | |
| 148 | + Wait Until Page Contains ${dkpp_id2} | |
| 149 | + Click Element xpath=//a[contains(@id,'${dkpp_id2_1}')] | |
| 150 | + Click Element xpath=.//*[@id='select'] | |
| 151 | + Unselect Frame | |
| 152 | + Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | |
| 153 | + Wait Until Page Contains Element name=items[3][item_description] 100 | |
| 154 | + Input text name=items[3][item_description] ${description} | |
| 155 | + Input text name=items[3][item_quantity] ${quantity} | |
| 156 | + Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[4] | |
| 157 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | |
| 158 | + Input text id=search ${cpv} | |
| 159 | + Wait Until Page Contains ${cpv_id} | |
| 160 | + Click Element xpath=//a[contains(@id,'${cpv_id1}')] | |
| 161 | + Click Element xpath=.//*[@id='select'] | |
| 162 | + Unselect Frame | |
| 163 | + Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[4] | |
| 164 | + Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | |
| 165 | + Input text id=search ${dkpp_desc3} | |
| 166 | + Wait Until Page Contains ${dkpp_id3} | |
| 167 | + Click Element xpath=//a[contains(@id,'${dkpp_id3_1}')] | |
| 168 | + Click Element xpath=.//*[@id='select'] | |
| 169 | + Unselect Frame | |
| 170 | + Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} | |
| 171 | + Input text name=tender_tenderPeriod_endDate ${end_date} | |
| 27 | 172 | |
| 28 | 173 | Пошук тендера по ідентифікатору |
| 29 | 174 | [Arguments] @{ARGUMENTS} | ... | ... |
| ... | ... | @@ -149,13 +149,13 @@ ${question_id} 0 |
| 149 | 149 | Set_To_Object ${TENDER_DATA.data} items ${items} |
| 150 | 150 | ${TENDER_DATA}= set_access_key ${TENDER_DATA} ${USERS.users['${ARGUMENTS[0]}'].access_token} |
| 151 | 151 | ${TENDER_DATA}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_tender ${TENDER_DATA} |
| 152 | - | |
| 152 | + | |
| 153 | 153 | |
| 154 | 154 | Задати питання |
| 155 | 155 | [Documentation] |
| 156 | 156 | ... ${ARGUMENTS[0]} == username |
| 157 | 157 | ... ${ARGUMENTS[1]} == tender_uid |
| 158 | - ... ${ARGUMENTS[2]} == bid | |
| 158 | + ... ${ARGUMENTS[2]} == question | |
| 159 | 159 | [Arguments] @{ARGUMENTS} |
| 160 | 160 | log many @{ARGUMENTS} |
| 161 | 161 | ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
| ... | ... | @@ -163,7 +163,7 @@ ${question_id} 0 |
| 163 | 163 | log ${USERS.users['${ARGUMENTS[0]}']} |
| 164 | 164 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_question ${tender} ${ARGUMENTS[2]} |
| 165 | 165 | [return] ${biddingresponce} |
| 166 | - | |
| 166 | + | |
| 167 | 167 | Відповісти на питання |
| 168 | 168 | [Documentation] |
| 169 | 169 | ... ${ARGUMENTS[0]} == username |
| ... | ... | @@ -192,7 +192,7 @@ ${question_id} 0 |
| 192 | 192 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} |
| 193 | 193 | ${complaint}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} _create_tender_resource_item ${tender} ${ARGUMENTS[2]} complaints |
| 194 | 194 | Log object data ${complaint} complaint |
| 195 | - | |
| 195 | + | |
| 196 | 196 | порівняти скаргу |
| 197 | 197 | [Documentation] |
| 198 | 198 | ... ${ARGUMENTS[0]} == username |
| ... | ... | @@ -209,7 +209,7 @@ ${question_id} 0 |
| 209 | 209 | #:FOR ${element} IN ${ARGUMENTS[2].data} |
| 210 | 210 | #\ log ${element} |
| 211 | 211 | #\ Dictionary Should Contain Value ${complaint} ${element} |
| 212 | - | |
| 212 | + | |
| 213 | 213 | Обробити скаргу |
| 214 | 214 | [Documentation] |
| 215 | 215 | ... ${ARGUMENTS[0]} == username |
| ... | ... | @@ -238,7 +238,7 @@ ${question_id} 0 |
| 238 | 238 | log ${tender}отримати |
| 239 | 239 | ${biddingresponce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_bid ${tender} ${ARGUMENTS[2]} |
| 240 | 240 | [return] ${biddingresponce} |
| 241 | - | |
| 241 | + | |
| 242 | 242 | Змінити цінову пропозицію |
| 243 | 243 | [Documentation] |
| 244 | 244 | ... ${ARGUMENTS[0]} == username |
| ... | ... | @@ -264,7 +264,7 @@ ${question_id} 0 |
| 264 | 264 | ${changed_bid}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_bid ${tender} ${ARGUMENTS[2]} |
| 265 | 265 | Log ${changed_bid} |
| 266 | 266 | [return] ${changed_bid} |
| 267 | - | |
| 267 | + | |
| 268 | 268 | Прийняти цінову пропозицію |
| 269 | 269 | [Documentation] |
| 270 | 270 | ... ${ARGUMENTS[0]} == username |
| ... | ... | @@ -286,14 +286,20 @@ ${question_id} 0 |
| 286 | 286 | [Arguments] @{ARGUMENTS} |
| 287 | 287 | log ${ARGUMENTS[0]} |
| 288 | 288 | log ${ARGUMENTS[1]} |
| 289 | + | |
| 290 | + # Built-in variables related to the operating system ease making the test data operating-system-agnostic. | |
| 291 | + log ${TEMPDIR} # An absolute path to the directory where the test data file is located. This variable is case-sensitive. | |
| 292 | + log ${CURDIR} # An absolute path to the system temporary directory. In UNIX-like systems this is typically /tmp, and in Windows c:\Documents and Settings\<user>\Local Settings\Temp. | |
| 293 | + | |
| 294 | + ${filecontent} = Set Variable somestring | |
| 295 | + ${created_file_path}= create_file ${filecontent} | |
| 289 | 296 | ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id} |
| 290 | 297 | ${tender}= set_access_key ${tender} ${ARGUMENTS[1]} |
| 291 | - ${filename}= Set Variable file.txt | |
| 292 | - Set_To_Object ${TENDER_DATA.data} documents.title ${filename} | |
| 293 | - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${filename} ${tender} ${ARGUMENTS[2]} | |
| 294 | - Log object data ${reply} reply | |
| 295 | - [return] ${reply} | |
| 296 | - | |
| 298 | + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${created_file_path} ${tender} ${ARGUMENTS[2]} | |
| 299 | + ${uploaded_file} = Create Dictionary filepath ${created_file_path} filecontent ${filecontent} upload_responce ${responce} | |
| 300 | + Log object data ${uploaded_file} | |
| 301 | + [return] ${uploaded_file} | |
| 302 | + | |
| 297 | 303 | Змінити документ в ставці |
| 298 | 304 | [Documentation] |
| 299 | 305 | ... ${ARGUMENTS[0]} == username |
| ... | ... | @@ -310,7 +316,7 @@ ${question_id} 0 |
| 310 | 316 | ${filename}= Set Variable newfile.txt |
| 311 | 317 | Set_To_Object ${TENDER_DATA.data} documents.title ${filename} |
| 312 | 318 | ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${filename} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} |
| 313 | - Log object data ${reply} replyотримати | |
| 319 | + Log object data ${reply} reply | |
| 314 | 320 | |
| 315 | 321 | Завантажити документ |
| 316 | 322 | [Documentation] |
| ... | ... | @@ -327,4 +333,33 @@ ${question_id} 0 |
| 327 | 333 | Set_To_Object ${TENDER_DATA.data} documents.title ${filename} |
| 328 | 334 | ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_tender_document ${filename} ${tender} |
| 329 | 335 | Log object data ${reply} reply |
| 330 | - | |
| \ No newline at end of file | ||
| 336 | + | |
| 337 | +Отримати пропозиції | |
| 338 | + [Documentation] | |
| 339 | + ... ${ARGUMENTS[0]} == username | |
| 340 | + ... ${ARGUMENTS[1]} == tender_uid | |
| 341 | + ... ${ARGUMENTS[2]} == bid_id | |
| 342 | + ... ${ARGUMENTS[3]} == token | |
| 343 | + [Arguments] @{ARGUMENTS} | |
| 344 | + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
| 345 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} | |
| 346 | + ${bids}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_bid ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | |
| 347 | + Log ${bids} | |
| 348 | + [return] ${bids} | |
| 349 | + | |
| 350 | +отримати документ | |
| 351 | + [Documentation] | |
| 352 | + ... ${ARGUMENTS[0]} == username | |
| 353 | + ... ${ARGUMENTS[1]} == tenderUaID | |
| 354 | + ... ${ARGUMENTS[2]} == url | |
| 355 | + ... ${ARGUMENTS[3]} == token | |
| 356 | + [Arguments] @{ARGUMENTS} | |
| 357 | + log ${ARGUMENTS[0]} | |
| 358 | + log ${ARGUMENTS[1]} | |
| 359 | + log ${ARGUMENTS[2]} | |
| 360 | + ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
| 361 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} | |
| 362 | + ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} | |
| 363 | + log ${contents} | |
| 364 | + log ${filename} | |
| 365 | + [return] ${contents} ${filename} | |
| \ No newline at end of file | ... | ... |
| ... | ... | @@ -24,8 +24,18 @@ Publicbid: |
| 24 | 24 | period_interval: 2 |
| 25 | 25 | Netcast: |
| 26 | 26 | keywords_file: netcast |
| 27 | - url: http://dz2.byustudio.in.ua | |
| 27 | + url: "http://dz2.byustudio.in.ua" | |
| 28 | + login: admin | |
| 29 | + password: uStudio | |
| 28 | 30 | timout_on_wait: 15 |
| 31 | + period_interval: 2 | |
| 32 | +Netcast: | |
| 33 | + keywords_file: netcast | |
| 34 | + url: "http://dz2.byustudio.in.ua" | |
| 35 | + login: admin | |
| 36 | + password: uStudio | |
| 37 | + timout_on_wait: 15 | |
| 38 | + period_interval: 2 | |
| 29 | 39 | Newtend: |
| 30 | 40 | keywords_file: newtend |
| 31 | 41 | url: http://openprocurement:test@dev23.newtend.com | ... | ... |
| ... | ... | @@ -19,7 +19,7 @@ users: |
| 19 | 19 | password: Password1 |
| 20 | 20 | browser: firefox |
| 21 | 21 | position: [0, 0] |
| 22 | - size: [640, 450] | |
| 22 | + size: [740, 550] | |
| 23 | 23 | E-tender_Provider1: |
| 24 | 24 | broker: E-tender |
| 25 | 25 | username: E-tendertest |
| ... | ... | @@ -83,6 +83,15 @@ users: |
| 83 | 83 | browser: firefox |
| 84 | 84 | position: [0, 0] |
| 85 | 85 | size: [640, 450] |
| 86 | + Netcast_Owner: | |
| 87 | + broker: Netcast | |
| 88 | + username: Netcasttest | |
| 89 | + homepage: "http://dz2.byustudio.in.ua" | |
| 90 | + login: ovramet.s@gmail.com | |
| 91 | + password: Password1 | |
| 92 | + browser: firefox | |
| 93 | + position: [0, 450] | |
| 94 | + size: [640, 450] | |
| 86 | 95 | Newtend_Provider1: |
| 87 | 96 | broker: Newtend |
| 88 | 97 | username: Newtendtest |
| ... | ... | @@ -90,8 +99,17 @@ users: |
| 90 | 99 | login: qtest@mailinator.com |
| 91 | 100 | password: 123123 |
| 92 | 101 | browser: firefox |
| 93 | - position: [700, 0] | |
| 94 | - size: [640, 450] | |
| 102 | + position: [0, 450] | |
| 103 | + size: [640, 450] | |
| 104 | + Publicbid_Owner: | |
| 105 | + broker: Publicbid | |
| 106 | + username: Publicbid | |
| 107 | + homepage: "https://public-bid.com.ua/test/" | |
| 108 | + login: yaroslav1boyko@gmail.com | |
| 109 | + password: Password1 | |
| 110 | + browser: firefox | |
| 111 | + position: [0, 0] | |
| 112 | + size: [740, 550] | |
| 95 | 113 | Newtend_Provider2: |
| 96 | 114 | broker: Newtend |
| 97 | 115 | username: Newtendtest | ... | ... |
| ... | ... | @@ -66,7 +66,7 @@ def test_tender_data(period_interval=2): |
| 66 | 66 | "scheme": u"CPV", |
| 67 | 67 | "id": u"44617100-9", |
| 68 | 68 | "description": u"Cartons", |
| 69 | - "description_ua": u"Картонки" | |
| 69 | + "description_ua": u"Картонки", | |
| 70 | 70 | }, |
| 71 | 71 | "additionalClassifications": [ |
| 72 | 72 | { |
| ... | ... | @@ -134,7 +134,7 @@ def prom_test_tender_data(): |
| 134 | 134 | { |
| 135 | 135 | "description": fake.catch_phrase(), |
| 136 | 136 | "deliveryDate": { |
| 137 | - "startDate": (now + timedelta(days=4)).isoformat(), | |
| 137 | + "startDate": (now + timedelta(days=4)).isoformat(), | |
| 138 | 138 | "endDate": (now + timedelta(days=5)).isoformat() |
| 139 | 139 | }, |
| 140 | 140 | "deliveryLocation": { |
| ... | ... | @@ -206,15 +206,15 @@ def test_tender_data_multiple_lots(period_interval=2): |
| 206 | 206 | "name": fake.name(), |
| 207 | 207 | "telephone": fake.phone_number() |
| 208 | 208 | } |
| 209 | - }, | |
| 210 | - "value": { | |
| 209 | + }, | |
| 210 | + "value": { | |
| 211 | 211 | "amount": 50000, |
| 212 | 212 | "currency": u"UAH" |
| 213 | 213 | }, |
| 214 | 214 | "minimalStep": { |
| 215 | - "amount": 100, | |
| 216 | - "currency": u"UAH" | |
| 217 | - }, | |
| 215 | + "amount": 100, | |
| 216 | + "currency": u"UAH" | |
| 217 | + }, | |
| 218 | 218 | "items": [ |
| 219 | 219 | { |
| 220 | 220 | "description": fake.catch_phrase(), |
| ... | ... | @@ -236,7 +236,7 @@ def test_tender_data_multiple_lots(period_interval=2): |
| 236 | 236 | "scheme": u"CPV", |
| 237 | 237 | "id": u"44617100-9", |
| 238 | 238 | "description": u"Cartons", |
| 239 | - "description_ua": u"Картонки" | |
| 239 | + "description_ua": u"Картонки", | |
| 240 | 240 | }, |
| 241 | 241 | "additionalClassifications": [ |
| 242 | 242 | { |
| ... | ... | @@ -358,12 +358,12 @@ def test_tender_data_multiple_lots(period_interval=2): |
| 358 | 358 | } |
| 359 | 359 | ], |
| 360 | 360 | "enquiryPeriod": { |
| 361 | - "startDate": (now).isoformat(), | |
| 362 | - "endDate": (now + timedelta(minutes=1)).isoformat() | |
| 361 | + "startDate": (now + timedelta(minutes=3)).isoformat(), | |
| 362 | + "endDate": (now + timedelta(minutes=4)).isoformat() | |
| 363 | 363 | }, |
| 364 | 364 | "tenderPeriod": { |
| 365 | - "startDate": (now + timedelta(minutes=2)).isoformat(), | |
| 366 | - "endDate": (now + timedelta(minutes=(2+period_interval))).isoformat() | |
| 365 | + "startDate": (now + timedelta(minutes=4)).isoformat(), | |
| 366 | + "endDate": (now + timedelta(minutes=(5+period_interval))).isoformat() | |
| 367 | 367 | } |
| 368 | 368 | } |
| 369 | 369 | |
| ... | ... | @@ -465,7 +465,7 @@ def test_bid_data(): |
| 465 | 465 | } |
| 466 | 466 | } |
| 467 | 467 | }) |
| 468 | - | |
| 468 | + | |
| 469 | 469 | def auction_bid(): |
| 470 | 470 | return munchify({ |
| 471 | 471 | "data": {"value": { | ... | ... |
| ... | ... | @@ -25,9 +25,9 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
| 25 | 25 | |
| 26 | 26 | Можливість оголосити багатопредметний тендер |
| 27 | 27 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 28 | - ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | |
| 29 | - ${TENDER_ID}= Get From List ${ids} 0 | |
| 30 | - ${INTERNAL_TENDER_ID}= Get From List ${ids} 1 | |
| 28 | + ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} | |
| 29 | + ${TENDER_ID}= Get From List ${ids} 0 | |
| 30 | + ${INTERNAL_TENDER_ID}= Get From List ${ids} 1 | |
| 31 | 31 | Set Global Variable ${INTERNAL_TENDER_ID} |
| 32 | 32 | Set Global Variable ${TENDER_ID} |
| 33 | 33 | ${LAST_MODIFICATION_DATE}= Get Current Date |
| ... | ... | @@ -36,12 +36,12 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
| 36 | 36 | Отримати багатопредметний тендер по ідентифікатору |
| 37 | 37 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 38 | 38 | Дочекатись синхронізації з майданчиком ${viewer} |
| 39 | - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID} | |
| 40 | - | |
| 39 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID} | |
| 40 | + | |
| 41 | 41 | Відображення опису позицій закупівлі багатопредметного тендера |
| 42 | 42 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 43 | 43 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} description |
| 44 | - | |
| 44 | + | |
| 45 | 45 | Відображення дати доставки позицій закупівлі багатопредметного тендера |
| 46 | 46 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 47 | 47 | Звірити дату предметів закупівлі багатопредметного тендера ${viewer} deliveryDate.endDate |
| ... | ... | @@ -49,11 +49,11 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
| 49 | 49 | Відображення координат широти доставки позицій закупівлі багатопредметного тендера |
| 50 | 50 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 51 | 51 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.latitude |
| 52 | - | |
| 52 | + | |
| 53 | 53 | Відображення координат довготи доставки позицій закупівлі багатопредметного тендера |
| 54 | 54 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 55 | 55 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.longitude |
| 56 | - | |
| 56 | + | |
| 57 | 57 | Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера |
| 58 | 58 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 59 | 59 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.countryName |
| ... | ... | @@ -61,53 +61,53 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] |
| 61 | 61 | Відображення пошт коду доставки позицій закупівлі багатопредметного тендера |
| 62 | 62 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 63 | 63 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.postalCode |
| 64 | - | |
| 64 | + | |
| 65 | 65 | Відображення регіону доставки позицій закупівлі багатопредметного тендера |
| 66 | 66 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 67 | 67 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.region |
| 68 | - | |
| 68 | + | |
| 69 | 69 | Відображення locality адреси доставки позицій закупівлі багатопредметного тендера |
| 70 | 70 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 71 | 71 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.locality |
| 72 | - | |
| 72 | + | |
| 73 | 73 | Відображення вулиці доставки позицій закупівлі багатопредметного тендера |
| 74 | 74 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 75 | 75 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.streetAddress |
| 76 | - | |
| 76 | + | |
| 77 | 77 | Відображення схеми класифікації позицій закупівлі багатопредметного тендера |
| 78 | 78 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 79 | 79 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.scheme |
| 80 | - | |
| 80 | + | |
| 81 | 81 | Відображення ідентифйікатора класифікації позицій закупівлі багатопредметного тендера |
| 82 | 82 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 83 | 83 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.id |
| 84 | - | |
| 84 | + | |
| 85 | 85 | Відображення опису класифікації позицій закупівлі багатопредметного тендера |
| 86 | 86 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 87 | 87 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.description |
| 88 | - | |
| 88 | + | |
| 89 | 89 | Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера |
| 90 | 90 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 91 | 91 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.scheme |
| 92 | - | |
| 92 | + | |
| 93 | 93 | Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера |
| 94 | 94 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 95 | 95 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.id |
| 96 | - | |
| 96 | + | |
| 97 | 97 | Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера |
| 98 | 98 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 99 | 99 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.description |
| 100 | - | |
| 100 | + | |
| 101 | 101 | Відображення назви одиниці позицій закупівлі багатопредметного тендера |
| 102 | 102 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 103 | 103 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.name |
| 104 | - | |
| 104 | + | |
| 105 | 105 | Відображення коду одиниці позицій закупівлі багатопредметного тендера |
| 106 | 106 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 107 | 107 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.code |
| 108 | - | |
| 108 | + | |
| 109 | 109 | Відображення кількості позицій закупівлі багатопредметного тендера |
| 110 | 110 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера |
| 111 | 111 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} quantity |
| 112 | - | |
| 113 | - | |
| 112 | + | |
| 113 | + | ... | ... |
| 1 | +#!/usr/bin/env python | |
| 1 | 2 | # -*- coding: utf-8 - |
| 2 | 3 | import os |
| 3 | 4 | from munch import munchify, Munch, fromYAML |
| ... | ... | @@ -22,9 +23,15 @@ from .initial_data import ( |
| 22 | 23 | import calendar |
| 23 | 24 | |
| 24 | 25 | TIMEZONE = timezone('Europe/Kiev') |
| 26 | + | |
| 25 | 27 | def get_date(): |
| 26 | 28 | return datetime.now().isoformat() |
| 27 | 29 | |
| 30 | +def convert_date_to_slash_format(isodate): | |
| 31 | + iso_dt=parse_date(isodate) | |
| 32 | + date_string = iso_dt.strftime("%d/%m/%Y") | |
| 33 | + return date_string | |
| 34 | + | |
| 28 | 35 | def convert_date_to_etender_format(isodate): |
| 29 | 36 | iso_dt=parse_date(isodate) |
| 30 | 37 | date_string = iso_dt.strftime("%d-%m-%Y") |
| ... | ... | @@ -168,4 +175,4 @@ def newtend_date_picker_index(isodate): |
| 168 | 175 | #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO")) |
| 169 | 176 | if now.day>iso_dt.day: |
| 170 | 177 | mod = calendar.monthrange(now.year, now.month)[1] + mod |
| 171 | - return mod + iso_dt.day | |
| \ No newline at end of file | ||
| 178 | + return mod + iso_dt.day | ... | ... |
| ... | ... | @@ -26,6 +26,8 @@ ${question_id} 0 |
| 26 | 26 | *** Test Cases *** |
| 27 | 27 | Можливість оголосити однопредметний тендер |
| 28 | 28 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 29 | + log ${TEMPDIR} | |
| 30 | + log ${CURDIR} | |
| 29 | 31 | ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA} |
| 30 | 32 | ${TENDER_ID}= Get From List ${ids} 0 |
| 31 | 33 | Set Global Variable ${TENDER_ID} |
| ... | ... | @@ -35,7 +37,6 @@ ${question_id} 0 |
| 35 | 37 | Можливасть додати тендерну документацію |
| 36 | 38 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ |
| 37 | 39 | ${filename}= Set Variable file.txt |
| 38 | - | |
| 39 | 40 | Викликати для учасника ${tender_owner} Завантажити документ ${filename} ${TENDER_ID} |
| 40 | 41 | |
| 41 | 42 | Можливість подати скаргу на умови |
| ... | ... | @@ -265,7 +266,7 @@ ${question_id} 0 |
| 265 | 266 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
| 266 | 267 | ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER_ID} ${biddingresponce0} |
| 267 | 268 | |
| 268 | -Подати цінову пропозицію bidder1 | |
| 269 | +Подати повторно цінову пропозицію першим учасником | |
| 269 | 270 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 270 | 271 | Дочекатись дати початоку прийому пропозицій |
| 271 | 272 | ${bid}= test bid data |
| ... | ... | @@ -274,7 +275,7 @@ ${question_id} 0 |
| 274 | 275 | Set Global Variable ${biddingresponce1} |
| 275 | 276 | log ${biddingresponce1} |
| 276 | 277 | |
| 277 | -Можливість змінити цінову пропозицію до 50000 | |
| 278 | +Можливість змінити повторну цінову пропозицію до 50000 | |
| 278 | 279 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 279 | 280 | Set To Dictionary ${biddingresponce1.data.value} amount 50000 |
| 280 | 281 | Log ${biddingresponce1.data.value} |
| ... | ... | @@ -282,23 +283,37 @@ ${question_id} 0 |
| 282 | 283 | Set Global Variable ${biddingresponce2} |
| 283 | 284 | log ${biddingresponce2} |
| 284 | 285 | |
| 285 | -Можливість змінити цінову пропозицію до 1 | |
| 286 | +Можливість змінити повторну цінову пропозицію до 400 | |
| 286 | 287 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 287 | - Set To Dictionary ${biddingresponce1.data.value} amount 1 | |
| 288 | + Set To Dictionary ${biddingresponce1.data.value} amount 400 | |
| 288 | 289 | Log ${biddingresponce1.data.value} |
| 289 | 290 | ${biddingresponce3}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1} |
| 290 | 291 | Set Global Variable ${biddingresponce3} |
| 291 | 292 | log ${biddingresponce3} |
| 292 | 293 | |
| 293 | -Завантажити документ першим учасником | |
| 294 | +Завантажити документ першим учасником в повторну пропозицію | |
| 294 | 295 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
| 295 | 296 | log ${USERS.users['${provider}'].broker} |
| 296 | 297 | log ${biddingresponce1} |
| 297 | 298 | ${bid_id}= get variable value ${biddingresponce1.data.id} |
| 298 | 299 | ${token1}= Get Variable Value ${biddingresponce1.access.token} |
| 299 | 300 | log ${token1} |
| 300 | - ${upload_doc_responce}= Викликати для учасника ${provider} Завантажити документ в ставку ${token1} ${bid_id} | |
| 301 | - Set Global Variable ${upload_doc_responce} | |
| 301 | + ${uploaded_file_data}= Викликати для учасника ${provider} Завантажити документ в ставку ${token1} ${bid_id} | |
| 302 | + log ${uploaded_file_data} | |
| 303 | + Set Global Variable ${uploaded_file_data} | |
| 304 | + | |
| 305 | + | |
| 306 | +порівняти документ | |
| 307 | + [Tags] ${USERS.users['${provider}'].broker}: вичитати документ | |
| 308 | + ${flcntnt}= Get From Dictionary ${uploaded_file_data} filecontent | |
| 309 | + ${resp}= Get From Dictionary ${uploaded_file_data} upload_responce | |
| 310 | + ${flpth}= Get From Dictionary ${uploaded_file_data} filepath | |
| 311 | + ${url} = Get Variable Value ${resp.data.url} | |
| 312 | + ${token1}= Get Variable Value ${biddingresponce1.access.token} | |
| 313 | + ${doc} ${flnnm}= Викликати для учасника ${provider} отримати документ ${TENDER_ID} ${url} ${token1} | |
| 314 | + Should Be Equal ${flcntnt} ${doc} | |
| 315 | + Should Be Equal ${flpth} ${flnnm} | |
| 316 | + | |
| 302 | 317 | |
| 303 | 318 | Можливість змінити документацію цінової пропозиції |
| 304 | 319 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
| ... | ... | @@ -306,7 +321,8 @@ ${question_id} 0 |
| 306 | 321 | log ${biddingresponce1} |
| 307 | 322 | ${bid_id}= get variable value ${biddingresponce1.data.id} |
| 308 | 323 | ${token1}= Get Variable Value ${biddingresponce1.access.token} |
| 309 | - ${upload_doc_responce_id}= get variable value ${upload_doc_responce.data.id} | |
| 324 | + ${resp}= Get From Dictionary ${uploaded_file_data} upload_responce | |
| 325 | + ${upload_doc_responce_id}= get variable value ${resp.data.id} | |
| 310 | 326 | log ${token1} |
| 311 | 327 | Викликати для учасника ${provider} Змінити документ в ставці ${token1} ${bid_id} ${upload_doc_responce_id} |
| 312 | 328 | |
| ... | ... | @@ -316,7 +332,7 @@ ${question_id} 0 |
| 316 | 332 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
| 317 | 333 | ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER_ID} ${questions[${question_id}]} |
| 318 | 334 | |
| 319 | -Подати цінову пропозицію bidder2 | |
| 335 | +Подати цінову пропозицію другим учасником | |
| 320 | 336 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
| 321 | 337 | Дочекатись дати початоку прийому пропозицій |
| 322 | 338 | ${bid}= test bid data |
| ... | ... | @@ -345,7 +361,6 @@ ${question_id} 0 |
| 345 | 361 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 346 | 362 | Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} |
| 347 | 363 | |
| 348 | - | |
| 349 | 364 | Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій |
| 350 | 365 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій |
| 351 | 366 | Дочекатись дати закінчення прийому пропозицій |
| ... | ... | @@ -384,7 +399,7 @@ ${question_id} 0 |
| 384 | 399 | log ${biddingresponce5} |
| 385 | 400 | ${bid_id}= get variable value ${biddingresponce5.data.id} |
| 386 | 401 | ${token1}= Get Variable Value ${biddingresponce5.access.token} |
| 387 | - ${upload_doc_responce_id2}= get variable value ${upload_doc_responce2.data.id} | |
| 402 | + ${upload_doc_responce_id2}= get variable value ${upload_doc_responce2[0].data.id} | |
| 388 | 403 | log ${upload_doc_responce_id2} |
| 389 | 404 | log ${token1} |
| 390 | 405 | Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id2} |
| ... | ... | @@ -396,14 +411,20 @@ ${question_id} 0 |
| 396 | 411 | log ${biddingresponce1} |
| 397 | 412 | ${bid_id}= get variable value ${biddingresponce1.data.id} |
| 398 | 413 | ${token1}= Get Variable Value ${biddingresponce1.access.token} |
| 399 | - ${upload_doc_responce_id}= get variable value ${upload_doc_responce.data.id} | |
| 414 | + ${upload_doc_responce_id}= get variable value ${upload_doc_responce[0].data.id} | |
| 400 | 415 | log ${token1} |
| 401 | 416 | Викликати для учасника ${provider} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id} |
| 402 | 417 | |
| 403 | - | |
| 404 | 418 | Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій |
| 405 | 419 | [Tags] ${USERS.users['${provider}'].broker}: Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій |
| 406 | 420 | ${biddingresponce8}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} |
| 407 | 421 | Set Global Variable ${biddingresponce8} |
| 408 | 422 | log ${biddingresponce8} |
| 409 | 423 | |
| 424 | +Вичитати цінову пропозицію | |
| 425 | + sleep 120 | |
| 426 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | |
| 427 | + ${bid_id} = get variable value ${biddingresponce1.data.id} | |
| 428 | + ${token1}= Get Variable Value ${biddingresponce1.access.token} | |
| 429 | + ${bids}= Викликати для учасника ${provider} Отримати пропозиції ${TENDER_ID} ${bid_id} ${token1} | |
| 430 | + log ${bids} | |
| \ No newline at end of file | ... | ... |
Please
register
or
login
to post a comment