Commit cbcf25725ee3dc20e87d3008fd5e560aac980323

Authored by yboi
2 parents db5165a5 f3c95be4

тестовий коміт

... ... @@ -5,15 +5,6 @@ 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 8 ##Використовую такий шлях у кожного буде мінятись /yboi/. Міняйте на сві шлях до файлу
18 9 ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
19 10
... ... @@ -25,7 +16,6 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
25 16 Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
26 17 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
27 18 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
28   -
29 19 # login
30 20 Wait Until Page Contains Element id=inputUsername 100
31 21 Input text id=inputUsername ${USERS.users['${username}'].login}
... ... @@ -38,31 +28,30 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
38 28 [Documentation]
39 29 ... ${ARGUMENTS[0]} == username
40 30 ... ${ARGUMENTS[1]} == tender_data
41   -
42   - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items
43   - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title
44   - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description
45   - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount
46   - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount
47   - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description
  31 + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
  32 + ${items}= Get From Dictionary ${tender_data.data} items
  33 + ${title}= Get From Dictionary ${tender_data.data} title
  34 + ${description}= Get From Dictionary ${tender_data.data} description
  35 + ${budget}= Get From Dictionary ${tender_data.data.value} amount
  36 + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount
  37 + ${items_description}= Get From Dictionary ${tender_data.data} description
48 38 ${quantity}= Get From Dictionary ${items[0]} quantity
49 39 ${cpv}= Get From Dictionary ${items[0].classification} id
50 40 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
51 41 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
52 42 ${unit}= Get From Dictionary ${items[0].unit} name
53   - ${start_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate
  43 + ${start_date}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate
54 44 ${start_date}= convert_date_to_etender_format ${start_date}
55   - ${start_time}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate
  45 + ${start_time}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate
56 46 ${start_time}= convert_time_to_etender_format ${start_time}
57   - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate
  47 + ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate
58 48 ${end_date}= convert_date_to_etender_format ${end_date}
59   - ${end_time}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate
  49 + ${end_time}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate
60 50 ${end_time}= convert_time_to_etender_format ${end_time}
61   - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate
  51 + ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate
62 52 ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date}
63   - ${enquiry_end_time}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate
  53 + ${enquiry_end_time}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate
64 54 ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time}
65   -
66 55 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
67 56 Wait Until Page Contains Мої закупівлі 100
68 57 Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі']
... ... @@ -102,29 +91,34 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
102 91 Wait Until Page Contains [ТЕСТУВАННЯ] 100
103 92 Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a
104 93 ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid
105   -## harcode Idis bacause issues on the E-tender side, to remove, 1 line:
  94 +### harcode Idis bacause issues on the E-tender side, to remove, 1 line:
106 95 ${tender_UAid}= Convert To String UA-2015-08-03-000025
107   - ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${tender_UAid}
108   - ${Ids} Create List ${tender_UAid} ${id}
  96 + ${Ids}= Convert To String ${tender_UAid}
  97 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${ARGUMENTS[0]} ${tender_UAid}
109 98 [return] ${Ids}
110 99
  100 +Set Multi Ids
  101 + [Arguments] @{ARGUMENTS}
  102 + [Documentation]
  103 + ... ${ARGUMENTS[0]} == username
  104 + ... ${ARGUMENTS[1]} == ${tender_UAid}
  105 + ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  106 + ${Ids}= Create List ${tender_UAid} ${id}
111 107
112 108 get tender UAid
113 109 ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")]
114 110 ${tender_UAid}= Get Substring ${tender_UAid} 7 27
115 111
116   -
117 112 Oтримати internal id по UAid
118 113 [Arguments] @{ARGUMENTS}
119 114 [Documentation]
120 115 ... ${ARGUMENTS[0]} == username
121   - ... ${ARGUMENTS[1]} == tenderid
  116 + ... ${ARGUMENTS[1]} == ${tender_UAid}
122 117 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
123 118 ${current_location}= Get Location
124 119 ${tender_id}= Fetch From Right ${current_location} /
125 120 ## harcode Idis bacause issues on the E-tender side, to remove, 1 line:
126 121 ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2
127   - log ${tender_id}
128 122 [return] ${tender_id}
129 123
130 124 Додати предмет
... ... @@ -170,8 +164,7 @@ Oтримати internal id по UAid
170 164 [Arguments] @{ARGUMENTS}
171 165 [Documentation]
172 166 ... ${ARGUMENTS[0]} == username
173   - ... ${ARGUMENTS[1]} == tenderId
174   -
  167 + ... ${ARGUMENTS[1]} == ${TENDER_UAID}
175 168 Switch browser ${ARGUMENTS[0]}
176 169 Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
177 170 Wait Until Page Contains Список закупівель 10
... ... @@ -184,6 +177,57 @@ Oтримати internal id по UAid
184 177 sleep 1
185 178 Capture Page Screenshot
186 179
  180 +Подати цінову пропозицію
  181 + [Arguments] @{ARGUMENTS}
  182 + [Documentation]
  183 + ... ${ARGUMENTS[0]} == username
  184 + ... ${ARGUMENTS[1]} == ${TENDER_UAID}
  185 + ... ${ARGUMENTS[2]} == test_bid_data
  186 +
  187 + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount
  188 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  189 + Wait Until Page Contains Інформація про процедуру закупівлі 100
  190 + Wait Until Page Contains Element id=amount 10
  191 + Input text id=amount ${bid}
  192 + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']
  193 +
  194 +Задати питання
  195 + [Arguments] @{ARGUMENTS}
  196 + [Documentation]
  197 + ... ${ARGUMENTS[0]} = username
  198 + ... ${ARGUMENTS[1]} = ${TENDER_UAID}
  199 + ... ${ARGUMENTS[2]} = question_data
  200 +
  201 + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
  202 + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
  203 +
  204 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  205 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  206 +
  207 + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100
  208 + Click Element jquery=a[href^="#/addQuestion/"]
  209 + Wait Until Page Contains Element id=title
  210 + Input text id=title ${title}
  211 + Input text id=description ${description}
  212 + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
  213 +
  214 +Відповісти на питання
  215 + [Arguments] @{ARGUMENTS}
  216 + [Documentation]
  217 + ... ${ARGUMENTS[0]} = username
  218 + ... ${ARGUMENTS[1]} = ${TENDER_UAID}
  219 + ... ${ARGUMENTS[2]} = 0
  220 + ... ${ARGUMENTS[3]} = answer_data
  221 +
  222 + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer
  223 +
  224 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  225 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  226 +
  227 + Click Element xpath=//div[div/pre[1]]/div[1]
  228 + Input text xpath=//div[textarea]/textarea ${answer}
  229 + Click Element xpath=//div[textarea]/span/button[1]
  230 +
187 231 обновити сторінку з тендером
188 232 [Arguments] @{ARGUMENTS}
189 233 [Documentation]
... ... @@ -319,56 +363,6 @@ Oтримати internal id по UAid
319 363 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
320 364 [return] ${return_value}
321 365
322   -Подати цінову пропозицію
323   - [Arguments] @{ARGUMENTS}
324   - [Documentation]
325   - ... ${ARGUMENTS[0]} == username
326   - ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID}
327   - ... ${ARGUMENTS[2]} == test_bid_data
328   -
329   - ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount
330   - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
331   - Wait Until Page Contains Інформація про процедуру закупівлі 100
332   - Wait Until Page Contains Element id=amount 10
333   - Input text id=amount ${bid}
334   - Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']
335   -
336   -Задати питання
337   - [Arguments] @{ARGUMENTS}
338   - [Documentation]
339   - ... ${ARGUMENTS[0]} = username
340   - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
341   - ... ${ARGUMENTS[2]} = question_data
342   -
343   - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
344   - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
345   -
346   - Selenium2Library.Switch Browser ${ARGUMENTS[0]}
347   - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
348   -
349   - Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100
350   - Click Element jquery=a[href^="#/addQuestion/"]
351   - Wait Until Page Contains Element id=title
352   - Input text id=title ${title}
353   - Input text id=description ${description}
354   - Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
355   -
356   -Відповісти на питання
357   - [Arguments] @{ARGUMENTS}
358   - [Documentation]
359   - ... ${ARGUMENTS[0]} = username
360   - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
361   - ... ${ARGUMENTS[2]} = 0
362   - ... ${ARGUMENTS[3]} = answer_data
363   -
364   - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer
365   -
366   - Selenium2Library.Switch Browser ${ARGUMENTS[0]}
367   - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
368   -
369   - Click Element xpath=//div[div/pre[1]]/div[1]
370   - Input text xpath=//div[textarea]/textarea ${answer}
371   - Click Element xpath=//div[textarea]/span/button[1]
372 366
373 367 Завантажити документ
374 368 [Arguments] @{ARGUMENTS}
... ...
... ... @@ -5,16 +5,6 @@ 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 Підготувати клієнт для користувача
... ... @@ -24,16 +14,11 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
24 14 Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]}
25 15 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
26 16 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
27   -
28   -# login
29   - Wait Until Page Contains Element name=siteLogin 100
30   - Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login}
31   - Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password}
32   - Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input
  17 + Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]}
33 18
34 19 Wait Until Page Contains Element jquery=a[href="/cabinet"]
35 20 Click Element jquery=a[href="/cabinet"]
36   - Wait Until Page Contains Element name=email 100
  21 + Wait Until Page Contains Element name=email 10
37 22 Input text name=email mail
38 23 Sleep 1
39 24 Input text name=email ${USERS.users['${username}'].login}
... ... @@ -42,20 +27,29 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
42 27 Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100
43 28 Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет']
44 29
  30 +Pre Login
  31 + [Arguments] @{ARGUMENTS}
  32 + [Documentation]
  33 + ... ${ARGUMENTS[0]} == username
  34 + Wait Until Page Contains Element name=siteLogin 10
  35 + Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login}
  36 + Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password}
  37 + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input
  38 +
45 39 Створити тендер
46 40 [Arguments] @{ARGUMENTS}
47 41 [Documentation]
48 42 ... ${ARGUMENTS[0]} == username
49 43 ... ${ARGUMENTS[1]} == tender_data
50   -
51   - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items
52   - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title
53   - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description
54   - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount
55   - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount
56   - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description
  44 + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
  45 + ${items}= Get From Dictionary ${tender_data.data} items
  46 + ${title}= Get From Dictionary ${tender_data.data} title
  47 + ${description}= Get From Dictionary ${tender_data.data} description
  48 + ${budget}= Get From Dictionary ${tender_data.data.value} amount
  49 + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount
  50 + ${items_description}= Get From Dictionary ${tender_data.data} description
57 51 ${quantity}= Get From Dictionary ${items[0]} quantity
58   - ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName
  52 + ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName
59 53 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
60 54 ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date}
61 55 ${cpv}= Get From Dictionary ${items[0].classification} description_ua
... ... @@ -64,9 +58,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
64 58 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
65 59 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
66 60 ${dkpp_id1}= Replace String ${dkpp_id} - _
67   - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate
  61 + ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate
68 62 ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date}
69   - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate
  63 + ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate
70 64 ${end_date}= convert_date_to_slash_format ${end_date}
71 65
72 66 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
... ... @@ -103,11 +97,18 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
103 97 Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100
104 98 Click Element xpath=//a[contains(@class, 'button pubBtn')]
105 99 Wait Until Page Contains Тендер опубліковано 100
106   - ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2]
107   - ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2]
108   - ${Ids} Create List ${tender_UAid} ${id}
  100 + ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2]
  101 + ${Ids}= Convert To String ${tender_UAid}
  102 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid}
109 103 [return] ${Ids}
110 104
  105 +Set Multi Ids
  106 + [Arguments] @{ARGUMENTS}
  107 + [Documentation]
  108 + ... ${ARGUMENTS[1]} == ${tender_UAid}
  109 + ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2]
  110 + ${Ids}= Create List ${tender_UAid} ${id}
  111 +
111 112 Додати предмет
112 113 [Arguments] @{ARGUMENTS}
113 114 [Documentation]
... ...
  1 +*** Setting ***
  2 +Library Selenium2Screenshots
  3 +Library String
  4 +Library DateTime
  5 +
  6 +*** Variables ***
  7 +${locator.tenderId} jquery=h3
  8 +
  9 +*** Keywords ***
  10 +Підготувати дані для оголошення тендера
  11 + ${INITIAL_TENDER_DATA}= prepare_test_tender_data
  12 + [return] ${INITIAL_TENDER_DATA}
  13 +
  14 +Підготувати клієнт для користувача
  15 + [Arguments] @{ARGUMENTS}
  16 + [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
  17 + ... ${ARGUMENTS[0]} == username
  18 +
  19 + Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
  20 + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
  21 + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
  22 + Wait Until Page Contains Element id=indexpage_login 100
  23 + Click Element id=indexpage_login
  24 + Wait Until Page Contains Element id=password 100
  25 + Input text id=login-email ${USERS.users['${username}'].login}
  26 + Input text id=password ${USERS.users['${username}'].password}
  27 + Click Element id=submit-login-button
  28 + Wait Until Page Contains Element xpath=//div[@class="introjs-overlay"] 100
  29 +
  30 +Створити тендер
  31 + [Arguments] @{ARGUMENTS}
  32 + [Documentation]
  33 + ... ${ARGUMENTS[0]} == username
  34 + ... ${ARGUMENTS[1]} == tender_data
  35 +
  36 +## Inicialisation
  37 + ${items}= Get From Dictionary ${ARGUMENTS[1].data} items
  38 + ${title}= Get From Dictionary ${ARGUMENTS[1].data} title
  39 + ${description}= Get From Dictionary ${ARGUMENTS[1].data} description
  40 + ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount
  41 + ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount
  42 + ${start_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate
  43 + ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate
  44 + ${enquiry_start_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} startDate
  45 + ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate
  46 +
  47 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  48 + Go To ${USERS.users['${username}'].homepage}
  49 + Wait Until Page Contains Element xpath=//a[@href="#/create-tender"] 100
  50 + Click Link xpath=//a[@href="#/create-tender"]
  51 + Wait Until Page Contains Новый тендер 100
  52 +# Input fields tender
  53 + Input text name=tenderName ${title}
  54 + Input text name=tenderDescription ${description}
  55 + Input text id=budget ${budget}
  56 + Click Element id=with-nds
  57 + Input text id=step ${step_rate}
  58 +# Add Item(s)
  59 + Додати придмет ${items[0]} 0
  60 + Run Keyword If '${mode}' == 'multi' Додати багато придметів items
  61 +# Set tender datatimes
  62 + Set datetime start-date-registration ${start_date}
  63 + Set datetime end-date-registration ${end_date}
  64 + Set datetime end-date-qualification ${enquiry_end_date}
  65 + Set datetime start-date-qualification ${enquiry_start_date}
  66 +# Save
  67 + Click Element xpath=//button[@class="btn btn-lg btn-default cancel pull-right ng-binding"]
  68 + Wait Until Page Contains Element xpath=//div[@ng-click="goHome()"] 30
  69 + Click Element xpath=//div[@ng-click="goHome()"]
  70 +# Get Ids
  71 + Wait Until Page Contains Element xpath=//div[@class="title"] 30
  72 + ${tender_UAid}= Get Text xpath=//div[@class="title"]
  73 + ${Ids}= Convert To String ${tender_UAid}
  74 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid}
  75 + [return] ${Ids}
  76 +
  77 +Set Multi Ids
  78 + [Arguments] @{ARGUMENTS}
  79 + [Documentation]
  80 + ... ${ARGUMENTS[0]} == ${tender_UAid}
  81 + ${current_location}= Get Location
  82 + ${id}= Get Substring ${current_location} -41 -9
  83 + ${Ids}= Create List ${tender_UAid} ${id}
  84 +
  85 +Set datetime
  86 + [Arguments] @{ARGUMENTS}
  87 + [Documentation]
  88 + ... ${ARGUMENTS[0]} == control_id
  89 + ... ${ARGUMENTS[1]} == date
  90 +#Pick Date
  91 + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/../span[@class="calendar-btn"]
  92 + Wait Until Page Contains Element xpath=//td[@class="text-center ng-scope"] 30
  93 + ${datapicker_id}= Get Element Attribute xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@class="text-center ng-scope"]@id
  94 + ${datapicker_id}= Get Substring ${datapicker_id} 0 -1
  95 + ${date_index}= newtend_date_picker_index ${ARGUMENTS[1]}
  96 + ${datapicker_id}= Convert To String ${datapicker_id}${date_index}
  97 + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@id="${datapicker_id}"]/button
  98 +#Set time
  99 + ${hous}= Get Substring ${ARGUMENTS[1]} 11 13
  100 + ${minutes}= Get Substring ${ARGUMENTS[1]} 14 16
  101 + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="hours"] ${hous}
  102 + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="minutes"] ${minutes}
  103 +
  104 +Додати придмет
  105 + [Arguments] @{ARGUMENTS}
  106 + [Documentation]
  107 + ... ${ARGUMENTS[0]} == items_n
  108 + ... ${ARGUMENTS[1]} == index
  109 +## Get values for item
  110 + ${items_description}= Get From Dictionary ${ARGUMENTS[0]} description
  111 + ${quantity}= Get From Dictionary ${ARGUMENTS[0]} quantity
  112 + ${cpv}= Get From Dictionary ${ARGUMENTS[0].classification} description_ua
  113 + ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description
  114 + ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id
  115 + ${unit}= Get From Dictionary ${ARGUMENTS[0].unit} name
  116 + ${deliverydate_end_date}= Get From Dictionary ${ARGUMENTS[0].deliveryDate} endDate
  117 + ${countryName}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} countryName
  118 + ${ZIP}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} postalCode
  119 + ${region}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} region
  120 + ${locality}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} locality
  121 + ${streetAddress}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} streetAddress
  122 +# Add item
  123 + Input text id=itemDescription${ARGUMENTS[1]} ${items_description}
  124 + Input text id=quantity${ARGUMENTS[1]} ${quantity}
  125 + Click Element xpath=//a[contains(text(), "единицы измерения")]
  126 + Click Element xpath=//a[contains(text(), "единицы измерения")]/..//a[contains(text(), '${unit}')]
  127 +# Set CPV
  128 + Click Element id=classifier1${ARGUMENTS[1]}
  129 + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100
  130 + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${cpv}
  131 + Wait Until Page Contains Element xpath=//span[contains(text(),'${cpv}')] 20
  132 + Click Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"]
  133 + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"]
  134 +# Set ДКПП
  135 + Click Element id=classifier2${ARGUMENTS[1]}
  136 + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100
  137 + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${dkpp_desc}
  138 + Wait Until Page Contains Element xpath=//span[contains(text(),'${dkpp_id}')] 100
  139 + Click Element xpath=//span[contains(text(),'${dkpp_id}')]/../..//input[@class="ng-pristine ng-untouched ng-valid"]
  140 + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"]
  141 +# Set Delivery Address
  142 + Click Element id=deliveryAddress${ARGUMENTS[1]}
  143 + Wait Until Page Contains Element xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] 100
  144 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${countryName}
  145 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${ZIP}
  146 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${region}
  147 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${locality}
  148 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${streetAddress}
  149 + Click Element xpath=//button[@class="btn btn-lg single-btn ng-binding"]
  150 +# Set Item Datetime
  151 + Set datetime end-date-delivery${ARGUMENTS[1]} ${deliverydate_end_date}
  152 +
  153 +Додати багато придметів
  154 + [Arguments] @{ARGUMENTS}
  155 + [Documentation]
  156 + ... ${ARGUMENTS[0]} == items
  157 + ${Items_length}= Get Length ${items}
  158 + : FOR ${INDEX} IN RANGE 1 ${Items_length}
  159 + \ Click Element xpath=//a[@class="icon-black plus-black remove-field ng-scope"]
  160 + \ Додати придмет ${items[${INDEX}]} ${INDEX}
  161 +
  162 +
  163 +
  164 +
  165 +
  166 +
  167 +
  168 +#### Not reworked for Newtend ####
  169 +
  170 +Oтримати internal id по UAid
  171 + [Arguments] @{ARGUMENTS}
  172 + [Documentation]
  173 + ... ${ARGUMENTS[0]} == username
  174 + ... ${ARGUMENTS[1]} == tenderid
  175 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  176 + ${current_location}= Get Location
  177 + ${tender_id}= Fetch From Right ${current_location} /
  178 +### harcode Idis bacause issues on the E-tender side, to remove, 1 line:
  179 + ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2
  180 + log ${internal_id}
  181 + [return] ${internal_id}
  182 +
  183 +Пошук тендера по ідентифікатору
  184 + [Arguments] @{ARGUMENTS}
  185 + [Documentation]
  186 + ... ${ARGUMENTS[0]} == username
  187 + ... ${ARGUMENTS[1]} == tenderId
  188 +
  189 + Switch browser ${ARGUMENTS[0]}
  190 + Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
  191 + Wait Until Page Contains Список закупівель 10
  192 + sleep 1
  193 + Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]}
  194 + Click Link jquery=a[ng-click='search()']
  195 + sleep 2
  196 + Click Link jquery=a[href^="#/tenderDetailes"]
  197 + Wait Until Page Contains ${ARGUMENTS[1]} 10
  198 + sleep 1
  199 + Capture Page Screenshot
  200 +
  201 +обновити сторінку з тендером
  202 + [Arguments] @{ARGUMENTS}
  203 + [Documentation]
  204 + ... ${ARGUMENTS[0]} == username
  205 + ... ${ARGUMENTS[1]} == tenderId
  206 + ... ${ARGUMENTS[2]} == id
  207 + ${current_location}= Get Location
  208 + Run keyword if '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page
  209 + Run keyword unless '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Пошук тендера по ідентифікатору @{ARGUMENTS}
  210 + Wait Until Page Contains ${ARGUMENTS[1]} 10
  211 + sleep 1
  212 +
  213 +отримати інформацію із тендера
  214 + [Arguments] @{ARGUMENTS}
  215 + [Documentation]
  216 + ... ${ARGUMENTS[0]} == username
  217 + ... ${ARGUMENTS[1]} == fieldname
  218 + Switch browser ${ARGUMENTS[0]}
  219 + ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]}
  220 + [return] ${return_value}
  221 +
  222 +Відмітити на сторінці поле з тендера
  223 + [Arguments] ${fieldname} ${locator}
  224 + ${last_note_id}= Add pointy note ${locator} Found ${fieldname} width=200 position=bottom
  225 + Align elements horizontally ${locator} ${last_note_id}
  226 + sleep 1
  227 + Remove element ${last_note_id}
  228 +
  229 +Отримати тест із поля і показати на сторінці
  230 + [Arguments] ${fieldname}
  231 + sleep 3
  232 +# відмітити на сторінці поле з тендера ${fieldname} ${locator.${fieldname}}
  233 + ${return_value}= Get Text ${locator.${fieldname}}
  234 + [return] ${return_value}
  235 +
  236 +отримати інформацію про tenderId
  237 + ${return_value}= Отримати тест із поля і показати на сторінці tenderId
  238 + [return] ${return_value.split(' ')[1]}
  239 +
  240 +отримати інформацію про title
  241 + ${return_value}= Отримати тест із поля і показати на сторінці title
  242 + [return] ${return_value}
  243 +
  244 +отримати інформацію про description
  245 + ${return_value}= Отримати тест із поля і показати на сторінці description
  246 + [return] ${return_value}
  247 +
  248 +отримати інформацію про minimalStep.amount
  249 + ${return_value}= Отримати тест із поля і показати на сторінці minimalStep.amount
  250 + ${return_value}= Convert To Number ${return_value.split(' ')[0]}
  251 + [return] ${return_value}
  252 +
  253 +отримати інформацію про procuringEntity.name
  254 + ${return_value}= Отримати тест із поля і показати на сторінці procuringEntity.name
  255 + [return] ${return_value}
  256 +
  257 +
  258 +отримати інформацію про value.amount
  259 + ${return_value}= Отримати тест із поля і показати на сторінці value.amount
  260 + ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3])
  261 + ${return_value}= Convert To Number ${return_value}
  262 + [return] ${return_value}
  263 +
  264 +отримати інформацію про tenderPeriod.startDate
  265 + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.startDate
  266 + [return] ${return_value}
  267 +
  268 +отримати інформацію про tenderPeriod.endDate
  269 + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.endDate
  270 + [return] ${return_value}
  271 +
  272 +отримати інформацію про enquiryPeriod.startDate
  273 + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.startDate
  274 + [return] ${return_value}
  275 +
  276 +отримати інформацію про enquiryPeriod.endDate
  277 + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.endDate
  278 + [return] ${return_value}
  279 +
  280 +
  281 +отримати інформацію про items[${item_id}].description
  282 + відмітити на сторінці поле з тендера items[${item_id}].description jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
  283 + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
  284 + [return] ${return_value}
  285 +
  286 +отримати інформацію про items[${item_id}].quantity
  287 + відмітити на сторінці поле з тендера items[${item_id}].quantity jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)>
  288 + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)>
  289 + ${return_value}= Convert To Number ${return_value}
  290 + [return] ${return_value}
  291 +
  292 +отримати інформацію про items[${item_id}].classification.id
  293 + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  294 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  295 + [return] ${return_value.split(' ')[0]}
  296 +
  297 +отримати інформацію про items[${item_id}].classification.scheme
  298 + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)>
  299 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)>
  300 + [return] ${return_value.split(' ')[0]}
  301 +
  302 +отримати інформацію про items[${item_id}].classification.description
  303 + відмітити на сторінці поле з тендера classification.description jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  304 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  305 + ${return_value}= catenate @{return_value.split(' ')[1:]}
  306 + [return] ${return_value}
  307 +
  308 +отримати інформацію про items[${item_id}].deliveryAddress
  309 + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryAddress
  310 + [return] ${return_value}
  311 +
  312 +отримати інформацію про items[${item_id}].deliveryDate
  313 + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryDate
  314 + [return] ${return_value}
  315 +
  316 +отримати інформацію про questions[${question_id}].title
  317 + відмітити на сторінці поле з тендера questions title jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)>
  318 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)>
  319 + [return] ${return_value}
  320 +
  321 +отримати інформацію про questions[${question_id}].description
  322 + відмітити на сторінці поле з тендера questions description jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
  323 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
  324 + [return] ${return_value}
  325 +
  326 +отримати інформацію про questions[${question_id}].date
  327 + відмітити на сторінці поле з тендера question date jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
  328 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
  329 + [return] ${return_value}
  330 +
  331 +отримати інформацію про questions[${question_id}].answer
  332 + відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last>
  333 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
  334 + [return] ${return_value}
  335 +
  336 +Подати цінову пропозицію
  337 + [Arguments] @{ARGUMENTS}
  338 + [Documentation]
  339 + ... ${ARGUMENTS[0]} == username
  340 + ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID}
  341 + ... ${ARGUMENTS[2]} == test_bid_data
  342 +
  343 + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount
  344 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  345 + Wait Until Page Contains Інформація про процедуру закупівлі 100
  346 + Wait Until Page Contains Element id=amount 10
  347 + Input text id=amount ${bid}
  348 + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']
  349 +
  350 +Задати питання
  351 + [Arguments] @{ARGUMENTS}
  352 + [Documentation]
  353 + ... ${ARGUMENTS[0]} = username
  354 + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
  355 + ... ${ARGUMENTS[2]} = question_data
  356 +
  357 + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
  358 + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
  359 +
  360 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  361 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  362 +
  363 + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100
  364 + Click Element jquery=a[href^="#/addQuestion/"]
  365 + Wait Until Page Contains Element id=title
  366 + Input text id=title ${title}
  367 + Input text id=description ${description}
  368 + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
  369 +
  370 +Відповісти на питання
  371 + [Arguments] @{ARGUMENTS}
  372 + [Documentation]
  373 + ... ${ARGUMENTS[0]} = username
  374 + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
  375 + ... ${ARGUMENTS[2]} = 0
  376 + ... ${ARGUMENTS[3]} = answer_data
  377 +
  378 + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer
  379 +
  380 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  381 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  382 +
  383 + Click Element xpath=//div[div/pre[1]]/div[1]
  384 + Input text xpath=//div[textarea]/textarea ${answer}
  385 + Click Element xpath=//div[textarea]/span/button[1]
... ...
... ... @@ -9,7 +9,7 @@ ${question_id} 0
9 9 *** Keywords ***
10 10 отримати internal id по UAid
11 11 [Arguments] @{ARGUMENTS}
12   - [Documentation]
  12 + [Documentation]
13 13 ... ${ARGUMENTS[0]} == username
14 14 ... ${ARGUMENTS[1]} == tenderid
15 15 log many @{ARGUMENTS}
... ... @@ -42,10 +42,11 @@ ${question_id} 0
42 42 Log object data ${TENDER_DATA} cteated_tender
43 43 ${access_token}= Get Variable Value ${TENDER_DATA.access.token}
44 44 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} access_token ${access_token}
45   - Log access_token: ${access_token}
46   - Log tender_id: ${TENDER_DATA.data.id}
47   - Set Global Variable ${TENDER_DATA}
48   - [return] ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id}
  45 + Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} TENDER_DATA ${TENDER_DATA}
  46 + Log ${access_token}
  47 + Log ${TENDER_DATA.data.id}
  48 + Log ${USERS.users['${ARGUMENTS[0]}'].TENDER_DATA}
  49 + [return] ${TENDER_DATA.data.tenderID}
49 50
50 51 Створити багатопредметний тендер
51 52 [Arguments] @{ARGUMENTS}
... ... @@ -66,19 +67,16 @@ ${question_id} 0
66 67 [Documentation]
67 68 ... ${ARGUMENTS[0]} == username
68 69 ... ${ARGUMENTS[1]} == tenderId
69   - ... ${ARGUMENTS[2]} == id
70 70 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
71 71 ${tender_data}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
72 72 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} tender_data ${tender_data}
73 73 [return] ${tender_data}
74 74
75   -
76 75 Обновити сторінку з тендером
77 76 [Arguments] @{ARGUMENTS}
78 77 [Documentation]
79 78 ... ${ARGUMENTS[0]} == username
80 79 ... ${ARGUMENTS[1]} == tenderId
81   - ... ${ARGUMENTS[2]} == id
82 80 openprocurement_client.Пошук тендера по ідентифікатору @{ARGUMENTS}
83 81
84 82 отримати інформацію із тендера
... ... @@ -281,48 +279,49 @@ ${question_id} 0
281 279 Завантажити документ в ставку
282 280 [Documentation]
283 281 ... ${ARGUMENTS[0]} == username
284   - ... ${ARGUMENTS[1]} == token
285   - ... ${ARGUMENTS[2]} == bid_id
  282 + ... ${ARGUMENTS[1]} == path
  283 + ... ${ARGUMENTS[2]} == tenderid
286 284 [Arguments] @{ARGUMENTS}
287 285 log ${ARGUMENTS[0]}
288 286 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}
296   - ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id}
297   - ${tender}= set_access_key ${tender} ${ARGUMENTS[1]}
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}
  287 + log ${ARGUMENTS[2]}
  288 + ${bid_id}= Get Variable Value ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].data.id}
  289 + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]}
  290 + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
  291 + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token}
  292 + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${ARGUMENTS[1]} ${tender} ${bid_id}
  293 + ${uploaded_file} = Create Dictionary filepath ${ARGUMENTS[1]} upload_responce ${responce}
  294 + log ${responce}
300 295 Log object data ${uploaded_file}
301 296 [return] ${uploaded_file}
302 297
303 298 Змінити документ в ставці
304 299 [Documentation]
305 300 ... ${ARGUMENTS[0]} == username
306   - ... ${ARGUMENTS[1]} == token
307   - ... ${ARGUMENTS[2]} == bid_id
308   - ... ${ARGUMENTS[3]} == file_id
  301 + ... ${ARGUMENTS[1]} == path
  302 + ... ${ARGUMENTS[2]} == bidid
  303 + ... ${ARGUMENTS[3]} == docid
309 304 [Arguments] @{ARGUMENTS}
310 305 log ${ARGUMENTS[0]}
311 306 log ${ARGUMENTS[1]}
312 307 log ${ARGUMENTS[2]}
313   - log ${ARGUMENTS[3]}
314   - ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id}
315   - ${tender}= set_access_key ${tender} ${ARGUMENTS[1]}
316   - ${filename}= Set Variable newfile.txt
317   - Set_To_Object ${TENDER_DATA.data} documents.title ${filename}
318   - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${filename} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]}
319   - Log object data ${reply} reply
  308 + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${TENDER['TENDER_UAID']}
  309 + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
  310 + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token}
  311 + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${ARGUMENTS[1]} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]}
  312 + ${uploaded_file} = Create Dictionary filepath ${ARGUMENTS[1]} upload_responce ${responce}
  313 + log ${responce}
  314 + Log object data ${uploaded_file}
  315 + [return] ${uploaded_file}
320 316
321   -Завантажити документ
  317 +
  318 +
  319 +
  320 +Завантажити документ
322 321 [Documentation]
323 322 ... ${ARGUMENTS[0]} == username
324   - ... ${ARGUMENTS[1]} == filename
325   - ... ${ARGUMENTS[2]} == tenderID
  323 + ... ${ARGUMENTS[1]} == filepath
  324 + ... ${ARGUMENTS[2]} == tenderUAID
326 325 [Arguments] @{ARGUMENTS}
327 326 log ${ARGUMENTS[0]}
328 327 log ${ARGUMENTS[1]}
... ... @@ -330,10 +329,10 @@ ${question_id} 0
330 329 ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]}
331 330 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID}
332 331 ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token}
333   - Set_To_Object ${TENDER_DATA.data} documents.title ${filename}
334   - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_tender_document ${filename} ${tender}
  332 + ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_document ${tender} ${ARGUMENTS[1]}
335 333 Log object data ${reply} reply
336   -
  334 + [return] ${reply}
  335 +
337 336 Отримати пропозиції
338 337 [Documentation]
339 338 ... ${ARGUMENTS[0]} == username
... ... @@ -352,13 +351,13 @@ ${question_id} 0
352 351 ... ${ARGUMENTS[0]} == username
353 352 ... ${ARGUMENTS[1]} == tenderUaID
354 353 ... ${ARGUMENTS[2]} == url
355   - ... ${ARGUMENTS[3]} == token
356 354 [Arguments] @{ARGUMENTS}
357 355 log ${ARGUMENTS[0]}
358 356 log ${ARGUMENTS[1]}
359 357 log ${ARGUMENTS[2]}
360 358 ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
361 359 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID}
  360 + ${token}= Get Variable Value ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token}
362 361 ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]}
363 362 log ${contents}
364 363 log ${filename}
... ...
... ... @@ -3,14 +3,153 @@ Library Selenium2Screenshots
3 3 Library String
4 4 Library DateTime
5 5
  6 +*** Variables ***
  7 +##Використовую такий шлях у кожного буде мінятись /yboi/. Міняйте на сві шлях до файлу
  8 +#${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
  9 +${file_path} /home/vbilos/openprocurement.robottests.buildout/Document.docx
  10 +${mail} test@mail.com
  11 +${telephone} +380976535447
  12 +
6 13 *** Keywords ***
7 14 Підготувати клієнт для користувача
8   - [Arguments] ${username}
  15 + [Arguments] @{ARGUMENTS}
9 16 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
10   - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${username}
11   - Set Window Position @{USERS.users['${username}'].position}
12   - Set Window Size @{USERS.users['${username}'].size}
13   - Log Variables
  17 + ... ${ARGUMENTS[0]} == username
  18 + Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
  19 + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
  20 + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
  21 +
  22 +# login
  23 + Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:j_idt54 10
  24 + Click Element id=mForm:j_idt54
  25 + Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:email 10
  26 + Input text id=mForm:email ${USERS.users['${username}'].login}
  27 + Input text id=mForm:pwd ${USERS.users['${username}'].password}
  28 + Click Button id=mForm:login
  29 +
  30 +Створити тендер
  31 + [Arguments] @{ARGUMENTS}
  32 + [Documentation]
  33 + ... ${ARGUMENTS[0]} == username
  34 + ... ${ARGUMENTS[1]} == tender_data
  35 + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
  36 + ${items}= Get From Dictionary ${tender_data.data} items
  37 + ${title}= Get From Dictionary ${tender_data.data} title
  38 + ${description}= Get From Dictionary ${tender_data.data} description
  39 + ${budget}= Get From Dictionary ${tender_data.data.value} amount
  40 + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount
  41 + ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName
  42 + ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
  43 + ${delivery_end_date}= convert_date_to_prom_format ${delivery_end_date}
  44 + ${cpv}= Get From Dictionary ${items[0].classification} description_ua
  45 + ${cpv_id}= Get From Dictionary ${items[0].classification} id
  46 + ${cpv_id_1}= Get Substring ${cpv_id} 0 3
  47 + ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
  48 + ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
  49 + ${code}= Get From Dictionary ${items[0].unit} code
  50 + ${quantity}= Get From Dictionary ${items[0]} quantity
  51 + ${name}= Get From Dictionary ${tender_data.data.procuringEntity.contactPoint} name
  52 +
  53 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  54 + Wait Until Page Contains Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля'] 10
  55 + Click Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля']
  56 + Wait Until Page Contains Element id=mForm:data:name
  57 + Input text id=mForm:data:name ${title}
  58 + Input text id=mForm:data:desc ${description}
  59 + Input text id=mForm:data:budget ${budget}
  60 + Input text id=mForm:data:step ${step_rate}
  61 + Click Element xpath=//*[@id='mForm:data:vat']/tbody/tr/td[1]//span
  62 + Input text id=mForm:data:dEPr_input ${delivery_end_date}
  63 + Click Element id=mForm:data:cKind_label
  64 + Click Element xpath=//div[@id='mForm:data:cKind_panel']//li[3]
  65 + Input text id=mForm:data:cCpvGr_input ${cpv_id_1}
  66 + Wait Until Page Contains Element xpath=.//*[@id='mForm:data:cCpvGr_panel']/table/tbody/tr/td[2]/span 10
  67 + Click Element xpath=.//*[@id='mForm:data:cCpvGr_panel']/table/tbody/tr/td[2]/span
  68 + Input text id=mForm:data:subject0 ${dkpp_desc}
  69 + Input text id=mForm:data:cCpv0_input ${cpv_id}
  70 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv0_panel']//td[1]/span 10
  71 + Click Element xpath=//div[@id='mForm:data:cCpv0_panel']//td[1]/span
  72 + Input text id=mForm:data:unit0_input ${code}
  73 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit0_panel']//tr/td[1] 10
  74 + Click Element xpath=//div[@id='mForm:data:unit0_panel']//tr/td[1]
  75 + Input text id=mForm:data:amount0 ${quantity}
  76 + Input text id=mForm:data:cDkpp0_input ${dkpp_id}
  77 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp0_panel']//tr[1]/td[2]/span 10
  78 + Click Element xpath=//div[@id='mForm:data:cDkpp0_panel']//tr[1]/td[2]/span
  79 + Input text id=mForm:data:rName ${name}
  80 + Input text id=mForm:data:rPhone ${telephone}
  81 + Input text id=mForm:data:rMail ${mail}
  82 + Choose File id=mForm:data:docFile_input ${file_path}
  83 + Run Keyword if '${mode}' == 'multi' Додати предмет items
  84 + Click Element id=mForm:bSave
  85 + Sleep 5
  86 + ${tender_UAid}= Get Text id=mForm:nBid
  87 + ${tender_UAid}= Get Substring ${tender_UAid} 19
  88 + ${Ids} Convert To String ${tender_UAid}
  89 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid}
  90 + [return] ${Ids}
  91 +
  92 +Set Multi Ids
  93 + [Arguments] @{ARGUMENTS}
  94 + [Documentation]
  95 + ... ${ARGUMENTS[0]} == ${tender_UAid}
  96 + ${id}= Get Text id=mForm:nBid
  97 + ${Ids} Create List ${tender_UAid} ${id}
  98 +
  99 +Додати предмет
  100 + [Arguments] @{ARGUMENTS}
  101 + [Documentation]
  102 + ... ${ARGUMENTS[0]} == items
  103 + ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description
  104 + ${dkpp_id11}= Get From Dictionary ${items[1].additionalClassifications[0]} id
  105 + ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description
  106 + ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id
  107 + ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description
  108 + ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id
  109 +
  110 + Wait Until Page Contains Element xpath=//button[@class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"] 10
  111 + Wait Until Page Contains Element xpath=//button[contains(@class, 'ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only')] 10
  112 + Wait Until Page Contains Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"] 10
  113 + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"]
  114 + Wait Until Page Contains Element id=mForm:data:subject1 10
  115 + Input text id=mForm:data:subject1 ${dkpp_desc1}
  116 + Input text id=mForm:data:cCpv1_input ${cpv_id}
  117 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv1_panel']/table/tbody/tr/td[1]/span 10
  118 + Click Element xpath=//div[@id='mForm:data:cCpv1_panel']/table/tbody/tr/td[1]/span
  119 + Input text id=mForm:data:unit1_input ${code}
  120 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit1_panel']/table/tbody/tr/td[1] 10
  121 + Click Element xpath=//div[@id='mForm:data:unit1_panel']/table/tbody/tr/td[1]
  122 + Input text id=mForm:data:amount1 ${quantity}
  123 + Input text id=mForm:data:cDkpp1_input ${dkpp_id11}
  124 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp1_panel']/table/tbody/tr/td[1]/span 10
  125 + Click Element xpath=//div[@id='mForm:data:cDkpp1_panel']/table/tbody/tr/td[1]/span
  126 + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"]
  127 + Wait Until Page Contains Element id=mForm:data:subject2 10
  128 + Input text id=mForm:data:subject2 ${dkpp_desc2}
  129 + Input text id=mForm:data:cCpv2_input ${cpv_id}
  130 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv2_panel']/table/tbody/tr/td[1]/span 10
  131 + Click Element xpath=//div[@id='mForm:data:cCpv2_panel']/table/tbody/tr/td[1]/span
  132 + Input text id=mForm:data:unit2_input ${code}
  133 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit2_panel']/table/tbody/tr/td[1] 10
  134 + Click Element xpath=//div[@id='mForm:data:unit2_panel']/table/tbody/tr/td[1]
  135 + Input text id=mForm:data:amount2 ${quantity}
  136 + Input text id=mForm:data:cDkpp2_input ${dkpp_id2}
  137 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp2_panel']/table/tbody/tr/td[1]/span 10
  138 + Click Element xpath=//div[@id='mForm:data:cDkpp2_panel']/table/tbody/tr/td[1]/span
  139 + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"]
  140 + Wait Until Page Contains Element id=mForm:data:subject3 10
  141 + Input text id=mForm:data:subject3 ${dkpp_desc3}
  142 + Input text id=mForm:data:cCpv3_input ${cpv_id}
  143 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv3_panel']/table/tbody/tr/td[1]/span 10
  144 + Click Element xpath=//div[@id='mForm:data:cCpv3_panel']/table/tbody/tr/td[1]/span
  145 + Input text id=mForm:data:unit3_input ${code}
  146 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit3_panel']/table/tbody/tr/td[1] 10
  147 + Click Element xpath=//div[@id='mForm:data:unit3_panel']/table/tbody/tr/td[1]
  148 + Input text id=mForm:data:amount3 ${quantity}
  149 + Input text id=mForm:data:cDkpp3_input ${dkpp_id3}
  150 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span 10
  151 + Click Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span
  152 +
14 153
15 154 Пошук тендера по ідентифікатору
16 155 [Arguments] @{ARGUMENTS}
... ...
... ... @@ -24,7 +24,9 @@ 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
29 31 period_interval: 2
30 32 Netcast:
... ... @@ -34,3 +36,8 @@ Netcast:
34 36 password: uStudio
35 37 timout_on_wait: 15
36 38 period_interval: 2
  39 +Newtend:
  40 + keywords_file: newtend
  41 + url: http://openprocurement:test@dev23.newtend.com
  42 + timout_on_wait: 15
  43 + period_interval: 2
\ No newline at end of file
... ...
... ... @@ -27,7 +27,7 @@ users:
27 27 login: st_org
28 28 password: 12345678
29 29 browser: firefox
30   - position: [0, 0]
  30 + position: [700, 0]
31 31 size: [640, 450]
32 32 E-tender_Provider2:
33 33 broker: E-tender
... ... @@ -41,7 +41,7 @@ users:
41 41 E-tender_Viewer:
42 42 broker: E-tender
43 43 username: E-tendertest
44   - browser: chrome
  44 + browser: firefox
45 45 position: [0, 0]
46 46 size: [640, 450]
47 47 Prom_Owner:
... ... @@ -74,6 +74,15 @@ users:
74 74 browser: chrome
75 75 position: [0, 450]
76 76 size: [640, 450]
  77 + Newtend_Owner:
  78 + broker: Newtend
  79 + username: Newtendtest
  80 + homepage: "http://dev23.newtend.com/openprocurement/#/home/page/1"
  81 + login: openprocurement@mailinator.com
  82 + password: 123123
  83 + browser: firefox
  84 + position: [0, 0]
  85 + size: [640, 450]
77 86 Netcast_Owner:
78 87 broker: Netcast
79 88 username: Netcasttest
... ... @@ -83,6 +92,15 @@ users:
83 92 browser: firefox
84 93 position: [0, 450]
85 94 size: [640, 450]
  95 + Newtend_Provider1:
  96 + broker: Newtend
  97 + username: Newtendtest
  98 + homepage: "http://dev23.newtend.com/openprocurement/tenders"
  99 + login: qtest@mailinator.com
  100 + password: 123123
  101 + browser: firefox
  102 + position: [0, 450]
  103 + size: [640, 450]
86 104 Publicbid_Owner:
87 105 broker: Publicbid
88 106 username: Publicbid
... ... @@ -91,4 +109,19 @@ users:
91 109 password: Password1
92 110 browser: firefox
93 111 position: [0, 0]
94   - size: [740, 550]
\ No newline at end of file
  112 + size: [740, 550]
  113 + Newtend_Provider2:
  114 + broker: Newtend
  115 + username: Newtendtest
  116 + homepage: "http://dev23.newtend.com/openprocurement/tenders"
  117 + login: openprocboss@mailinator.com
  118 + password: 123123
  119 + browser: firefox
  120 + position: [700, 0]
  121 + size: [640, 450]
  122 + Newtend_Viewer:
  123 + broker: Newtend
  124 + username: Newtendtest
  125 + browser: firefox
  126 + position: [0, 0]
  127 + size: [640, 450]
\ No newline at end of file
... ...
  1 +from iso8601 import parse_date
  2 +from robot.output import LOGGER
  3 +from robot.output.loggerhelper import Message
  4 +from robot.libraries.BuiltIn import BuiltIn
  5 +from robot.errors import HandlerExecutionFailed
  6 +from datetime import datetime, timedelta, date
  7 +from dateutil.parser import parse
  8 +from dateutil.tz import tzlocal
  9 +from pytz import timezone
  10 +from jsonpath_rw import parse as parse_path
  11 +import time
  12 +from op_robot_tests.tests_files.initial_data import (
  13 + test_tender_data
  14 +)
  15 +
  16 +TIMEZONE = timezone('Europe/Kiev')
  17 +
  18 +def convert_date_to_etender_format(isodate):
  19 + iso_dt=parse_date(isodate)
  20 + date_string = iso_dt.strftime("%d-%m-%Y")
  21 + return date_string
  22 +
  23 +def convert_time_to_etender_format(isodate):
  24 + iso_dt=parse_date(isodate)
  25 + time_string = iso_dt.strftime("%H:%M")
  26 + return time_string
\ No newline at end of file
... ...
... ... @@ -6,6 +6,14 @@ from faker import Factory
6 6 fake = Factory.create('uk_UA')
7 7 fake_ru = Factory.create('ru')
8 8 fake_en = Factory.create()
  9 +from tempfile import NamedTemporaryFile
  10 +
  11 +def create_fake_doc():
  12 + content = fake.text()
  13 + tf = NamedTemporaryFile(delete=False)
  14 + tf.write(content)
  15 + tf.close()
  16 + return tf.name
9 17
10 18 def test_tender_data(period_interval=2):
11 19 now = datetime.now()
... ... @@ -35,7 +43,6 @@ def test_tender_data(period_interval=2):
35 43 "contactPoint": {
36 44 "name": fake.name(),
37 45 "telephone": fake.phone_number()
38   -
39 46 }
40 47 },
41 48 "value": {
... ... @@ -84,8 +91,8 @@ def test_tender_data(period_interval=2):
84 91 }
85 92 ],
86 93 "enquiryPeriod": {
87   - "startDate": (now + timedelta(minutes=2)).isoformat(),
88   - "endDate": (now + timedelta(minutes=3)).isoformat()
  94 + "startDate": (now).isoformat(),
  95 + "endDate": (now + timedelta(minutes=1)).isoformat()
89 96 },
90 97 "tenderPeriod": {
91 98 "startDate": (now + timedelta(minutes=2)).isoformat(),
... ... @@ -152,7 +159,7 @@ def prom_test_tender_data():
152 159 "classification": {
153 160 "scheme": u"CPV",
154 161 "id": u"44617100-9",
155   - "description": u"Cartons"
  162 + "description": u"Cartons",
156 163 },
157 164 "additionalClassifications": [
158 165 {
... ... @@ -181,38 +188,38 @@ def prom_test_tender_data():
181 188 def test_tender_data_multiple_lots(period_interval=2):
182 189 now = datetime.now()
183 190 return {
184   - "title": fake.catch_phrase(),
185   - "mode": "test",
186   - "submissionMethodDetails": "quick",
187   - "description": u"Тестовий тендер",
188   - "description_en": "Test tender",
189   - "description_ru": "Тестовый тендер",
190   - "procuringEntity": {
191   - "name": fake.company(),
192   - "name_ru": fake_ru.company(),
193   - "name_en": fake_en.company(),
194   - "identifier": {
195   - "scheme": u"UA-EDR",
196   - "id": u"0000{}".format(fake.pyint()),
197   - "uri": fake.image_url(width=None, height=None)
198   - },
199   - "address": {
200   - "countryName": u"Україна",
201   - "postalCode": fake.postalcode(),
202   - "region": u"м. Київ",
203   - "locality": u"м. Київ",
204   - "streetAddress": fake.street_address()
205   - },
206   - "contactPoint": {
207   - "name": fake.name(),
208   - "telephone": fake.phone_number()
209   - }
  191 + "title": fake.catch_phrase(),
  192 + "mode": "test",
  193 + "submissionMethodDetails": "quick",
  194 + "description": u"Тестовий тендер",
  195 + "description_en": "Test tender",
  196 + "description_ru": "Тестовый тендер",
  197 + "procuringEntity": {
  198 + "name": fake.company(),
  199 + "name_ru": fake_ru.company(),
  200 + "name_en": fake_en.company(),
  201 + "identifier": {
  202 + "scheme": u"UA-EDR",
  203 + "id": u"0000{}".format(fake.pyint()),
  204 + "uri": fake.image_url(width=None, height=None)
  205 + },
  206 + "address": {
  207 + "countryName": u"Україна",
  208 + "postalCode": fake.postalcode(),
  209 + "region": u"м. Київ",
  210 + "locality": u"м. Київ",
  211 + "streetAddress": fake.street_address()
  212 + },
  213 + "contactPoint": {
  214 + "name": fake.name(),
  215 + "telephone": fake.phone_number()
  216 + }
210 217 },
211 218 "value": {
212   - "amount": 50000,
213   - "currency": u"UAH"
214   - },
215   - "minimalStep": {
  219 + "amount": 50000,
  220 + "currency": u"UAH"
  221 + },
  222 + "minimalStep": {
216 223 "amount": 100,
217 224 "currency": u"UAH"
218 225 },
... ... @@ -252,7 +259,7 @@ def test_tender_data_multiple_lots(period_interval=2):
252 259 },
253 260 "quantity": fake.pyint()
254 261 },
255   - {
  262 + {
256 263 "description": fake.catch_phrase(),
257 264 "deliveryDate": {
258 265 "endDate": (now + timedelta(days=5)).isoformat()
... ... @@ -271,7 +278,8 @@ def test_tender_data_multiple_lots(period_interval=2):
271 278 "classification": {
272 279 "scheme": u"CPV",
273 280 "id": u"44617100-9",
274   - "description": u"Cartons"
  281 + "description": u"Cartons",
  282 + "description_ua": u"Картонки"
275 283 },
276 284 "additionalClassifications": [
277 285 {
... ... @@ -286,7 +294,7 @@ def test_tender_data_multiple_lots(period_interval=2):
286 294 },
287 295 "quantity": fake.pyint()
288 296 },
289   - {
  297 + {
290 298 "description": fake.catch_phrase(),
291 299 "deliveryDate": {
292 300 "endDate": (now + timedelta(days=5)).isoformat()
... ... @@ -305,7 +313,8 @@ def test_tender_data_multiple_lots(period_interval=2):
305 313 "classification": {
306 314 "scheme": u"CPV",
307 315 "id": u"44617100-9",
308   - "description": u"Cartons"
  316 + "description": u"Cartons",
  317 + "description_ua": u"Картонки"
309 318 },
310 319 "additionalClassifications": [
311 320 {
... ... @@ -320,7 +329,7 @@ def test_tender_data_multiple_lots(period_interval=2):
320 329 },
321 330 "quantity": fake.pyint()
322 331 },
323   - {
  332 + {
324 333 "description": fake.catch_phrase(),
325 334 "deliveryDate": {
326 335 "endDate": (now + timedelta(days=5)).isoformat()
... ... @@ -339,7 +348,8 @@ def test_tender_data_multiple_lots(period_interval=2):
339 348 "classification": {
340 349 "scheme": u"CPV",
341 350 "id": u"44617100-9",
342   - "description": u"Cartons"
  351 + "description": u"Cartons",
  352 + "description_ua": u"Картонки"
343 353 },
344 354 "additionalClassifications": [
345 355 {
... ... @@ -356,12 +366,12 @@ def test_tender_data_multiple_lots(period_interval=2):
356 366 }
357 367 ],
358 368 "enquiryPeriod": {
359   - "startDate": (now + timedelta(minutes=3)).isoformat(),
360   - "endDate": (now + timedelta(minutes=4)).isoformat()
  369 + "startDate": (now).isoformat(),
  370 + "endDate": (now + timedelta(minutes=1)).isoformat()
361 371 },
362 372 "tenderPeriod": {
363   - "startDate": (now + timedelta(minutes=4)).isoformat(),
364   - "endDate": (now + timedelta(minutes=(5+period_interval))).isoformat()
  373 + "startDate": (now + timedelta(minutes=2)).isoformat(),
  374 + "endDate": (now + timedelta(minutes=(2+period_interval))).isoformat()
365 375 }
366 376 }
367 377
... ...
... ... @@ -56,6 +56,9 @@ TestSuiteSetup
56 56 Set Global Variable ${REPLIES}
57 57 ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode}
58 58 Set Global Variable ${INITIAL_TENDER_DATA}
  59 + ${TENDER}= Create Dictionary
  60 + Set Global Variable ${TENDER}
  61 + Log ${TENDER}
59 62 Log ${INITIAL_TENDER_DATA}
60 63
61 64 Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки
... ... @@ -71,7 +74,7 @@ TestSuiteSetup
71 74 ... ${ARGUMENTS[2]} == id
72 75
73 76 ${now}= Get Current Date
74   - ${delta}= Subtract Date From Date ${now} ${LAST_MODIFICATION_DATE}
  77 + ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']}
75 78 ${wait_timout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait} ${delta}
76 79 Run Keyword If ${wait_timout}>0 Sleep ${wait_timout}
77 80
... ... @@ -83,23 +86,29 @@ TestSuiteSetup
83 86 Звірити поле
84 87 [Arguments] ${username} ${field} ${subject}
85 88 ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
  89 + Should Not Be Equal ${field_response} ${None}
86 90 Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker}
87 91
88 92 Звірити поле створеного тендера
89 93 [Arguments] ${initial} ${tender_data} ${field}
90 94 ${field_value}= Get_From_Object ${initial} ${field}
91 95 ${field_response}= Get_From_Object ${tender_data} ${field}
  96 + Should Not Be Equal ${field_response} ${None}
  97 + Should Not Be Equal ${field_value} ${None}
92 98 Should Be Equal ${field_value} ${field_response}
93 99
94 100 Звірити дату тендера
95 101 [Arguments] ${username} ${field}
96 102 ${isodate}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field}
  103 + Should Not Be Equal ${isodate} ${None}
97 104 Звірити дату ${username} ${field} ${isodate}
98 105
99 106 Звірити дату
100 107 [Arguments] ${username} ${field} ${subject}
101 108 ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
102 109 ${returned}= compare_date ${subject} ${field_date}
  110 + Should Not Be Equal ${field_date} ${None}
  111 + Should Not Be Equal ${returned} ${None}
103 112 Should Be True '${returned}' == 'True'
104 113
105 114 Звірити поля предметів закупівлі багатопредметного тендера
... ...
... ... @@ -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 +
... ...
... ... @@ -18,8 +18,9 @@ import time
18 18 from .initial_data import (
19 19 test_tender_data, test_question_data, test_question_answer_data,
20 20 test_bid_data, test_award_data, test_complaint_data, test_complaint_reply_data, test_tender_data_multiple_lots,
21   - auction_bid, prom_test_tender_data
  21 + auction_bid, prom_test_tender_data, create_fake_doc
22 22 )
  23 +import calendar
23 24
24 25 TIMEZONE = timezone('Europe/Kiev')
25 26
... ... @@ -162,4 +163,24 @@ def wait_to_date(date_stamp):
162 163 wait_seconds += 2
163 164 if wait_seconds < 0:
164 165 return 0
165   - return wait_seconds
\ No newline at end of file
  166 + return wait_seconds
  167 +
  168 +def newtend_date_picker_index(isodate):
  169 + now = datetime.today()
  170 + date_str = '01' + str(now.month) + str(now.year)
  171 + first_day_of_month = datetime.strptime(date_str, "%d%m%Y")
  172 + mod = first_day_of_month.isoweekday() - 2
  173 + iso_dt=parse_date(isodate)
  174 + last_day_of_month = calendar.monthrange(now.year, now.month)[1]
  175 + #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO"))
  176 + if now.day>iso_dt.day:
  177 + mod = calendar.monthrange(now.year, now.month)[1] + mod
  178 + return mod + iso_dt.day
  179 +
  180 +def Add_time_for_GUI_FrontEnds(INITIAL_TENDER_DATA):
  181 + now = datetime.now()
  182 + INITIAL_TENDER_DATA.data.enquiryPeriod['startDate'] = (now + timedelta(minutes=2)).isoformat()
  183 + INITIAL_TENDER_DATA.data.enquiryPeriod['endDate'] = (now + timedelta(minutes=3)).isoformat()
  184 + INITIAL_TENDER_DATA.data.tenderPeriod['startDate'] = (now + timedelta(minutes=4)).isoformat()
  185 + INITIAL_TENDER_DATA.data.tenderPeriod['endDate'] = (now + timedelta(minutes=5)).isoformat()
  186 + return INITIAL_TENDER_DATA
\ No newline at end of file
... ...
... ... @@ -26,41 +26,47 @@ ${question_id} 0
26 26 *** Test Cases ***
27 27 Можливість оголосити однопредметний тендер
28 28 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
29   - log ${TEMPDIR}
30   - log ${CURDIR}
31   - ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA}
32   - ${TENDER_ID}= Get From List ${ids} 0
33   - Set Global Variable ${TENDER_ID}
  29 + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера),
  30 + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA}
34 31 ${LAST_MODIFICATION_DATE}= Get Current Date
35   - Set Global Variable ${LAST_MODIFICATION_DATE}
  32 + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID}
  33 + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE}
  34 + log ${TENDER}
36 35
37 36 Можливасть додати тендерну документацію
38 37 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ
39   - ${filename}= Set Variable file.txt
40   - Викликати для учасника ${tender_owner} Завантажити документ ${filename} ${TENDER_ID}
  38 + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі
  39 + ${filepath}= create_fake_doc
  40 + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']}
  41 + ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply}
  42 + log ${file_upload_process_data}
  43 + Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data}
  44 + Log ${USERS.users['${tender_owner}']}
  45 +
41 46
42 47 Можливість подати скаргу на умови
43 48 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови
44   - Викликати для учасника ${provider} Подати скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  49 + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі
  50 + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
45 51 ${LAST_MODIFICATION_DATE}= Get Current Date
46   - Set Global Variable ${LAST_MODIFICATION_DATE}
  52 + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE}
47 53
48 54 Можливість побачити скаргу користувачем
49 55 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
50   - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  56 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
51 57
52 58 можливість побачити скаргу анонімом
53 59 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
54   - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  60 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
55 61
56 62 Пошук однопредметного тендера по ідентифікатору
57 63 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору
58 64 Дочекатись синхронізації з майданчиком ${viewer}
59   - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID}
60   -
  65 + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
  66 +
61 67 ######
62 68 #Відображення основних даних оголошеного тендера:
63   -#заголовок, опис, бюджет, тендерна документація,
  69 +#заголовок, опис, бюджет, тендерна документація,
64 70 #procuringEntity, періоди уточнень/прийому-пропозицій, мінімального кроку
65 71
66 72 Відображення заголовоку оголошеного тендера
... ... @@ -78,7 +84,7 @@ ${question_id} 0
78 84 Відображення tenderID оголошеного тендера
79 85 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
80 86 ${field_response}= Викликати для учасника ${viewer} отримати інформацію із тендера tenderID
81   - Should Be Equal ${TENDER_ID} ${field_response} Майданчик ${USERS.users['${viewer}'].broker}
  87 + Should Be Equal ${TENDER['TENDER_UAID']} ${field_response} Майданчик ${USERS.users['${viewer}'].broker}
82 88
83 89 Відображення procuringEntity.name оголошеного тендера
84 90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
... ... @@ -104,26 +110,18 @@ ${question_id} 0
104 110 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
105 111 Звірити поле тендера ${viewer} minimalStep.amount
106 112
107   -Відображення тендерної документації оголошеного тендера
108   - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
109   - Звірити поле тендера ${viewer} documents.title
110   - #documents.format
111   - #documents.url
112   - #documents.datePublished
113   - #documents.dateModified
114   - #documents.id
115   -
116 113 Можливість редагувати однопредметний тендер
117 114 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
118   - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER_ID} description description
  115 + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description
  116 +
  117 +Можливість додати позицію закупівлі в тендер
  118 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  119 + Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER['TENDER_UAID']} 3
  120 +
  121 +Можливість видалити позиції закупівлі тендера
  122 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  123 + Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER['TENDER_UAID']} 2
119 124
120   -#Можливість додати позицію закупівлі в тендер
121   -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
122   -# Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER_ID} 3
123   -#
124   -#Можливість видалити позиції закупівлі тендера
125   -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
126   -# Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER_ID} 2
127 125
128 126 #######
129 127 #Відображення однопредметного тендера
... ... @@ -179,15 +177,15 @@ ${question_id} 0
179 177
180 178 Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера
181 179 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
182   - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.scheme
  180 + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].scheme
183 181
184 182 Відображення ідентифікатора додаткової класифікації позицій закупівлі однопредметного тендера
185 183 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
186   - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.id
  184 + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].id
187 185
188 186 Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера
189 187 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
190   - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.description
  188 + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].description
191 189
192 190 Відображення назви одиниці позицій закупівлі однопредметного тендера
193 191 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
... ... @@ -206,14 +204,14 @@ ${question_id} 0
206 204
207 205 Задати питання
208 206 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання
209   - Викликати для учасника ${provider} Задати питання ${TENDER_ID} ${QUESTIONS[${question_id}]}
  207 + Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]}
210 208 ${now}= Get Current Date
211 209 Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now}
212 210
213 211 Відображення заголовоку анонімного питання без відповіді
214 212 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
215 213 Дочекатись синхронізації з майданчиком ${viewer}
216   - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID}
  214 + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']}
217 215 Звірити поле ${viewer} questions[${question_id}].title ${QUESTIONS[${question_id}].data.title}
218 216
219 217 Відображення опис анонімного питання без відповіді
... ... @@ -222,208 +220,187 @@ ${question_id} 0
222 220
223 221 Відображення дати анонімного питання без відповіді
224 222 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
225   - Звірити дату ${viewer} questions[${question_id}].date ${QUESTIONS[${question_id}].data.date}
  223 + Звірити дату ${viewer} questions[${question_id}].date ${QUESTIONS[${question_id}].data.date}
226 224
227 225 Неможливість подати цінову пропозицію до початку періоду подачі пропозицій bidder1
228 226 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
229 227 ${bid}= test bid data
230 228 Log ${bid}
231   - ${biddingresponce1}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER_ID} ${bid}
  229 + ${bidresponces}= Create Dictionary
  230 + ${bid_before_biddperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid}
  231 + Set To Dictionary ${bidresponces} bid_before_biddperiod_resp ${bid_before_biddperiod_resp}
  232 + Set To Dictionary ${USERS.users['${provider}']} bidresponces ${bidresponces}
  233 + log ${USERS.users['${provider}']}
232 234
233 235 #######
234 236 #Відображення відповіді на запитання
235 237 #
236 238 Відповісти на запитання
237 239 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання
238   - Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER_ID} 0 ${ANSWERS[0]}
  240 + Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]}
239 241 ${now}= Get Current Date
240 242 Set To Dictionary ${ANSWERS[${question_id}].data} date ${now}
241 243
242 244 Відображення відповіді на запитання
243 245 [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання
244 246 Дочекатись синхронізації з майданчиком ${viewer}
245   - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID}
  247 + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']}
246 248 Звірити поле ${viewer} questions[${question_id}].answer ${ANSWERS[${question_id}].data.answer}
247 249
248 250 Можливість побачити скаргу користувачем під час періоду уточнень
249 251 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
250   - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  252 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
251 253
252 254 можливість побачити скаргу анонімом під час періоду уточнень
253 255 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
254   - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  256 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
255 257
256 258 Подати цінову пропозицію bidder
257 259 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
258 260 Дочекатись дати початоку прийому пропозицій
259 261 ${bid}= test bid data
260 262 Log ${bid}
261   - ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_ID} ${bid}
  263 + ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
262 264 Set Global Variable ${biddingresponce0}
263 265 log ${biddingresponce0}
264 266
265 267 Можливість скасувати цінову пропозицію
266 268 [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію
267   - ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER_ID} ${biddingresponce0}
  269 + ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponce0}
268 270
269 271 Подати повторно цінову пропозицію першим учасником
270 272 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
271 273 Дочекатись дати початоку прийому пропозицій
272 274 ${bid}= test bid data
273 275 Log ${bid}
274   - ${biddingresponce1}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_ID} ${bid}
275   - Set Global Variable ${biddingresponce1}
276   - log ${biddingresponce1}
  276 + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  277 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} resp ${resp}
  278 + log ${resp}
  279 + log ${USERS.users['${provider}'].bidresponces}
277 280
278 281 Можливість змінити повторну цінову пропозицію до 50000
279 282 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
280   - Set To Dictionary ${biddingresponce1.data.value} amount 50000
281   - Log ${biddingresponce1.data.value}
282   - ${biddingresponce2}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1}
283   - Set Global Variable ${biddingresponce2}
284   - log ${biddingresponce2}
  283 + Set To Dictionary ${USERS.users['${provider}'].bidresponces['resp'].data.value} amount 50000
  284 + Log ${USERS.users['${provider}'].bidresponces['resp'].data.value}
  285 + ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponces['resp']}
  286 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} fixbidto50000resp ${fixbidto50000resp}
  287 + log ${fixbidto50000resp}
285 288
286   -Можливість змінити повторну цінову пропозицію до 400
  289 +Можливість змінити повторну цінову пропозицію до 10
287 290 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
288   - Set To Dictionary ${biddingresponce1.data.value} amount 400
289   - Log ${biddingresponce1.data.value}
290   - ${biddingresponce3}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1}
291   - Set Global Variable ${biddingresponce3}
292   - log ${biddingresponce3}
  291 + Set To Dictionary ${USERS.users['${provider}'].bidresponces['resp'].data.value} amount 10
  292 + Log ${USERS.users['${provider}'].bidresponces['fixbidto50000resp'].data.value}
  293 + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponces['resp']}
  294 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} fixbidto10resp ${fixbidto10resp}
  295 + log ${fixbidto10resp}
293 296
294 297 Завантажити документ першим учасником в повторну пропозицію
295 298 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
296 299 log ${USERS.users['${provider}'].broker}
297   - log ${biddingresponce1}
298   - ${bid_id}= get variable value ${biddingresponce1.data.id}
299   - ${token1}= Get Variable Value ${biddingresponce1.access.token}
300   - log ${token1}
301   - ${uploaded_file_data}= Викликати для учасника ${provider} Завантажити документ в ставку ${token1} ${bid_id}
302   - log ${uploaded_file_data}
303   - Set Global Variable ${uploaded_file_data}
304   -
  300 + ${filepath}= create_fake_doc
  301 + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']}
  302 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_upload ${bid_doc_upload}
305 303
306 304 порівняти документ
307 305 [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}
  306 + ${url}= Get Variable Value ${USERS.users['${provider}'].bidresponces['bid_doc_upload']['upload_responce'].data.url}
  307 + ${doc} ${flnnm}= Викликати для учасника ${provider} отримати документ ${TENDER['TENDER_UAID']} ${url}
  308 +
  309 + FIXME: finish the keyword
  310 +
314 311 Should Be Equal ${flcntnt} ${doc}
315 312 Should Be Equal ${flpth} ${flnnm}
316 313
317   -
318 314 Можливість змінити документацію цінової пропозиції
319 315 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
320 316 log ${USERS.users['${provider}'].broker}
321   - log ${biddingresponce1}
322   - ${bid_id}= get variable value ${biddingresponce1.data.id}
323   - ${token1}= Get Variable Value ${biddingresponce1.access.token}
324   - ${resp}= Get From Dictionary ${uploaded_file_data} upload_responce
325   - ${upload_doc_responce_id}= get variable value ${resp.data.id}
326   - log ${token1}
327   - Викликати для учасника ${provider} Змінити документ в ставці ${token1} ${bid_id} ${upload_doc_responce_id}
  317 + ${filepath}= create_fake_doc
  318 + ${bidid}= Get Variable Value ${USERS.users['${provider}'].bidresponces['resp'].data.id}
  319 + ${docid}= Get Variable Value ${USERS.users['${provider}'].bidresponces['bid_doc_upload']['upload_responce'].data.id}
  320 + ${bid_doc_modified}= Викликати для учасника ${provider} Змінити документ в ставці ${filepath} ${bidid} ${docid}
  321 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_modified ${bid_doc_modified}
328 322
329 323 Неможливість задати запитання після закінчення періоду уточнень
330 324 [Documentation]
331 325 ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed"
332 326 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання
333   - ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER_ID} ${questions[${question_id}]}
  327 + ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER['TENDER_UAID']} ${questions[${question_id}]}
334 328
335 329 Подати цінову пропозицію другим учасником
336 330 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
337 331 Дочекатись дати початоку прийому пропозицій
338 332 ${bid}= test bid data
339 333 Log ${bid}
340   - ${biddingresponce5}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER_ID} ${bid}
341   - Set Global Variable ${biddingresponce5}
342   - log ${biddingresponce5}
  334 + ${bidresponces}= Create Dictionary
  335 + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  336 + Set To Dictionary ${bidresponces} resp ${resp}
  337 + Set To Dictionary ${USERS.users['${provider1}']} bidresponces ${bidresponces}
  338 + log ${resp}
  339 + log ${USERS.users['${provider1}'].bidresponces}
343 340
344 341 Неможливість побачити цінові пропозиції учасників під час прийому пропозицій
345 342 [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію
346   - ${field_date}= Викликати для учасника ${viewer} отримати інформацію із тендера B
  343 +
  344 + FIXME: finish the keyword
  345 +
  346 + ${field_date}= Викликати для учасника ${viewer} отримати інформацію із тендера
347 347
348 348 Завантажити документ другим учасником
349   - [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
  349 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість прийняти пропозицію переможця
350 350 log ${USERS.users['${provider1}'].broker}
351   - ${bid_id2}= get variable value ${biddingresponce5.data.id}
352   - ${token2}= Get Variable Value ${biddingresponce5.access.token}
353   - log ${token2}
354   - Викликати для учасника ${provider1} Завантажити документ в ставку ${token2} ${bid_id2}
  351 + ${filepath}= create_fake_doc
  352 + ${bid_doc_upload}= Викликати для учасника ${provider1} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']}
  353 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} bid_doc_upload ${bid_doc_upload}
355 354
356 355 Можливість побачити скаргу користувачем під час подачі пропозицій
357 356 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
358   - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  357 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
359 358
360 359 можливість побачити скаргу анонімом під час подачі пропозицій
361 360 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
362   - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]}
  361 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
363 362
364 363 Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій
365 364 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій
366 365 Дочекатись дати закінчення прийому пропозицій
367   - Set To Dictionary ${biddingresponce1.data.value} amount 50000
368   - Log ${biddingresponce5.data.value}
369   - ${biddingresponce6}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}
370   - Set Global Variable ${biddingresponce6}
371   - log ${biddingresponce6}
  366 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces['resp'].data.value} amount 50000
  367 + Log ${USERS.users['${provider1}'].bidresponces['resp'].data.value}
  368 + ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']}
  369 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} failfixbidto50000resp ${failfixbidto50000resp}
  370 + log ${failfixbidto50000resp}
372 371
373 372 Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій
374 373 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій
375   - Set To Dictionary ${biddingresponce5.data.value} amount 1
376   - Log ${biddingresponce1.data.value}
377   - ${biddingresponce7}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}
378   - Set Global Variable ${biddingresponce7}
379   - log ${biddingresponce3}
  374 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces['resp'].data.value} amount 1
  375 + Log ${USERS.users['${provider1}'].bidresponces['resp'].data.value}
  376 + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']}
  377 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} failfixbidto1resp ${failfixbidto1resp}
  378 + log ${failfixbidto1resp}
380 379
381 380 Неможливість скасувати цінову пропозицію
382   - [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію
383   - ${biddingresponce8}= Викликати для учасника ${provider} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}
  381 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію
  382 + ${biddingresponce}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']}
384 383
385 384 Неможливість завантажити документ другим учасником після закінчення прийому пропозицій
386   - [Tags] ${USERS.users['${provider}'].broker}: Неможливість документ першим учасником після закінчення прийому пропозицій
387   - log ${USERS.users['${provider1}'].broker}
388   - log ${biddingresponce5}
389   - ${bid_id}= get variable value ${biddingresponce5.data.id}
390   - ${token1}= Get Variable Value ${biddingresponce5.access.token}
391   - log ${token1}
392   - ${upload_doc_responce2}= Викликати для учасника ${provider1} Завантажити документ в ставку shouldfail ${token1} ${bid_id}
393   - log ${upload_doc_responce_2}
394   - Set Global Variable ${upload_doc_responce2}
395   -
396   -Неможливість змінити документацію цінової пропозиції після закінчення прийому пропозицій
397   - [Tags] ${USERS.users['${provider}'].broker}: Неможливість змінити документацію цінової пропозиції після закінчення прийому пропозицій
398   - log ${USERS.users['${provider}'].broker}
399   - log ${biddingresponce5}
400   - ${bid_id}= get variable value ${biddingresponce5.data.id}
401   - ${token1}= Get Variable Value ${biddingresponce5.access.token}
402   - ${upload_doc_responce_id2}= get variable value ${upload_doc_responce2[0].data.id}
403   - log ${upload_doc_responce_id2}
404   - log ${token1}
405   - Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id2}
  385 + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість документ першим учасником після закінчення прийому пропозицій
  386 + ${filepath}= create_fake_doc
  387 + ${bid_doc_upload_fail}= Викликати для учасника ${provider1} Завантажити документ в ставку shouldfail ${filepath} ${TENDER['TENDER_UAID']}
  388 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} bid_doc_upload_fail ${bid_doc_upload_fail}
  389 +
406 390
407 391 Неможливість змінити існуючу документацію цінової пропозиції після закінчення прийому пропозицій
408   - [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
409   - log ${USERS.users['${provider}'].broker}
410   - log ${biddingresponce1}
411   - ${bid_id}= get variable value ${biddingresponce1.data.id}
412   - ${token1}= Get Variable Value ${biddingresponce1.access.token}
413   - ${upload_doc_responce_id}= get variable value ${upload_doc_responce[0].data.id}
414   - log ${token1}
415   - Викликати для учасника ${provider} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id}
416   -
417   -Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій
418   - [Tags] ${USERS.users['${provider}'].broker}: Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій
419   - ${biddingresponce8}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}
420   - Set Global Variable ${biddingresponce8}
421   - log ${biddingresponce8}
  392 + [Tags] ${USERS.users['${provider1}'].broker}:
  393 + ${filepath}= create_fake_doc
  394 + ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id}
  395 + ${docid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['bid_doc_upload']['upload_responce'].data.id}
  396 + ${bid_doc_modified_failed}= Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${filepath} ${bidid} ${docid}
  397 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_modified_failed ${bid_doc_modified_failed}
  398 +
422 399
423 400 Вичитати цінову пропозицію
424   - sleep 120
425   - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
426   - ${bid_id} = get variable value ${biddingresponce1.data.id}
427   - ${token1}= Get Variable Value ${biddingresponce1.access.token}
428   - ${bids}= Викликати для учасника ${provider} Отримати пропозиції ${TENDER_ID} ${bid_id} ${token1}
  401 +# sleep 120
  402 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
  403 + ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id}
  404 + ${token}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].access.token}
  405 + ${bids}= Викликати для учасника ${provider1} Отримати пропозиції ${TENDER['TENDER_UAID']} ${bidid} ${token}
429 406 log ${bids}
\ No newline at end of file
... ...
Please register or login to post a comment