Commit c609812406730577c372a6ac3fb02e28523afdc5

Authored by biviktorqc
2 parents a6265c22 4fab4b01

Merge branch 'Newtend', Single+Multi

  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 + ${current_location}= Get Location
  74 + ${tender_id}= Get Substring ${current_location} -41 -9
  75 + ${Ids} Create List ${tender_UAid} ${tender_id}
  76 + [return] ${Ids}
  77 +
  78 +
  79 +Set datetime
  80 + [Arguments] @{ARGUMENTS}
  81 + [Documentation]
  82 + ... ${ARGUMENTS[0]} == control_id
  83 + ... ${ARGUMENTS[1]} == date
  84 +#Pick Date
  85 + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/../span[@class="calendar-btn"]
  86 + Wait Until Page Contains Element xpath=//td[@class="text-center ng-scope"] 30
  87 + ${datapicker_id}= Get Element Attribute xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@class="text-center ng-scope"]@id
  88 + ${datapicker_id}= Get Substring ${datapicker_id} 0 -1
  89 + ${date_index}= newtend_date_picker_index ${ARGUMENTS[1]}
  90 + ${datapicker_id}= Convert To String ${datapicker_id}${date_index}
  91 + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@id="${datapicker_id}"]/button
  92 +#Set time
  93 + ${hous}= Get Substring ${ARGUMENTS[1]} 11 13
  94 + ${minutes}= Get Substring ${ARGUMENTS[1]} 14 16
  95 + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="hours"] ${hous}
  96 + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="minutes"] ${minutes}
  97 +
  98 +Додати придмет
  99 + [Arguments] @{ARGUMENTS}
  100 + [Documentation]
  101 + ... ${ARGUMENTS[0]} == items_n
  102 + ... ${ARGUMENTS[1]} == index
  103 +## Get values for item
  104 + ${items_description}= Get From Dictionary ${ARGUMENTS[0]} description
  105 + ${quantity}= Get From Dictionary ${ARGUMENTS[0]} quantity
  106 + ${cpv}= Get From Dictionary ${ARGUMENTS[0].classification} description_ua
  107 + ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description
  108 + ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id
  109 + ${unit}= Get From Dictionary ${ARGUMENTS[0].unit} name
  110 + ${deliverydate_end_date}= Get From Dictionary ${ARGUMENTS[0].deliveryDate} endDate
  111 + ${countryName}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} countryName
  112 + ${ZIP}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} postalCode
  113 + ${region}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} region
  114 + ${locality}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} locality
  115 + ${streetAddress}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} streetAddress
  116 +# Add item
  117 + Input text id=itemDescription${ARGUMENTS[1]} ${items_description}
  118 + Input text id=quantity${ARGUMENTS[1]} ${quantity}
  119 + Click Element xpath=//a[contains(text(), "единицы измерения")]
  120 + Click Element xpath=//a[contains(text(), "единицы измерения")]/..//a[contains(text(), '${unit}')]
  121 +# Set CPV
  122 + Click Element id=classifier1${ARGUMENTS[1]}
  123 + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100
  124 + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${cpv}
  125 + Wait Until Page Contains Element xpath=//span[contains(text(),'${cpv}')] 20
  126 + Click Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"]
  127 + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"]
  128 +# Set ДКПП
  129 + Click Element id=classifier2${ARGUMENTS[1]}
  130 + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100
  131 + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${dkpp_desc}
  132 + Wait Until Page Contains Element xpath=//span[contains(text(),'${dkpp_id}')] 100
  133 + Click Element xpath=//span[contains(text(),'${dkpp_id}')]/../..//input[@class="ng-pristine ng-untouched ng-valid"]
  134 + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"]
  135 +# Set Delivery Address
  136 + Click Element id=deliveryAddress${ARGUMENTS[1]}
  137 + Wait Until Page Contains Element xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] 100
  138 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${countryName}
  139 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${ZIP}
  140 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${region}
  141 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${locality}
  142 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${streetAddress}
  143 + Click Element xpath=//button[@class="btn btn-lg single-btn ng-binding"]
  144 +# Set Item Datetime
  145 + Set datetime end-date-delivery${ARGUMENTS[1]} ${deliverydate_end_date}
  146 +
  147 +Додати багато придметів
  148 + [Arguments] @{ARGUMENTS}
  149 + [Documentation]
  150 + ... ${ARGUMENTS[0]} == items
  151 + ${Items_length}= Get Length ${items}
  152 + : FOR ${INDEX} IN RANGE 1 ${Items_length}
  153 + \ Click Element xpath=//a[@class="icon-black plus-black remove-field ng-scope"]
  154 + \ Додати придмет ${items[${INDEX}]} ${INDEX}
  155 +
  156 +
  157 +
  158 +
  159 +
  160 +
  161 +
  162 +#### Not reworked for Newtend ####
  163 +
  164 +Oтримати internal id по UAid
  165 + [Arguments] @{ARGUMENTS}
  166 + [Documentation]
  167 + ... ${ARGUMENTS[0]} == username
  168 + ... ${ARGUMENTS[1]} == tenderid
  169 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  170 + ${current_location}= Get Location
  171 + ${tender_id}= Fetch From Right ${current_location} /
  172 +### harcode Idis bacause issues on the E-tender side, to remove, 1 line:
  173 + ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2
  174 + log ${internal_id}
  175 + [return] ${internal_id}
  176 +
  177 +Пошук тендера по ідентифікатору
  178 + [Arguments] @{ARGUMENTS}
  179 + [Documentation]
  180 + ... ${ARGUMENTS[0]} == username
  181 + ... ${ARGUMENTS[1]} == tenderId
  182 +
  183 + Switch browser ${ARGUMENTS[0]}
  184 + Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
  185 + Wait Until Page Contains Список закупівель 10
  186 + sleep 1
  187 + Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]}
  188 + Click Link jquery=a[ng-click='search()']
  189 + sleep 2
  190 + Click Link jquery=a[href^="#/tenderDetailes"]
  191 + Wait Until Page Contains ${ARGUMENTS[1]} 10
  192 + sleep 1
  193 + Capture Page Screenshot
  194 +
  195 +обновити сторінку з тендером
  196 + [Arguments] @{ARGUMENTS}
  197 + [Documentation]
  198 + ... ${ARGUMENTS[0]} == username
  199 + ... ${ARGUMENTS[1]} == tenderId
  200 + ... ${ARGUMENTS[2]} == id
  201 + ${current_location}= Get Location
  202 + Run keyword if '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page
  203 + Run keyword unless '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Пошук тендера по ідентифікатору @{ARGUMENTS}
  204 + Wait Until Page Contains ${ARGUMENTS[1]} 10
  205 + sleep 1
  206 +
  207 +отримати інформацію із тендера
  208 + [Arguments] @{ARGUMENTS}
  209 + [Documentation]
  210 + ... ${ARGUMENTS[0]} == username
  211 + ... ${ARGUMENTS[1]} == fieldname
  212 + Switch browser ${ARGUMENTS[0]}
  213 + ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]}
  214 + [return] ${return_value}
  215 +
  216 +Відмітити на сторінці поле з тендера
  217 + [Arguments] ${fieldname} ${locator}
  218 + ${last_note_id}= Add pointy note ${locator} Found ${fieldname} width=200 position=bottom
  219 + Align elements horizontally ${locator} ${last_note_id}
  220 + sleep 1
  221 + Remove element ${last_note_id}
  222 +
  223 +Отримати тест із поля і показати на сторінці
  224 + [Arguments] ${fieldname}
  225 + sleep 3
  226 +# відмітити на сторінці поле з тендера ${fieldname} ${locator.${fieldname}}
  227 + ${return_value}= Get Text ${locator.${fieldname}}
  228 + [return] ${return_value}
  229 +
  230 +отримати інформацію про tenderId
  231 + ${return_value}= Отримати тест із поля і показати на сторінці tenderId
  232 + [return] ${return_value.split(' ')[1]}
  233 +
  234 +отримати інформацію про title
  235 + ${return_value}= Отримати тест із поля і показати на сторінці title
  236 + [return] ${return_value}
  237 +
  238 +отримати інформацію про description
  239 + ${return_value}= Отримати тест із поля і показати на сторінці description
  240 + [return] ${return_value}
  241 +
  242 +отримати інформацію про minimalStep.amount
  243 + ${return_value}= Отримати тест із поля і показати на сторінці minimalStep.amount
  244 + ${return_value}= Convert To Number ${return_value.split(' ')[0]}
  245 + [return] ${return_value}
  246 +
  247 +отримати інформацію про procuringEntity.name
  248 + ${return_value}= Отримати тест із поля і показати на сторінці procuringEntity.name
  249 + [return] ${return_value}
  250 +
  251 +
  252 +отримати інформацію про value.amount
  253 + ${return_value}= Отримати тест із поля і показати на сторінці value.amount
  254 + ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3])
  255 + ${return_value}= Convert To Number ${return_value}
  256 + [return] ${return_value}
  257 +
  258 +отримати інформацію про tenderPeriod.startDate
  259 + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.startDate
  260 + [return] ${return_value}
  261 +
  262 +отримати інформацію про tenderPeriod.endDate
  263 + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.endDate
  264 + [return] ${return_value}
  265 +
  266 +отримати інформацію про enquiryPeriod.startDate
  267 + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.startDate
  268 + [return] ${return_value}
  269 +
  270 +отримати інформацію про enquiryPeriod.endDate
  271 + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.endDate
  272 + [return] ${return_value}
  273 +
  274 +
  275 +отримати інформацію про items[${item_id}].description
  276 + відмітити на сторінці поле з тендера items[${item_id}].description jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
  277 + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
  278 + [return] ${return_value}
  279 +
  280 +отримати інформацію про items[${item_id}].quantity
  281 + відмітити на сторінці поле з тендера items[${item_id}].quantity jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)>
  282 + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)>
  283 + ${return_value}= Convert To Number ${return_value}
  284 + [return] ${return_value}
  285 +
  286 +отримати інформацію про items[${item_id}].classification.id
  287 + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  288 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  289 + [return] ${return_value.split(' ')[0]}
  290 +
  291 +отримати інформацію про items[${item_id}].classification.scheme
  292 + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)>
  293 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)>
  294 + [return] ${return_value.split(' ')[0]}
  295 +
  296 +отримати інформацію про items[${item_id}].classification.description
  297 + відмітити на сторінці поле з тендера classification.description jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  298 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  299 + ${return_value}= catenate @{return_value.split(' ')[1:]}
  300 + [return] ${return_value}
  301 +
  302 +отримати інформацію про items[${item_id}].deliveryAddress
  303 + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryAddress
  304 + [return] ${return_value}
  305 +
  306 +отримати інформацію про items[${item_id}].deliveryDate
  307 + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryDate
  308 + [return] ${return_value}
  309 +
  310 +отримати інформацію про questions[${question_id}].title
  311 + відмітити на сторінці поле з тендера questions title jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)>
  312 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)>
  313 + [return] ${return_value}
  314 +
  315 +отримати інформацію про questions[${question_id}].description
  316 + відмітити на сторінці поле з тендера questions description jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
  317 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
  318 + [return] ${return_value}
  319 +
  320 +отримати інформацію про questions[${question_id}].date
  321 + відмітити на сторінці поле з тендера question date jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
  322 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
  323 + [return] ${return_value}
  324 +
  325 +отримати інформацію про questions[${question_id}].answer
  326 + відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last>
  327 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
  328 + [return] ${return_value}
  329 +
  330 +Подати цінову пропозицію
  331 + [Arguments] @{ARGUMENTS}
  332 + [Documentation]
  333 + ... ${ARGUMENTS[0]} == username
  334 + ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID}
  335 + ... ${ARGUMENTS[2]} == test_bid_data
  336 +
  337 + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount
  338 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  339 + Wait Until Page Contains Інформація про процедуру закупівлі 100
  340 + Wait Until Page Contains Element id=amount 10
  341 + Input text id=amount ${bid}
  342 + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']
  343 +
  344 +Задати питання
  345 + [Arguments] @{ARGUMENTS}
  346 + [Documentation]
  347 + ... ${ARGUMENTS[0]} = username
  348 + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
  349 + ... ${ARGUMENTS[2]} = question_data
  350 +
  351 + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
  352 + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
  353 +
  354 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  355 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  356 +
  357 + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100
  358 + Click Element jquery=a[href^="#/addQuestion/"]
  359 + Wait Until Page Contains Element id=title
  360 + Input text id=title ${title}
  361 + Input text id=description ${description}
  362 + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
  363 +
  364 +Відповісти на питання
  365 + [Arguments] @{ARGUMENTS}
  366 + [Documentation]
  367 + ... ${ARGUMENTS[0]} = username
  368 + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
  369 + ... ${ARGUMENTS[2]} = 0
  370 + ... ${ARGUMENTS[3]} = answer_data
  371 +
  372 + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer
  373 +
  374 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  375 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  376 +
  377 + Click Element xpath=//div[div/pre[1]]/div[1]
  378 + Input text xpath=//div[textarea]/textarea ${answer}
  379 + Click Element xpath=//div[textarea]/span/button[1]
... ...
... ... @@ -26,3 +26,8 @@ Netcast:
26 26 keywords_file: netcast
27 27 url: http://dz2.byustudio.in.ua
28 28 timout_on_wait: 15
  29 +Newtend:
  30 + keywords_file: newtend
  31 + url: http://openprocurement:test@dev23.newtend.com
  32 + timout_on_wait: 15
  33 + 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,3 +74,36 @@ 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]
  86 + Newtend_Provider1:
  87 + broker: Newtend
  88 + username: Newtendtest
  89 + homepage: "http://dev23.newtend.com/openprocurement/tenders"
  90 + login: qtest@mailinator.com
  91 + password: 123123
  92 + browser: firefox
  93 + position: [700, 0]
  94 + size: [640, 450]
  95 + Newtend_Provider2:
  96 + broker: Newtend
  97 + username: Newtendtest
  98 + homepage: "http://dev23.newtend.com/openprocurement/tenders"
  99 + login: openprocboss@mailinator.com
  100 + password: 123123
  101 + browser: firefox
  102 + position: [700, 0]
  103 + size: [640, 450]
  104 + Newtend_Viewer:
  105 + broker: Newtend
  106 + username: Newtendtest
  107 + browser: firefox
  108 + position: [0, 0]
  109 + size: [640, 450]
\ No newline at end of file
... ...
... ... @@ -65,7 +65,8 @@ def test_tender_data(period_interval=2):
65 65 "classification": {
66 66 "scheme": u"CPV",
67 67 "id": u"44617100-9",
68   - "description": u"Cartons"
  68 + "description": u"Cartons",
  69 + "description_ua": u"Картонки"
69 70 },
70 71 "additionalClassifications": [
71 72 {
... ... @@ -150,7 +151,7 @@ def prom_test_tender_data():
150 151 "classification": {
151 152 "scheme": u"CPV",
152 153 "id": u"44617100-9",
153   - "description": u"Cartons"
  154 + "description": u"Cartons",
154 155 },
155 156 "additionalClassifications": [
156 157 {
... ... @@ -207,11 +208,11 @@ def test_tender_data_multiple_lots(period_interval=2):
207 208 }
208 209 },
209 210 "value": {
210   - "amount": 50000.99,
  211 + "amount": 50000,
211 212 "currency": u"UAH"
212 213 },
213 214 "minimalStep": {
214   - "amount": 100.1,
  215 + "amount": 100,
215 216 "currency": u"UAH"
216 217 },
217 218 "items": [
... ... @@ -234,7 +235,8 @@ def test_tender_data_multiple_lots(period_interval=2):
234 235 "classification": {
235 236 "scheme": u"CPV",
236 237 "id": u"44617100-9",
237   - "description": u"Cartons"
  238 + "description": u"Cartons",
  239 + "description_ua": u"Картонки"
238 240 },
239 241 "additionalClassifications": [
240 242 {
... ... @@ -268,7 +270,8 @@ def test_tender_data_multiple_lots(period_interval=2):
268 270 "classification": {
269 271 "scheme": u"CPV",
270 272 "id": u"44617100-9",
271   - "description": u"Cartons"
  273 + "description": u"Cartons",
  274 + "description_ua": u"Картонки"
272 275 },
273 276 "additionalClassifications": [
274 277 {
... ... @@ -302,7 +305,8 @@ def test_tender_data_multiple_lots(period_interval=2):
302 305 "classification": {
303 306 "scheme": u"CPV",
304 307 "id": u"44617100-9",
305   - "description": u"Cartons"
  308 + "description": u"Cartons",
  309 + "description_ua": u"Картонки"
306 310 },
307 311 "additionalClassifications": [
308 312 {
... ... @@ -336,7 +340,8 @@ def test_tender_data_multiple_lots(period_interval=2):
336 340 "classification": {
337 341 "scheme": u"CPV",
338 342 "id": u"44617100-9",
339   - "description": u"Cartons"
  343 + "description": u"Cartons",
  344 + "description_ua": u"Картонки"
340 345 },
341 346 "additionalClassifications": [
342 347 {
... ...
... ... @@ -19,6 +19,7 @@ from .initial_data import (
19 19 test_bid_data, test_award_data, test_complaint_data, test_complaint_reply_data, test_tender_data_multiple_lots,
20 20 auction_bid, prom_test_tender_data
21 21 )
  22 +import calendar
22 23
23 24 TIMEZONE = timezone('Europe/Kiev')
24 25 def get_date():
... ... @@ -155,4 +156,16 @@ def wait_to_date(date_stamp):
155 156 wait_seconds += 2
156 157 if wait_seconds < 0:
157 158 return 0
158   - return wait_seconds
\ No newline at end of file
  159 + return wait_seconds
  160 +
  161 +def newtend_date_picker_index(isodate):
  162 + now = datetime.today()
  163 + date_str = '01' + str(now.month) + str(now.year)
  164 + first_day_of_month = datetime.strptime(date_str, "%d%m%Y")
  165 + mod = first_day_of_month.isoweekday() - 2
  166 + iso_dt=parse_date(isodate)
  167 + last_day_of_month = calendar.monthrange(now.year, now.month)[1]
  168 + #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO"))
  169 + if now.day>iso_dt.day:
  170 + mod = calendar.monthrange(now.year, now.month)[1] + mod
  171 + return mod + iso_dt.day
\ No newline at end of file
... ...
Please register or login to post a comment