Commit 360b3b2c9099a9ab5eb4c9c194162f31de438a42

Authored by Myroslav Opyr
2 parents 42df9535 ac023854

Merge pull request #27 from selurvedu/black_friday

Introduce default and overridden values for brokers.yaml; various fixes, minor and trivial improvements
  1 +from chromedriver import CHROMEDRV_PATH
1 2 from robot import run_cli
2 3 import os
3 4 import sys
4   -from chromedriver import CHROMEDRV_PATH
5 5
6 6 sys.path.append(CHROMEDRV_PATH)
7 7
... ...
... ... @@ -201,12 +201,15 @@ Set Multi Ids
201 201 ... ${ARGUMENTS[0]} == username
202 202 ... ${ARGUMENTS[1]} == ${TENDER_UAID}
203 203 Switch browser ${ARGUMENTS[0]}
204   - Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
  204 + ${url}= Get Broker Property By Username ${ARGUMENTS[0]} url
  205 + Go To ${url}
205 206 Wait Until Page Contains Прозорі закупівлі 10
206 207 sleep 1
207 208 Input Text jquery=input[ng-change='searchChange()'] ${ARGUMENTS[1]}
208 209 sleep 1
209   - Wait Until Keyword Succeeds 300 s 0 s Шукати і знайти
  210 + ${timeout_on_wait}= Get Broker Property By Username ${ARGUMENTS[0]} timeout_on_wait
  211 + ${passed}= Run Keyword And Return Status Wait Until Keyword Succeeds ${timeout_on_wait} s 0 s Шукати і знайти
  212 + Run Keyword Unless ${passed} Fatal Error Тендер не знайдено за ${timeout_on_wait} секунд
210 213 sleep 3
211 214 Click Link jquery=a[href^="#/tenderDetailes"]
212 215 Wait Until Page Contains ${ARGUMENTS[1]} 10
... ... @@ -310,7 +313,8 @@ Set Multi Ids
310 313 [Documentation]
311 314 ... ${ARGUMENTS[0]} = username
312 315 ... ${ARGUMENTS[1]} = ${TENDER_UAID}
313   - ${ADDITIONAL_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} single
  316 + ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval
  317 + ${ADDITIONAL_DATA}= prepare_test_tender_data ${period_interval} single
314 318 ${tender_data}= Add_data_for_GUI_FrontEnds ${ADDITIONAL_DATA}
315 319 ${items}= Get From Dictionary ${tender_data.data} items
316 320 ${description}= Get From Dictionary ${tender_data.data} description
... ... @@ -329,7 +333,8 @@ Set Multi Ids
329 333 ... ${ARGUMENTS[0]} = username
330 334 ... ${ARGUMENTS[1]} = ${TENDER_UAID}
331 335 ... ${ARGUMENTS[2]} = 3
332   - ${ADDITIONAL_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} multi
  336 + ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval
  337 + ${ADDITIONAL_DATA}= prepare_test_tender_data ${period_interval} multi
333 338 ${tender_data}= Add_data_for_GUI_FrontEnds ${ADDITIONAL_DATA}
334 339 ${items}= Get From Dictionary ${tender_data.data} items
335 340 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
... ... @@ -366,10 +371,9 @@ Set Multi Ids
366 371 ... ${ARGUMENTS[0]} == username
367 372 ... ${ARGUMENTS[1]} == fieldname
368 373 Switch browser ${ARGUMENTS[0]}
369   - ${return_value}= run keyword Отримати інформацію про ${ARGUMENTS[1]}
370   - [return] ${return_value}
  374 + Run Keyword And Return Отримати інформацію про ${ARGUMENTS[1]}
371 375
372   -Отримати тест із поля і показати на сторінці
  376 +Отримати текст із поля і показати на сторінці
373 377 [Arguments] ${fieldname}
374 378 sleep 3
375 379 # відмітити на сторінці поле з тендера ${fieldname} ${locator.${fieldname}}
... ... @@ -377,20 +381,20 @@ Set Multi Ids
377 381 [return] ${return_value}
378 382
379 383 Отримати інформацію про title
380   - ${return_value}= Отримати тест із поля і показати на сторінці title
  384 + ${return_value}= Отримати текст із поля і показати на сторінці title
381 385 [return] ${return_value}
382 386
383 387 Отримати інформацію про description
384   - ${return_value}= Отримати тест із поля і показати на сторінці description
  388 + ${return_value}= Отримати текст із поля і показати на сторінці description
385 389 [return] ${return_value}
386 390
387 391 Отримати інформацію про minimalStep.amount
388   - ${return_value}= Отримати тест із поля і показати на сторінці minimalStep.amount
  392 + ${return_value}= Отримати текст із поля і показати на сторінці minimalStep.amount
389 393 ${return_value}= Convert To Number ${return_value.split(' ')[0]}
390 394 [return] ${return_value}
391 395
392 396 Отримати інформацію про value.amount
393   - ${return_value}= Отримати тест із поля і показати на сторінці value.amount
  397 + ${return_value}= Отримати текст із поля і показати на сторінці value.amount
394 398 ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3])
395 399 ${return_value}= Convert To Number ${return_value}
396 400 [return] ${return_value}
... ... @@ -403,31 +407,31 @@ Set Multi Ids
403 407 Remove element ${last_note_id}
404 408
405 409 Отримати інформацію про tenderId
406   - ${return_value}= Отримати тест із поля і показати на сторінці tenderId
  410 + ${return_value}= Отримати текст із поля і показати на сторінці tenderId
407 411 ${return_value}= Get Substring ${return_value} 10
408 412 [return] ${return_value}
409 413
410 414 Отримати інформацію про procuringEntity.name
411   - ${return_value}= Отримати тест із поля і показати на сторінці procuringEntity.name
  415 + ${return_value}= Отримати текст із поля і показати на сторінці procuringEntity.name
412 416 [return] ${return_value}
413 417
414 418 Отримати інформацію про tenderPeriod.startDate
415   - ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.startDate
  419 + ${return_value}= Отримати текст із поля і показати на сторінці tenderPeriod.startDate
416 420 ${return_value}= Change_date_to_month ${return_value}
417 421 [return] ${return_value}
418 422
419 423 Отримати інформацію про tenderPeriod.endDate
420   - ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.endDate
  424 + ${return_value}= Отримати текст із поля і показати на сторінці tenderPeriod.endDate
421 425 ${return_value}= Change_date_to_month ${return_value}
422 426 [return] ${return_value}
423 427
424 428 Отримати інформацію про enquiryPeriod.startDate
425   - ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.startDate
  429 + ${return_value}= Отримати текст із поля і показати на сторінці enquiryPeriod.startDate
426 430 ${return_value}= Change_date_to_month ${return_value}
427 431 [return] ${return_value}
428 432
429 433 Отримати інформацію про enquiryPeriod.endDate
430   - ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.endDate
  434 + ${return_value}= Отримати текст із поля і показати на сторінці enquiryPeriod.endDate
431 435 ${return_value}= Change_date_to_month ${return_value}
432 436 [return] ${return_value}
433 437
... ... @@ -442,89 +446,87 @@ Change_date_to_month
442 446 [return] ${return_value}
443 447
444 448 Отримати інформацію про items[0].description
445   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].description
  449 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].description
446 450 [return] ${return_value}
447 451
448 452 Отримати інформацію про items[0].deliveryLocation.latitude
449   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryLocation.latitude
  453 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryLocation.latitude
450 454 ${return_value}= Get Substring ${return_value} 0 10
451 455 [return] ${return_value}
452 456
453 457 Отримати інформацію про items[0].deliveryLocation.longitude
454   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryLocation.longitude
  458 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryLocation.longitude
455 459 ${return_value}= Get Substring ${return_value} 12 22
456 460 [return] ${return_value}
457 461
458 462 Отримати інформацію про items[0].unit.code
459   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].unit.code
  463 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].unit.code
460 464 ${return_value}= Get Substring ${return_value} 5
461   - ${return_value}= Run keyword if '${return_value}' == 'кг.' Convert To String KGM
  465 + Run Keyword And Return If '${return_value}' == 'кг.' Convert To String KGM
462 466 [return] ${return_value}
463 467
464 468 Отримати інформацію про items[0].quantity
465   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].quantity
  469 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].quantity
466 470 ${return_value}= Get Substring ${return_value} 0 4
467 471 ${return_value}= Convert To Number ${return_value}
468 472 [return] ${return_value}
469 473
470 474 Отримати інформацію про items[0].classification.id
471   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].classification.id
  475 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].classification.id
472 476 [return] ${return_value.split(' ')[0]}
473 477
474 478 Отримати інформацію про items[0].classification.scheme
475   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].classification.scheme
  479 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].classification.scheme
476 480 ${return_value}= Get Substring ${return_value} 0 -1
477 481 [return] ${return_value.split(' ')[1]}
478 482
479 483 Отримати інформацію про items[0].classification.description
480   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].classification.description
  484 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].classification.description
481 485 ${return_value}= Get Substring ${return_value} 11
482   - ${return_value}= Run keyword if '${return_value}' == 'Картонки' Convert To String Cartons
  486 + Run Keyword And Return If '${return_value}' == 'Картонки' Convert To String Cartons
483 487 [return] ${return_value}
484 488
485 489 Отримати інформацію про items[0].additionalClassifications[0].id
486   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].id
  490 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].id
487 491 [return] ${return_value.split(' ')[0]}
488 492
489 493 Отримати інформацію про items[0].additionalClassifications[0].scheme
490   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].scheme
  494 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].scheme
491 495 ${return_value}= Get Substring ${return_value} 0 -1
492 496 [return] ${return_value.split(' ')[1]}
493 497
494 498 Отримати інформацію про items[0].additionalClassifications[0].description
495   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].description
  499 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].description
496 500 ${return_value}= Get Substring ${return_value} 8 60
497 501 ${return_value}= Remove String ${return_value} "
498 502 ${return_value}= Convert To Lowercase ${return_value}
499 503 [return] ${return_value}
500 504
501 505 Отримати інформацію про items[0].deliveryAddress.postalCode
502   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryAddress.postalCode
  506 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.postalCode
503 507 ${return_value}= Get Substring ${return_value} 0 5
504 508 [return] ${return_value}
505 509
506 510 Отримати інформацію про items[0].deliveryAddress.countryName
507   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryAddress.countryName
  511 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.countryName
508 512 ${return_value}= Get Substring ${return_value} 0 7
509 513 [return] ${return_value}
510 514
511 515 Отримати інформацію про items[0].deliveryAddress.region
512   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryAddress.region
513   - ${return_value}= Run keyword if '${return_value}' == 'Київська,' Convert To String м. Київ
514   - [return] ${return_value}
  516 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.region
  517 + Run Keyword And Return Remove String ${return_value} ,
515 518
516 519 Отримати інформацію про items[0].deliveryAddress.locality
517   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryAddress.locality
518   - ${return_value}= Run keyword if '${return_value}' == 'Київ,' Convert To String м. Київ
519   - [return] ${return_value}
  520 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.locality
  521 + Run Keyword And Return Remove String ${return_value} ,
520 522
521 523 Отримати інформацію про items[0].deliveryAddress.streetAddress
522   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryAddress.streetAddress
  524 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.streetAddress
523 525 [return] ${return_value}
524 526
525 527 Отримати інформацію про items[0].deliveryDate.endDate
526   - ${return_value}= Отримати тест із поля і показати на сторінці items[0].deliveryDate.endDate
527   - ${time}= Отримати тест із поля і показати на сторінці enquiryPeriod.startDate
  528 + ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryDate.endDate
  529 + ${time}= Отримати текст із поля і показати на сторінці enquiryPeriod.startDate
528 530 ${time}= Get Substring ${time} 11
529 531 ${day}= Get Substring ${return_value} 16 18
530 532 ${month}= Get Substring ${return_value} 18 22
... ... @@ -533,18 +535,18 @@ Change_date_to_month
533 535 [return] ${return_value}
534 536
535 537 Отримати інформацію про questions[0].title
536   - ${return_value}= отримати тест із поля і показати на сторінці questions[0].title
  538 + ${return_value}= Отримати текст із поля і показати на сторінці questions[0].title
537 539 [return] ${return_value}
538 540
539 541 Отримати інформацію про questions[0].description
540   - ${return_value}= отримати тест із поля і показати на сторінці questions[0].description
  542 + ${return_value}= Отримати текст із поля і показати на сторінці questions[0].description
541 543 [return] ${return_value}
542 544
543 545 Отримати інформацію про questions[0].date
544   - ${return_value}= отримати тест із поля і показати на сторінці questions[0].date
  546 + ${return_value}= Отримати текст із поля і показати на сторінці questions[0].date
545 547 ${return_value}= Change_date_to_month ${return_value}
546 548 [return] ${return_value}
547 549
548 550 Отримати інформацію про questions[0].answer
549   - ${return_value}= отримати тест із поля і показати на сторінці questions[0].answer
  551 + ${return_value}= Отримати текст із поля і показати на сторінці questions[0].answer
550 552 [return] ${return_value}
... ...
... ... @@ -31,7 +31,8 @@ ${locator.questions[0].answer} xpath=//div[@class = 'answer relative']//di
31 31 [Arguments] @{ARGUMENTS}
32 32 [Documentation] Відкрити брaузер, створити обєкт api wrapper, тощо
33 33 ... ${ARGUMENTS[0]} == username
34   - Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]}
  34 + ${url}= Get Broker Property By Username ${ARGUMENTS[0]} url
  35 + Open Browser ${url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]}
35 36 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
36 37 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
37 38 Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]}
... ... @@ -53,10 +54,12 @@ Pre Login
53 54 [Arguments] @{ARGUMENTS}
54 55 [Documentation]
55 56 ... ${ARGUMENTS[0]} == username
56   - Wait Until Page Contains Element name=siteLogin 10
57   - Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login}
58   - Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password}
59   - Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input
  57 + ${login}= Get Broker Property By Username ${ARGUMENTS[0]} login
  58 + ${password}= Get Broker Property By Username ${ARGUMENTS[0]} password
  59 + Wait Until Page Contains Element name=siteLogin 10
  60 + Input Text name=siteLogin ${login}
  61 + Input Text name=sitePass ${password}
  62 + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input
60 63
61 64 Створити тендер
62 65 [Arguments] @{ARGUMENTS}
... ... @@ -187,7 +190,8 @@ Set Multi Ids
187 190 ... ${ARGUMENTS[0]} = username
188 191 ... ${ARGUMENTS[1]} = ${TENDER_UAID}
189 192 ... ${ARGUMENTS[2]} = 3
190   - ${tender_data}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} multi
  193 + ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval
  194 + ${tender_data}= prepare_test_tender_data ${period_interval} multi
191 195
192 196 ${items}= Get From Dictionary ${tender_data.data} items
193 197 ${description}= Get From Dictionary ${tender_data.data} description
... ... @@ -229,7 +233,8 @@ Set Multi Ids
229 233 ... ${ARGUMENTS[0]} == username
230 234 ... ${ARGUMENTS[1]} == tenderId
231 235 Switch browser ${ARGUMENTS[0]}
232   - Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
  236 + ${url}= Get Broker Property By Username ${ARGUMENTS[0]} url
  237 + Go To ${url}
233 238 Wait Until Page Contains Держзакупівлі.онлайн 10
234 239 Click Element xpath=//a[text()='Закупівлі']
235 240 sleep 1
... ... @@ -360,57 +365,56 @@ Set Multi Ids
360 365 ... ${ARGUMENTS[0]} == username
361 366 ... ${ARGUMENTS[1]} == fieldname
362 367 Switch browser ${ARGUMENTS[0]}
363   - ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]}
364   - [return] ${return_value}
  368 + Run Keyword And Return Отримати інформацію про ${ARGUMENTS[1]}
365 369
366   -отримати тест із поля і показати на сторінці
  370 +Отримати текст із поля і показати на сторінці
367 371 [Arguments] ${fieldname}
368 372 sleep 1
369 373 ${return_value}= Get Text ${locator.${fieldname}}
370 374 [return] ${return_value}
371 375
372 376 отримати інформацію про title
373   - ${title}= отримати тест із поля і показати на сторінці title
  377 + ${title}= Отримати текст із поля і показати на сторінці title
374 378 [return] ${title.split('.')[0]}
375 379
376 380 отримати інформацію про description
377   - ${description}= отримати тест із поля і показати на сторінці description
  381 + ${description}= Отримати текст із поля і показати на сторінці description
378 382 [return] ${description}
379 383
380 384 отримати інформацію про tenderId
381   - ${tenderId}= отримати тест із поля і показати на сторінці tenderId
  385 + ${tenderId}= Отримати текст із поля і показати на сторінці tenderId
382 386 [return] ${tenderId}
383 387
384 388 отримати інформацію про value.amount
385   - ${valueAmount}= отримати тест із поля і показати на сторінці value.amount
  389 + ${valueAmount}= Отримати текст із поля і показати на сторінці value.amount
386 390 ${valueAmount}= Convert To Number ${valueAmount.split(' ')[0]}
387 391 [return] ${valueAmount}
388 392
389 393 отримати інформацію про minimalStep.amount
390   - ${minimalStepAmount}= отримати тест із поля і показати на сторінці minimalStep.amount
  394 + ${minimalStepAmount}= Отримати текст із поля і показати на сторінці minimalStep.amount
391 395 ${minimalStepAmount}= Convert To Number ${minimalStepAmount.split(' ')[0]}
392 396 [return] ${minimalStepAmount}
393 397
394 398 отримати інформацію про enquiryPeriod.endDate
395   - ${enquiryPeriodEndDate}= отримати тест із поля і показати на сторінці enquiryPeriod.endDate
  399 + ${enquiryPeriodEndDate}= Отримати текст із поля і показати на сторінці enquiryPeriod.endDate
396 400 ${enquiryPeriodEndDate}= subtract_from_time ${enquiryPeriodEndDate} 6 5
397 401 [return] ${enquiryPeriodEndDate}
398 402
399 403 отримати інформацію про tenderPeriod.endDate
400   - ${tenderPeriodEndDate}= отримати тест із поля і показати на сторінці tenderPeriod.endDate
  404 + ${tenderPeriodEndDate}= Отримати текст із поля і показати на сторінці tenderPeriod.endDate
401 405 ${tenderPeriodEndDate}= subtract_from_time ${tenderPeriodEndDate} 11 0
402 406 [return] ${tenderPeriodEndDate}
403 407
404 408 отримати інформацію про items[0].deliveryAddress.countryName
405   - ${countryName}= отримати тест із поля і показати на сторінці items[0].deliveryAddress.countryName
  409 + ${countryName}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.countryName
406 410 [return] ${countryName}
407 411
408 412 отримати інформацію про items[0].classification.scheme
409   - ${classificationScheme}= отримати тест із поля і показати на сторінці items[0].classification.scheme
  413 + ${classificationScheme}= Отримати текст із поля і показати на сторінці items[0].classification.scheme
410 414 [return] ${classificationScheme.split(' ')[1]}
411 415
412 416 отримати інформацію про items[0].additionalClassifications[0].scheme
413   - ${additionalClassificationsScheme}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].scheme
  417 + ${additionalClassificationsScheme}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].scheme
414 418 [return] ${additionalClassificationsScheme.split(' ')[1]}
415 419
416 420 отримати інформацію про questions[0].title
... ... @@ -418,16 +422,16 @@ Set Multi Ids
418 422 Click Element xpath=//a[@class='reverse tenderLink']
419 423 sleep 1
420 424 Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']]
421   - ${questionsTitle}= отримати тест із поля і показати на сторінці questions[0].title
  425 + ${questionsTitle}= Отримати текст із поля і показати на сторінці questions[0].title
422 426 ${questionsTitle}= Convert To Lowercase ${questionsTitle}
423 427 [return] ${questionsTitle.capitalize().split('.')[0] + '.'}
424 428
425 429 отримати інформацію про questions[0].description
426   - ${questionsDescription}= отримати тест із поля і показати на сторінці questions[0].description
  430 + ${questionsDescription}= Отримати текст із поля і показати на сторінці questions[0].description
427 431 [return] ${questionsDescription}
428 432
429 433 отримати інформацію про questions[0].date
430   - ${questionsDate}= отримати тест із поля і показати на сторінці questions[0].date
  434 + ${questionsDate}= Отримати текст із поля і показати на сторінці questions[0].date
431 435 log ${questionsDate}
432 436 [return] ${questionsDate}
433 437
... ... @@ -436,40 +440,40 @@ Set Multi Ids
436 440 Click Element xpath=//a[@class='reverse tenderLink']
437 441 sleep 1
438 442 Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']]
439   - ${questionsAnswer}= отримати тест із поля і показати на сторінці questions[0].answer
  443 + ${questionsAnswer}= Отримати текст із поля і показати на сторінці questions[0].answer
440 444 [return] ${questionsAnswer}
441 445
442 446 отримати інформацію про items[0].deliveryDate.endDate
443   - ${deliveryDateEndDate}= отримати тест із поля і показати на сторінці items[0].deliveryDate.endDate
  447 + ${deliveryDateEndDate}= Отримати текст із поля і показати на сторінці items[0].deliveryDate.endDate
444 448 ${deliveryDateEndDate}= subtract_from_time ${deliveryDateEndDate} 15 0
445 449 [return] ${deliveryDateEndDate}
446 450
447 451 отримати інформацію про items[0].classification.id
448   - ${classificationId}= отримати тест із поля і показати на сторінці items[0].classification.id
  452 + ${classificationId}= Отримати текст із поля і показати на сторінці items[0].classification.id
449 453 [return] ${classificationId}
450 454
451 455 отримати інформацію про items[0].classification.description
452   - ${classificationDescription}= отримати тест із поля і показати на сторінці items[0].classification.description
453   - ${classificationDescription}= Run keyword if '${classificationDescription}' == 'Картонки' Convert To String Cartons
  456 + ${classificationDescription}= Отримати текст із поля і показати на сторінці items[0].classification.description
  457 + Run Keyword And Return If '${classificationDescription}' == 'Картонки' Convert To String Cartons
454 458 [return] ${classificationDescription}
455 459
456 460 отримати інформацію про items[0].additionalClassifications[0].id
457   - ${additionalClassificationsId}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].id
  461 + ${additionalClassificationsId}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].id
458 462 [return] ${additionalClassificationsId}
459 463
460 464 отримати інформацію про items[0].additionalClassifications[0].description
461   - ${additionalClassificationsDescription}= отримати тест із поля і показати на сторінці items[0].additionalClassifications[0].description
  465 + ${additionalClassificationsDescription}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].description
462 466 ${additionalClassificationsDescription}= Convert To Lowercase ${additionalClassificationsDescription}
463 467 [return] ${additionalClassificationsDescription}
464 468
465 469 отримати інформацію про items[0].quantity
466   - ${itemsQuantity}= отримати тест із поля і показати на сторінці items[0].quantity
  470 + ${itemsQuantity}= Отримати текст із поля і показати на сторінці items[0].quantity
467 471 ${itemsQuantity}= Convert To Integer ${itemsQuantity}
468 472 [return] ${itemsQuantity}
469 473
470 474 отримати інформацію про items[0].unit.code
471   - ${unitCode}= отримати тест із поля і показати на сторінці items[0].unit.code
472   - ${unitCode}= Run keyword if '${unitCode}'== 'кг' Convert To String KGM
  475 + ${unitCode}= Отримати текст із поля і показати на сторінці items[0].unit.code
  476 + Run Keyword And Return If '${unitCode}'== 'кг' Convert To String KGM
473 477 [return] ${unitCode}
474 478
475 479 отримати інформацію про procuringEntity.name
... ...
... ... @@ -42,7 +42,8 @@ ${locator.QUESTIONS[0].date} xpath=//span[@class="date ng-binding"]
42 42 [Arguments] @{ARGUMENTS}
43 43 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
44 44 ... ${ARGUMENTS[0]} == username
45   - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
  45 + ${url}= Get Broker Property By Username ${ARGUMENTS[0]} url
  46 + Open Browser ${url} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
46 47 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
47 48 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
48 49 Run Keyword If '${username}' != 'Newtend_Viewer' Login
... ... @@ -247,8 +248,7 @@ Set datetime
247 248 ... ${ARGUMENTS[0]} == username
248 249 ... ${ARGUMENTS[1]} == fieldname
249 250 Switch browser ${ARGUMENTS[0]}
250   - ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]}
251   - [return] ${return_value}
  251 + Run Keyword And Return Отримати інформацію про ${ARGUMENTS[1]}
252 252
253 253 отримати текст із поля і показати на сторінці
254 254 [Arguments] ${fieldname}
... ... @@ -361,7 +361,7 @@ Set datetime
361 361
362 362 отримати інформацію про items[0].classification.description
363 363 ${classification_description}= отримати текст із поля і показати на сторінці items[0].classification.scheme
364   - ${classification_description}= Run Keyword If '${classification_description}' == '44617100-9 - Картонки' Convert To String Cartons
  364 + Run Keyword And Return If '${classification_description}' == '44617100-9 - Картонки' Convert To String Cartons
365 365 [return] ${classification_description}
366 366
367 367 ##ДКПП
... ... @@ -382,7 +382,7 @@ Set datetime
382 382 ##item
383 383 отримати інформацію про items[0].unit.name
384 384 ${unit_name}= отримати текст із поля і показати на сторінці items[0].unit.name
385   - ${unit_name}= Run Keyword If '${unit_name}' == 'килограммы' Convert To String кілограм
  385 + Run Keyword And Return If '${unit_name}' == 'килограммы' Convert To String кілограм
386 386 [return] ${unit_name}
387 387
388 388 отримати інформацію про items[0].unit.code
... ... @@ -401,7 +401,8 @@ Set datetime
401 401 ... ${ARGUMENTS[0]} = username
402 402 ... ${ARGUMENTS[1]} = ${TENDER_UAID}
403 403 ... ${ARGUMENTS[2]} = 3
404   - ${ADDITIONAL_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} multi
  404 + ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval
  405 + ${ADDITIONAL_DATA}= prepare_test_tender_data ${period_interval} multi
405 406 ${items}= Get From Dictionary ${ADDITIONAL_DATA.data} items
406 407 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
407 408 Wait Until Page Contains Element ${locator.edit_tender} 10
... ...
... ... @@ -21,7 +21,8 @@ ${PASSWORD} 1234
21 21 log many @{ARGUMENTS}
22 22 log ${username}
23 23 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
24   - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${username}
  24 + ${url}= Get Broker Property By Username ${ARGUMENTS[0]} url
  25 + Open Browser ${url} ${USERS.users['${username}'].browser} alias=${username}
25 26 Set Window Position @{USERS.users['${username}'].position}
26 27 #Set Window Size @{USERS.users['${username}'].size}
27 28 Log Variables
... ... @@ -99,8 +100,9 @@ Get tender id
99 100 ... ${ARGUMENTS[2]} == id
100 101 Switch browser ${ARGUMENTS[0]}
101 102 ${current_location}= Get Location
102   - Run keyword if '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page
103   - Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
  103 + ${url}= Get Broker Property By Username ${ARGUMENTS[0]} url
  104 + Run Keyword If '${url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page
  105 + Go to ${url}
104 106 Wait Until Page Contains Допороговые закупки Украины 10
105 107 sleep 1
106 108 Input Text id=search ${ARGUMENTS[1]}
... ...
... ... @@ -17,8 +17,8 @@ ${telephone} +380976535447
17 17 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
18 18
19 19 # login
20   - Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:j_idt54 10
21   - Click Element id=mForm:j_idt54
  20 + Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:j_idt56 10
  21 + Click Element id=mForm:j_idt56
22 22 Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:email 10
23 23 Input text id=mForm:email ${USERS.users['${username}'].login}
24 24 Sleep 2
... ... @@ -81,9 +81,16 @@ ${telephone} +380976535447
81 81 Choose File id=mForm:data:docFile_input ${file_path}
82 82 Sleep 2
83 83 Run Keyword if '${mode}' == 'multi' Додати предмет items
  84 + # Save
84 85 Click Element id=mForm:bSave
  86 + Sleep 5
  87 + # Announce
  88 + Click Element xpath=//span[text()="Оголосити"]
  89 + Sleep 2
  90 + # Confirm in message box
  91 + Click Element xpath=//div[contains(@class, "ui-confirm-dialog") and @aria-hidden="false"]//span[text()="Оголосити"]
85 92 # More smart wait for id is needed there.
86   - Sleep 25
  93 + Sleep 5
87 94 ${tender_UAid}= Get Text id=mForm:nBid
88 95 ${tender_UAid}= Get Substring ${tender_UAid} 19
89 96 ${Ids} Convert To String ${tender_UAid}
... ...
... ... @@ -7,7 +7,8 @@ Library DateTime
7 7 Підготувати клієнт для користувача
8 8 [Arguments] ${username}
9 9 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
10   - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${username}
  10 + ${url}= Get Broker Property By Username ${username} url
  11 + Open Browser ${url} ${USERS.users['${username}'].browser} alias=${username}
11 12 Set Window Position @{USERS.users['${username}'].position}
12 13 Set Window Size @{USERS.users['${username}'].size}
13 14 Log Variables
... ... @@ -20,8 +21,9 @@ Library DateTime
20 21 ... ${ARGUMENTS[2]} == id
21 22 Switch browser ${ARGUMENTS[0]}
22 23 ${current_location}= Get Location
23   - Run keyword if '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page
24   - Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
  24 + ${url}= Get Broker Property By Username ${ARGUMENTS[0]} url
  25 + Run Keyword If '${url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page
  26 + Go To ${url}
25 27 Wait Until Page Contains Офіційний майданчик державних закупівель України 10
26 28 sleep 1
27 29 Input Text id=j_idt18:datalist:j_idt67 ${ARGUMENTS[1]}
... ...
  1 +Default:
  2 + # These values are used by default unless a
  3 + # specific broker entry overrides them.
  4 + timeout_on_wait: 300
  5 + period_interval: 3
1 6 Quinta:
2 7 keywords_file: openprocurement_client
3   - timeout_on_wait: 0
4   - period_interval: 2
  8 + timeout_on_wait: 15
5 9 roles:
6 10 tender_owner: Tender_Owner
7 11 provider: Tender_User
... ... @@ -10,8 +14,7 @@ Quinta:
10 14 E-tender:
11 15 keywords_file: etender
12 16 url: http://bid.uat.e-tender.biz/
13   - timeout_on_wait: 15
14   - period_interval: 2
  17 + timeout_on_wait: 60
15 18 roles:
16 19 tender_owner: E-tender_Owner
17 20 provider: E-tender_Provider1
... ... @@ -19,11 +22,9 @@ E-tender:
19 22 viewer: E-tender_Viewer
20 23 Netcast:
21 24 keywords_file: netcast
22   - url: "http://dz2.byustudio.in.ua"
  25 + url: http://dz2.byustudio.in.ua
23 26 login: admin
24 27 password: uStudio
25   - timeout_on_wait: 15
26   - period_interval: 2
27 28 roles:
28 29 tender_owner: Netcast_Owner
29 30 provider: Netcast_Provider1
... ... @@ -31,8 +32,6 @@ Netcast:
31 32 Newtend:
32 33 keywords_file: newtend
33 34 url: http://openprocurement:test@dev23.newtend.com
34   - timeout_on_wait: 15
35   - period_interval: 2
36 35 roles:
37 36 tender_owner: Newtend_Owner
38 37 provider: Newtend_Provider1
... ... @@ -40,7 +39,6 @@ Newtend:
40 39 Prom:
41 40 keywords_file: prom
42 41 url: http://dz.dz-test.net/
43   - timeout_on_wait: 15
44 42 period_interval: 31
45 43 roles:
46 44 tender_owner: Prom_Owner
... ... @@ -48,15 +46,11 @@ Prom:
48 46 Publicbid:
49 47 keywords_file: publicbid
50 48 url: https://public-bid.com.ua/
51   - timeout_on_wait: 15
52   - period_interval: 2
53 49 roles:
54 50 tender_owner: Publicbid_Owner
55 51 viewer: Publicbid_Viewer
56 52 SmartTender:
57 53 keywords_file: smarttender
58 54 url: http://smarttender.biz/tenders
59   - timeout_on_wait: 15
60   - period_interval: 2
61 55 roles:
62 56 viewer: SmartTender_Viewer
... ...
1 1 users:
2 2 Tender_Owner:
3   - api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
4   - broker: Quinta
  3 + api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
  4 + broker: Quinta
5 5 Tender_User:
6   - api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
7   - broker: Quinta
  6 + api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
  7 + broker: Quinta
8 8 Tender_User1:
9   - api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
10   - broker: Quinta
  9 + api_key: e9c3ccb8e8124f26941d5f9639a4ebc3
  10 + broker: Quinta
11 11 Tender_Viewer:
12   - broker: Quinta
13   - api_key: ""
  12 + api_key: ""
  13 + broker: Quinta
14 14 E-tender_Owner:
15   - broker: E-tender
  15 + broker: E-tender
16 16 username: E-tendertest
17 17 homepage: "http://bid.uat.e-tender.biz/#/profile"
18   - login: Misha2
  18 + login: Misha2
19 19 password: Password1
20 20 browser: chrome
21   - position: [0, 0]
22   - size: [800, 800]
  21 + position: [0, 0]
  22 + size: [800, 800]
23 23 E-tender_Provider1:
24   - broker: E-tender
  24 + broker: E-tender
25 25 username: E-tendertest
26 26 homepage: "http://bid.uat.e-tender.biz/#/profile"
27   - login: st_org
  27 + login: st_org
28 28 password: 12345678
29   - browser: chrome
  29 + browser: chrome
30 30 position: [700, 0]
31   - size: [700, 800]
  31 + size: [700, 800]
32 32 E-tender_Provider2:
33   - broker: E-tender
  33 + broker: E-tender
34 34 username: E-tendertest
35 35 homepage: "http://bid.uat.e-tender.biz/#/profile"
36   - login: provider2
  36 + login: provider2
37 37 password: Qa123456
38 38 browser: chrome
39   - position: [700, 0]
40   - size: [640, 450]
  39 + position: [700, 0]
  40 + size: [640, 450]
41 41 E-tender_Viewer:
42   - broker: E-tender
  42 + broker: E-tender
43 43 username: E-tendertest
44 44 homepage: "http://bid.uat.e-tender.biz/#"
45 45 browser: chrome
46   - position: [0, 0]
47   - size: [640, 450]
  46 + position: [0, 0]
  47 + size: [640, 450]
48 48 Netcast_Owner:
49   - broker: Netcast
  49 + broker: Netcast
50 50 username: Netcasttest
51 51 homepage: "http://dz2.byustudio.in.ua"
52   - login: ovramet.s@gmail.com
  52 + login: ovramet.s@gmail.com
53 53 password: Password1
54   - browser: chrome
55   - position: [0, 0]
56   - size: [700, 800]
  54 + browser: chrome
  55 + position: [0, 0]
  56 + size: [700, 800]
57 57 Netcast_Provider1:
58   - broker: Netcast
  58 + broker: Netcast
59 59 username: Netcasttest
60 60 homepage: "http://dz2.byustudio.in.ua"
61   - login: halyna.khimka@gmail.com
  61 + login: halyna.khimka@gmail.com
62 62 password: JHO5VUp5n
63   - browser: chrome
64   - position: [0, 0]
65   - size: [600, 800]
  63 + browser: chrome
  64 + position: [0, 0]
  65 + size: [600, 800]
66 66 Netcast_Viewer:
67   - broker: Netcast
  67 + broker: Netcast
68 68 username: Netcasttest
69 69 homepage: "http://dz2.byustudio.in.ua"
70   - browser: chrome
71   - position: [0, 0]
72   - size: [600, 800]
  70 + browser: chrome
  71 + position: [0, 0]
  72 + size: [600, 800]
73 73 Newtend_Owner:
74   - broker: Newtend
  74 + broker: Newtend
75 75 username: Newtendtest
76 76 homepage: "http://dev23.newtend.com/openprocurement/#/home/page/1"
77   - login: openprocurement@mailinator.com
  77 + login: openprocurement@mailinator.com
78 78 password: 123123
79 79 browser: chrome
80   - position: [0, 0]
81   - size: [1200, 1200]
  80 + position: [0, 0]
  81 + size: [1200, 1200]
82 82 Newtend_Provider1:
83   - broker: Newtend
  83 + broker: Newtend
84 84 username: Newtendtest
85 85 homepage: "http://dev23.newtend.com/openprocurement/tenders"
86   - login: openprocboss@mailinator.com
  86 + login: openprocboss@mailinator.com
87 87 password: 123123
88 88 browser: chrome
89   - position: [700, 0]
90   - size: [800, 700]
  89 + position: [700, 0]
  90 + size: [800, 700]
91 91 Newtend_Viewer:
92   - broker: Newtend
  92 + broker: Newtend
93 93 username: Newtendtest
94 94 homepage: "http://dev23.newtend.com/openprocurement/tenders"
95 95 browser: chrome
96   - position: [800, 400]
97   - size: [800, 700]
  96 + position: [800, 400]
  97 + size: [800, 700]
98 98 Prom_Owner:
99   - broker: Prom
  99 + broker: Prom
100 100 username: Promtest
  101 + homepage: "http://zakupki.dz-test.net"
101 102 browser: chrome
102   - position: [0, 0]
103   - size: [640, 450]
  103 + position: [0, 0]
  104 + size: [640, 450]
104 105 Prom_Viewer:
105   - broker: Prom
  106 + broker: Prom
106 107 username: Promtest
  108 + homepage: "http://zakupki.dz-test.net"
107 109 browser: chrome
108   - position: [640, 0]
109   - size: [640, 450]
  110 + position: [640, 0]
  111 + size: [640, 450]
110 112 Publicbid_Owner:
111   - broker: Publicbid
  113 + broker: Publicbid
112 114 username: Publicbid
113   - homepage: "https://public-bid.com.ua/test/"
114   - login: yaroslav1boyko@gmail.com
  115 + homepage: "https://public-bid.com.ua/"
  116 + login: yaroslav1boyko@gmail.com
115 117 password: Password1
116   - browser: chrome
  118 + browser: chrome
117 119 position: [0, 0]
118   - size: [740, 550]
  120 + size: [740, 550]
119 121 Publicbid_Viewer:
120   - broker: Publicbid
  122 + broker: Publicbid
121 123 username: Publicbid
  124 + homepage: "https://public-bid.com.ua/"
122 125 browser: chrome
123   - position: [0, 450]
124   - size: [640, 450]
  126 + position: [0, 450]
  127 + size: [640, 450]
125 128 SmartTender_Viewer:
126   - broker: SmartTender
  129 + broker: SmartTender
127 130 username: SmartTendertest
  131 + homepage: "http://smarttender.biz/tenders"
128 132 browser: chrome
129   - position: [0, 450]
130   - size: [640, 450]
  133 + position: [0, 450]
  134 + size: [640, 450]
... ...
1 1 # -*- coding: utf-8 -
2   -import os
3   -from pytz import timezone
4 2 from datetime import datetime, timedelta
5   -from munch import munchify
6 3 from faker import Factory
  4 +from munch import munchify
  5 +from pytz import timezone
7 6 from tempfile import NamedTemporaryFile
  7 +import os
8 8
9 9 fake = Factory.create('uk_UA')
10 10 fake_ru = Factory.create('ru')
... ... @@ -12,6 +12,7 @@ fake_en = Factory.create()
12 12
13 13 TZ = timezone(os.environ['TZ'] if 'TZ' in os.environ else 'Europe/Kiev')
14 14
  15 +
15 16 def get_now():
16 17 return datetime.now(TZ)
17 18
... ... @@ -23,370 +24,418 @@ def create_fake_doc():
23 24 tf.close()
24 25 return tf.name
25 26
26   -def test_tender_data(period_interval=2):
27   - now = get_now()
28   - return {
29   - "title": u"[ТЕСТУВАННЯ] " + fake.catch_phrase(),
30   - "mode": "test",
31   - "submissionMethodDetails": "quick",
32   - "description": "Test tender1", #Error @prom when 'Тестовый тендер'
33   - "description_en": "Test tender",
34   - "description_ru": "Тестовый тендер",
35   - "procuringEntity": {
36   - "name": fake.company(),
37   - "name_ru": fake_ru.company(),
38   - "name_en": fake_en.company(),
39   - "identifier": {
40   - "scheme": u"UA-EDR",
41   - "id": u"0000{}".format(fake.pyint()),
42   - "uri": fake.image_url(width=None, height=None)
43   - },
44   - "address": {
45   - "countryName": u"Україна",
46   - "postalCode": fake.postalcode(),
47   - "region": u"м. Київ",
48   - "locality": u"м. Київ",
49   - "streetAddress": fake.street_address()
50   - },
51   - "contactPoint": {
52   - "name": fake.name(),
53   - "telephone": fake.phone_number()
54   - }
55   - },
56   - "value": {
57   - "amount": 50000, #Error @prom when float '50000.99'
58   - "currency": u"UAH"
59   - },
60   - "minimalStep": {
61   - "amount": 100, #Error @prom when float '100.1'
62   - "currency": u"UAH"
63   - },
64   - "items": [
65   - {
66   - "description": fake.catch_phrase(),
67   - "deliveryDate": {
68   - "endDate": (now + timedelta(days=5)).isoformat()
69   - },
70   - "deliveryLocation": {
71   - "latitude": u"49.8500° N",
72   - "longitude": u"24.0167° E"
73   - },
74   - "deliveryAddress": {
  27 +
  28 +def test_tender_data(period_interval):
  29 + now = get_now()
  30 + return {
  31 + "title": u"[ТЕСТУВАННЯ] " + fake.catch_phrase(),
  32 + "mode": "test",
  33 + "submissionMethodDetails": "quick",
  34 + "description": u"Тестовий тендер", # Error @prom when "Тестовый тендер"
  35 + "description_ru": u"Тестовый тендер",
  36 + "description_en": "Test tender",
  37 + "procuringEntity": {
  38 + "name": fake.company(),
  39 + "name_ru": fake_ru.company(),
  40 + "name_en": fake_en.company(),
  41 + "identifier": {
  42 + "scheme": u"UA-EDR",
  43 + "id": u"0000{}".format(fake.pyint()),
  44 + "uri": fake.image_url(width=None, height=None)
  45 + },
  46 + "address": {
75 47 "countryName": u"Україна",
  48 + "countryName_ru": u"Украина",
  49 + "countryName_en": "Ukraine",
76 50 "postalCode": fake.postalcode(),
77 51 "region": u"м. Київ",
78 52 "locality": u"м. Київ",
79 53 "streetAddress": fake.street_address()
80 54 },
81   - "classification": {
82   - "scheme": u"CPV",
83   - "id": u"44617100-9",
84   - "description": u"Cartons"
85   - },
86   - "additionalClassifications": [
87   - {
88   - "scheme": u"ДКПП",
89   - "id": u"17.21.1",
90   - "description": u"папір і картон гофровані, паперова й картонна тара"
91   - }
92   - ],
93   - "unit": {
94   - "name": u"кілограм",
95   - "code": u"KGM"
96   - },
97   - "quantity": fake.pyint()
  55 + "contactPoint": {
  56 + "name": fake.name(),
  57 + "telephone": fake.phone_number()
  58 + }
  59 + },
  60 + "value": {
  61 + "amount": 50000, # Error @prom when float '50000.99'
  62 + "currency": u"UAH"
  63 + },
  64 + "minimalStep": {
  65 + "amount": 100, # Error @prom when float '100.1'
  66 + "currency": u"UAH"
  67 + },
  68 + "items": [
  69 + {
  70 + "description": fake.catch_phrase(),
  71 + "deliveryDate": {
  72 + "endDate": (now + timedelta(days=5)).isoformat()
  73 + },
  74 + "deliveryLocation": {
  75 + "latitude": u"49.8500° N",
  76 + "longitude": u"24.0167° E"
  77 + },
  78 + "deliveryAddress": {
  79 + "countryName": u"Україна",
  80 + "countryName_ru": u"Украина",
  81 + "countryName_en": "Ukraine",
  82 + "postalCode": fake.postalcode(),
  83 + "region": u"м. Київ",
  84 + "locality": u"м. Київ",
  85 + "streetAddress": fake.street_address()
  86 + },
  87 + "classification": {
  88 + "scheme": u"CPV",
  89 + "id": u"44617100-9",
  90 + "description": u"Картонки",
  91 + "description_ru": u"Большие картонные коробки",
  92 + "description_en": u"Cartons"
  93 + },
  94 + "additionalClassifications": [
  95 + {
  96 + "scheme": u"ДКПП",
  97 + "id": u"17.21.1",
  98 + "description": u"Папір і картон гофровані, паперова й картонна тара"
  99 + }
  100 + ],
  101 + "unit": {
  102 + "name": u"кілограм",
  103 + "name_ru": u"килограмм",
  104 + "name_en": "kilogram",
  105 + "code": u"KGM"
  106 + },
  107 + "quantity": fake.pyint()
  108 + }
  109 + ],
  110 + "enquiryPeriod": {
  111 + "startDate": (now).isoformat(),
  112 + "endDate": (now + timedelta(minutes=1)).isoformat()
  113 + },
  114 + "tenderPeriod": {
  115 + "startDate": (now + timedelta(minutes=2)).isoformat(),
  116 + "endDate": (now + timedelta(minutes=(2 + period_interval))).isoformat()
98 117 }
99   - ],
100   - "enquiryPeriod": {
101   - "startDate": (now).isoformat(),
102   - "endDate": (now + timedelta(minutes=1)).isoformat()
103   - },
104   - "tenderPeriod": {
105   - "startDate": (now + timedelta(minutes=2)).isoformat(),
106   - "endDate": (now + timedelta(minutes=(2+period_interval))).isoformat()
107 118 }
108   -}
  119 +
109 120
110 121 def prom_test_tender_data():
111   - now = get_now()
112   - return {
113   - "title": fake.catch_phrase(),
114   - "mode": "test",
115   - "submissionMethodDetails": "quick",
116   - "description": "Test tender1", #Error @prom when 'Тестовый тендер'
117   - "description_en": "Test tender",
118   - "description_ru": "Тестовый тендер",
119   - "procuringEntity": {
120   - "name": fake.company(),
121   - "name_ru": fake_ru.company(),
122   - "name_en": fake_en.company(),
123   - "identifier": {
124   - "scheme": u"UA-EDR",
125   - "id": u"0000{}".format(fake.pyint()),
126   - "uri": fake.image_url(width=None, height=None)
127   - },
128   - "address": {
129   - "countryName": u"Україна",
130   - "postalCode": fake.postalcode(),
131   - "region": u"м. Київ",
132   - "locality": u"м. Київ",
133   - "streetAddress": fake.street_address()
134   - },
135   - "contactPoint": {
136   - "name": fake.name(),
137   - "telephone": fake.phone_number()
138   - }
139   - },
140   - "value": {
141   - "amount": 50000, #Error @prom when float '50000.99'
142   - "currency": u"UAH"
143   - },
144   - "minimalStep": {
145   - "amount": 100, #Error @prom when float '100.1'
146   - "currency": u"UAH"
147   - },
148   - "items": [
149   - {
150   - "description": fake.catch_phrase(),
151   - "deliveryDate": {
152   - "startDate": (now + timedelta(days=4)).isoformat(),
153   - "endDate": (now + timedelta(days=5)).isoformat()
154   - },
155   - "deliveryLocation": {
156   - "latitude": "49.8500° N",
157   - "longitude": "24.0167° E"
158   - },
159   - "deliveryAddress": {
  122 + now = get_now()
  123 + return {
  124 + "title": fake.catch_phrase(),
  125 + "mode": "test",
  126 + "submissionMethodDetails": "quick",
  127 + "description": u"Тестовий тендер", # Error @prom when "Тестовый тендер"
  128 + "description_ru": u"Тестовый тендер",
  129 + "description_en": "Test tender",
  130 + "procuringEntity": {
  131 + "name": fake.company(),
  132 + "name_ru": fake_ru.company(),
  133 + "name_en": fake_en.company(),
  134 + "identifier": {
  135 + "scheme": u"UA-EDR",
  136 + "id": u"0000{}".format(fake.pyint()),
  137 + "uri": fake.image_url(width=None, height=None)
  138 + },
  139 + "address": {
160 140 "countryName": u"Україна",
  141 + "countryName_ru": u"Украина",
  142 + "countryName_en": "Ukraine",
161 143 "postalCode": fake.postalcode(),
162 144 "region": u"м. Київ",
163 145 "locality": u"м. Київ",
164 146 "streetAddress": fake.street_address()
165 147 },
166   - "classification": {
167   - "scheme": u"CPV",
168   - "id": u"44617100-9",
169   - "description": u"Cartons"
170   - },
171   - "additionalClassifications": [
172   - {
173   - "scheme": u"ДКПП",
174   - "id": u"17.21.1",
175   - "description": u"папір і картон гофровані, паперова й картонна тара"
176   - }
177   - ],
178   - "unit": {
179   - "name": u"кілограм",
180   - "code": u"KGM"
181   - },
182   - "quantity": fake.pyint()
  148 + "contactPoint": {
  149 + "name": fake.name(),
  150 + "telephone": fake.phone_number()
  151 + }
  152 + },
  153 + "value": {
  154 + "amount": 50000, # Error @prom when float '50000.99'
  155 + "currency": u"UAH"
  156 + },
  157 + "minimalStep": {
  158 + "amount": 100, # Error @prom when float '100.1'
  159 + "currency": u"UAH"
  160 + },
  161 + "items": [
  162 + {
  163 + "description": fake.catch_phrase(),
  164 + "deliveryDate": {
  165 + "startDate": (now + timedelta(days=4)).isoformat(),
  166 + "endDate": (now + timedelta(days=5)).isoformat()
  167 + },
  168 + "deliveryLocation": {
  169 + "latitude": "49.8500° N",
  170 + "longitude": "24.0167° E"
  171 + },
  172 + "deliveryAddress": {
  173 + "countryName": u"Україна",
  174 + "countryName_ru": u"Украина",
  175 + "countryName_en": "Ukraine",
  176 + "postalCode": fake.postalcode(),
  177 + "region": u"м. Київ",
  178 + "locality": u"м. Київ",
  179 + "streetAddress": fake.street_address()
  180 + },
  181 + "classification": {
  182 + "scheme": u"CPV",
  183 + "id": u"44617100-9",
  184 + "description": u"Картонки",
  185 + "description_ru": u"Большие картонные коробки",
  186 + "description_en": u"Cartons"
  187 + },
  188 + "additionalClassifications": [
  189 + {
  190 + "scheme": u"ДКПП",
  191 + "id": u"17.21.1",
  192 + "description": u"Папір і картон гофровані, паперова й картонна тара"
  193 + }
  194 + ],
  195 + "unit": {
  196 + "name": u"кілограм",
  197 + "name_ru": u"килограмм",
  198 + "name_en": "kilogram",
  199 + "code": u"KGM"
  200 + },
  201 + "quantity": fake.pyint()
  202 + }
  203 + ],
  204 + "enquiryPeriod": {
  205 + "startDate": (now + timedelta(days=1)).isoformat(),
  206 + "endDate": (now + timedelta(days=2)).isoformat()
  207 + },
  208 + "tenderPeriod": {
  209 + "startDate": (now + timedelta(days=3)).isoformat(),
  210 + "endDate": (now + timedelta(days=5)).isoformat()
183 211 }
184   - ],
185   - "enquiryPeriod": {
186   - "startDate": (now + timedelta(days=1)).isoformat(),
187   - "endDate": (now + timedelta(days=2)).isoformat()
188   - },
189   - "tenderPeriod": {
190   - "startDate": (now + timedelta(days=3)).isoformat(),
191   - "endDate": (now + timedelta(days=5)).isoformat()
192 212 }
193   -}
194 213
195   -def test_tender_data_multiple_lots(period_interval=2):
  214 +
  215 +def test_tender_data_multiple_lots(period_interval):
196 216 now = get_now()
197 217 return {
198   - "title": fake.catch_phrase(),
199   - "mode": "test",
200   - "submissionMethodDetails": "quick",
201   - "description": u"Тестовий тендер",
202   - "description_en": "Test tender",
203   - "description_ru": "Тестовый тендер",
204   - "procuringEntity": {
205   - "name": fake.company(),
206   - "name_ru": fake_ru.company(),
207   - "name_en": fake_en.company(),
208   - "identifier": {
209   - "scheme": u"UA-EDR",
210   - "id": u"0000{}".format(fake.pyint()),
211   - "uri": fake.image_url(width=None, height=None)
212   - },
213   - "address": {
214   - "countryName": u"Україна",
215   - "postalCode": fake.postalcode(),
216   - "region": u"м. Київ",
217   - "locality": u"м. Київ",
218   - "streetAddress": fake.street_address()
219   - },
220   - "contactPoint": {
221   - "name": fake.name(),
222   - "telephone": fake.phone_number()
223   - }
224   - },
225   - "value": {
226   - "amount": 50000.99,
227   - "currency": u"UAH"
228   - },
229   - "minimalStep": {
230   - "amount": 100.1,
231   - "currency": u"UAH"
232   - },
233   - "items": [
234   - {
235   - "description": fake.catch_phrase(),
236   - "deliveryDate": {
237   - "endDate": (now + timedelta(days=5)).isoformat()
238   - },
239   - "deliveryLocation": {
240   - "latitude": 49.8500,
241   - "longitude": 24.0167
242   - },
243   - "deliveryAddress": {
244   - "countryName": u"Україна",
245   - "postalCode": "01008",
246   - "region": u"м. Київ",
247   - "locality": u"м. Київ",
248   - "streetAddress": u"ул. Грушевского, 12/2"
249   - },
250   - "classification": {
251   - "scheme": u"CPV",
252   - "id": u"44617100-9",
253   - "description": u"Cartons"
254   - },
255   - "additionalClassifications": [
256   - {
257   - "scheme": u"ДКПП",
258   - "id": u"17.29.12-00.00",
259   - "description": u"Блоки, плити та пластини фільтрувальні, з паперової маси"
260   - }
261   - ],
262   - "unit": {
263   - "name": u"кілограм",
264   - "code": u"KGM"
265   - },
266   - "quantity": fake.pyint()
267   - },
268   - {
269   - "description": fake.catch_phrase(),
270   - "deliveryDate": {
271   - "endDate": (now + timedelta(days=5)).isoformat()
272   - },
273   - "deliveryLocation": {
274   - "latitude": 49.8500,
275   - "longitude": 24.0167
276   - },
277   - "deliveryAddress": {
  218 + "title": fake.catch_phrase(),
  219 + "mode": "test",
  220 + "submissionMethodDetails": "quick",
  221 + "description": u"Тестовий тендер",
  222 + "description_ru": u"Тестовый тендер",
  223 + "description_en": "Test tender",
  224 + "procuringEntity": {
  225 + "name": fake.company(),
  226 + "name_ru": fake_ru.company(),
  227 + "name_en": fake_en.company(),
  228 + "identifier": {
  229 + "scheme": u"UA-EDR",
  230 + "id": u"0000{}".format(fake.pyint()),
  231 + "uri": fake.image_url(width=None, height=None)
  232 + },
  233 + "address": {
278 234 "countryName": u"Україна",
  235 + "countryName_ru": u"Украина",
  236 + "countryName_en": "Ukraine",
279 237 "postalCode": fake.postalcode(),
280 238 "region": u"м. Київ",
281 239 "locality": u"м. Київ",
282 240 "streetAddress": fake.street_address()
283 241 },
284   - "classification": {
285   - "scheme": u"CPV",
286   - "id": u"44617100-9",
287   - "description": u"Cartons"
288   - },
289   - "additionalClassifications": [
290   - {
291   - "scheme": u"ДКПП",
292   - "id": u"17.21.99-00.00",
293   - "description": u"Роботи субпідрядні як частина виробництва гофрованих паперу й картону, паперової та картонної тари"
294   - }
295   - ],
296   - "unit": {
297   - "name": u"кілограм",
298   - "code": u"KGM"
299   - },
300   - "quantity": fake.pyint()
  242 + "contactPoint": {
  243 + "name": fake.name(),
  244 + "telephone": fake.phone_number()
  245 + }
301 246 },
302   - {
303   - "description": fake.catch_phrase(),
304   - "deliveryDate": {
305   - "endDate": (now + timedelta(days=5)).isoformat()
306   - },
307   - "deliveryLocation": {
308   - "latitude": 49.3418,
309   - "longitude": 39.1829
310   - },
311   - "deliveryAddress": {
312   - "countryName": u"Україна",
313   - "postalCode": fake.postalcode(),
314   - "region": u"м. Луганськ",
315   - "locality": u"м. Луганськ",
316   - "streetAddress": u"Вул. Оборонна 28"
317   - },
318   - "classification": {
319   - "scheme": u"CPV",
320   - "id": u"44617100-9",
321   - "description": u"Cartons"
322   - },
323   - "additionalClassifications": [
324   - {
325   - "scheme": u"ДКПП",
326   - "id": u"17.22.12-40.00",
327   - "description": u"Вата; вироби з вати, інші"
328   - }
329   - ],
330   - "unit": {
331   - "name": u"кілограм",
332   - "code": u"KGM"
333   - },
334   - "quantity": fake.pyint()
  247 + "value": {
  248 + "amount": 50000.99,
  249 + "currency": u"UAH"
335 250 },
336   - {
337   - "description": fake.catch_phrase(),
338   - "deliveryDate": {
339   - "endDate": (now + timedelta(days=5)).isoformat()
340   - },
341   - "deliveryLocation": {
342   - "latitude": 49.8500,
343   - "longitude": 24.0167
344   - },
345   - "deliveryAddress": {
346   - "countryName": u"Україна",
347   - "postalCode": fake.postalcode(),
348   - "region": u"м. Київ",
349   - "locality": u"м. Київ",
350   - "streetAddress": fake.street_address()
  251 + "minimalStep": {
  252 + "amount": 100.1,
  253 + "currency": u"UAH"
  254 + },
  255 + "items": [
  256 + {
  257 + "description": fake.catch_phrase(),
  258 + "deliveryDate": {
  259 + "endDate": (now + timedelta(days=5)).isoformat()
  260 + },
  261 + "deliveryLocation": {
  262 + "latitude": 49.8500,
  263 + "longitude": 24.0167
  264 + },
  265 + "deliveryAddress": {
  266 + "countryName": u"Україна",
  267 + "countryName_ru": u"Украина",
  268 + "countryName_en": "Ukraine",
  269 + "postalCode": "01008",
  270 + "region": u"м. Київ",
  271 + "locality": u"м. Київ",
  272 + "streetAddress": u"ул. Грушевского, 12/2"
  273 + },
  274 + "classification": {
  275 + "scheme": u"CPV",
  276 + "id": u"44617100-9",
  277 + "description": u"Картонки",
  278 + "description_ru": u"Большие картонные коробки",
  279 + "description_en": u"Cartons"
  280 + },
  281 + "additionalClassifications": [
  282 + {
  283 + "scheme": u"ДКПП",
  284 + "id": u"17.29.12-00.00",
  285 + "description": u"Блоки, плити та пластини фільтрувальні, з паперової маси"
  286 + }
  287 + ],
  288 + "unit": {
  289 + "name": u"кілограм",
  290 + "name_ru": u"килограмм",
  291 + "name_en": "kilogram",
  292 + "code": u"KGM"
  293 + },
  294 + "quantity": fake.pyint()
351 295 },
352   - "classification": {
353   - "scheme": u"CPV",
354   - "id": u"44617100-9",
355   - "description": u"Cartons"
  296 + {
  297 + "description": fake.catch_phrase(),
  298 + "deliveryDate": {
  299 + "endDate": (now + timedelta(days=5)).isoformat()
  300 + },
  301 + "deliveryLocation": {
  302 + "latitude": 49.8500,
  303 + "longitude": 24.0167
  304 + },
  305 + "deliveryAddress": {
  306 + "countryName": u"Україна",
  307 + "countryName_ru": u"Украина",
  308 + "countryName_en": "Ukraine",
  309 + "postalCode": fake.postalcode(),
  310 + "region": u"м. Київ",
  311 + "locality": u"м. Київ",
  312 + "streetAddress": fake.street_address()
  313 + },
  314 + "classification": {
  315 + "scheme": u"CPV",
  316 + "id": u"44617100-9",
  317 + "description": u"Картонки",
  318 + "description_ru": u"Большие картонные коробки",
  319 + "description_en": u"Cartons"
  320 + },
  321 + "additionalClassifications": [
  322 + {
  323 + "scheme": u"ДКПП",
  324 + "id": u"17.21.99-00.00",
  325 + "description": u"Роботи субпідрядні як частина виробництва гофрованих паперу й картону, паперової та картонної тари"
  326 + }
  327 + ],
  328 + "unit": {
  329 + "name": u"кілограм",
  330 + "name_ru": u"килограмм",
  331 + "name_en": "kilogram",
  332 + "code": u"KGM"
  333 + },
  334 + "quantity": fake.pyint()
356 335 },
357   - "additionalClassifications": [
358   - {
359   - "scheme": u"ДКПП",
360   - "id": u"17.22.12-50.00",
361   - "description": u"Одяг і речі до одягу з паперової маси, паперу, целюлозної вати чи полотна з целюлозного волокна (крім носових хусточок, наголовних уборів)"
362   - }
363   - ],
364   - "unit": {
365   - "name": u"кілограм",
366   - "code": u"KGM"
  336 + {
  337 + "description": fake.catch_phrase(),
  338 + "deliveryDate": {
  339 + "endDate": (now + timedelta(days=5)).isoformat()
  340 + },
  341 + "deliveryLocation": {
  342 + "latitude": 49.3418,
  343 + "longitude": 39.1829
  344 + },
  345 + "deliveryAddress": {
  346 + "countryName": u"Україна",
  347 + "countryName_ru": u"Украина",
  348 + "countryName_en": "Ukraine",
  349 + "postalCode": fake.postalcode(),
  350 + "region": u"Луганська область",
  351 + "locality": u"м. Луганськ",
  352 + "streetAddress": u"Вул. Оборонна 28"
  353 + },
  354 + "classification": {
  355 + "scheme": u"CPV",
  356 + "id": u"44617100-9",
  357 + "description": u"Картонки",
  358 + "description_ru": u"Большие картонные коробки",
  359 + "description_en": u"Cartons"
  360 + },
  361 + "additionalClassifications": [
  362 + {
  363 + "scheme": u"ДКПП",
  364 + "id": u"17.22.12-40.00",
  365 + "description": u"Вата; вироби з вати, інші"
  366 + }
  367 + ],
  368 + "unit": {
  369 + "name": u"кілограм",
  370 + "name_ru": u"килограмм",
  371 + "name_en": "kilogram",
  372 + "code": u"KGM"
  373 + },
  374 + "quantity": fake.pyint()
367 375 },
368   - "quantity": fake.pyint()
  376 + {
  377 + "description": fake.catch_phrase(),
  378 + "deliveryDate": {
  379 + "endDate": (now + timedelta(days=5)).isoformat()
  380 + },
  381 + "deliveryLocation": {
  382 + "latitude": 49.8500,
  383 + "longitude": 24.0167
  384 + },
  385 + "deliveryAddress": {
  386 + "countryName": u"Україна",
  387 + "countryName_ru": u"Украина",
  388 + "countryName_en": "Ukraine",
  389 + "postalCode": fake.postalcode(),
  390 + "region": u"м. Київ",
  391 + "locality": u"м. Київ",
  392 + "streetAddress": fake.street_address()
  393 + },
  394 + "classification": {
  395 + "scheme": u"CPV",
  396 + "id": u"44617100-9",
  397 + "description": u"Картонки",
  398 + "description_ru": u"Большие картонные коробки",
  399 + "description_en": u"Cartons"
  400 + },
  401 + "additionalClassifications": [
  402 + {
  403 + "scheme": u"ДКПП",
  404 + "id": u"17.22.12-50.00",
  405 + "description": u"Одяг і речі до одягу з паперової маси, паперу, целюлозної вати чи полотна з целюлозного волокна (крім носових хусточок, наголовних уборів)"
  406 + }
  407 + ],
  408 + "unit": {
  409 + "name": u"кілограм",
  410 + "name_ru": u"килограмм",
  411 + "name_en": "kilogram",
  412 + "code": u"KGM"
  413 + },
  414 + "quantity": fake.pyint()
  415 + }
  416 + ],
  417 + "enquiryPeriod": {
  418 + "startDate": (now).isoformat(),
  419 + "endDate": (now + timedelta(minutes=1)).isoformat()
  420 + },
  421 + "tenderPeriod": {
  422 + "startDate": (now + timedelta(minutes=2)).isoformat(),
  423 + "endDate": (now + timedelta(minutes=(2 + period_interval))).isoformat()
369 424 }
370   - ],
371   - "enquiryPeriod": {
372   - "startDate": (now).isoformat(),
373   - "endDate": (now + timedelta(minutes=1)).isoformat()
374   - },
375   - "tenderPeriod": {
376   - "startDate": (now + timedelta(minutes=2)).isoformat(),
377   - "endDate": (now + timedelta(minutes=(2+period_interval))).isoformat()
378 425 }
379   -}
  426 +
380 427
381 428 def test_question_data():
382 429 return munchify({
383 430 "data": {
384 431 "author": {
385 432 "address": {
386   - "countryName": "Україна",
387   - "locality": "м. Вінниця",
  433 + "countryName": u"Україна",
  434 + "countryName_ru": u"Украина",
  435 + "countryName_en": "Ukraine",
  436 + "locality": u"м. Вінниця",
388 437 "postalCode": "21100",
389   - "region": "м. Вінниця",
  438 + "region": u"Вінницька область",
390 439 "streetAddress": fake.street_address()
391 440 },
392 441 "contactPoint": {
... ... @@ -413,15 +462,18 @@ def test_question_answer_data():
413 462 }
414 463 })
415 464
  465 +
416 466 def test_complaint_data():
417 467 return munchify({
418 468 "data": {
419 469 "author": {
420 470 "address": {
421   - "countryName": "Україна",
422   - "locality": "м. Вінниця",
  471 + "countryName": u"Україна",
  472 + "countryName_ru": u"Украина",
  473 + "countryName_en": "Ukraine",
  474 + "locality": u"м. Вінниця",
423 475 "postalCode": "21100",
424   - "region": "м. Вінниця",
  476 + "region": u"Вінницька область",
425 477 "streetAddress": fake.street_address()
426 478 },
427 479 "contactPoint": {
... ... @@ -440,9 +492,10 @@ def test_complaint_data():
440 492 }
441 493 })
442 494
  495 +
443 496 def test_complaint_reply_data():
444 497 return munchify({
445   - "data": {
  498 + "data": {
446 499 "status": "resolved"
447 500 }
448 501 })
... ... @@ -454,10 +507,12 @@ def test_bid_data():
454 507 "tenderers": [
455 508 {
456 509 "address": {
457   - "countryName": "Україна",
458   - "locality": "м. Вінниця",
  510 + "countryName": u"Україна",
  511 + "countryName_ru": u"Украина",
  512 + "countryName_en": "Ukraine",
  513 + "locality": u"м. Вінниця",
459 514 "postalCode": "21100",
460   - "region": "м. Вінниця",
  515 + "region": u"Вінницька область",
461 516 "streetAddress": fake.street_address()
462 517 },
463 518 "contactPoint": {
... ... @@ -477,13 +532,15 @@ def test_bid_data():
477 532 }
478 533 })
479 534
  535 +
480 536 def auction_bid():
481 537 return munchify({
482   - "data": {"value": {
483   - "amount": 200,
484   - "currency": "UAH",
485   - "valueAddedTaxIncluded": true
486   - }
  538 + "data": {
  539 + "value": {
  540 + "amount": 200,
  541 + "currency": "UAH",
  542 + "valueAddedTaxIncluded": true
  543 + }
487 544 }
488 545 })
489 546
... ...
... ... @@ -28,9 +28,6 @@ Set Suite Variable With Default Value
28 28 log ${BROKERS}
29 29 Set Global Variable ${BROKERS}
30 30
31   - ${brokers_list}= Get Dictionary Items ${BROKERS}
32   - log ${brokers_list}
33   -
34 31 ${file_path}= Get Variable Value ${USERS_FILE} users.yaml
35 32 ${USERS}= load_initial_data_from ${file_path}
36 33 Set Global Variable ${USERS}
... ... @@ -47,8 +44,30 @@ Set Suite Variable With Default Value
47 44 \ log ${active_users}
48 45 \ log ${username}
49 46 \ ${status}= Run Keyword And Return Status Dictionary Should Contain Value ${active_users} ${username}
50   - \ Run Keyword If '${status}' == 'True' Завантажуємо бібліотеку з реалізацією ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file} майданчики
51   - \ Run Keyword If '${status}' == 'True' Викликати для учасника ${username} Підготувати клієнт для користувача
  47 + \ ${keywords_file}= Get Broker Property By Username ${username} keywords_file
  48 + \ Run Keyword If '${status}' == 'True' Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file}
  49 + \ Run Keyword If '${status}' == 'True' Викликати для учасника ${username} Підготувати клієнт для користувача
  50 +
  51 +Get Broker Property
  52 + [Arguments] ${broker_name} ${property}
  53 + [Documentation]
  54 + ... This keyword returns a property of specified broker
  55 + ... if that property exists, otherwise, it returns a
  56 + ... default value.
  57 + ${status}= Run Keyword And Return Status Should Contain ${BROKERS['${broker_name}']} ${property}
  58 + Return From Keyword If ${status} ${BROKERS['${broker_name}'].${property}}
  59 + # If broker doesn't have that property, fall back to default value
  60 + Should Contain ${BROKERS['Default']} ${property}
  61 + [return] ${BROKERS['Default'].${property}}
  62 +
  63 +Get Broker Property By Username
  64 + [Documentation]
  65 + ... This keyword gets the corresponding broker name
  66 + ... for a specified username and then calls
  67 + ... "Get Broker Property"
  68 + [Arguments] ${username} ${property}
  69 + ${broker_name}= Get Variable Value ${USERS.users['${username}'].broker}
  70 + Run Keyword And Return Get Broker Property ${broker_name} ${property}
52 71
53 72 Підготовка початкових даних
54 73 @{QUESTIONS} = Create list
... ... @@ -67,27 +86,27 @@ Set Suite Variable With Default Value
67 86 ${reply}= test_complaint_reply_data
68 87 Append to list ${REPLIES} ${reply}
69 88 Set Global Variable ${REPLIES}
70   - ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode}
  89 + ${period_interval}= Get Broker Property By Username ${tender_owner} period_interval
  90 + ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${period_interval} ${mode}
71 91 Set Global Variable ${INITIAL_TENDER_DATA}
72 92 ${TENDER}= Create Dictionary
73 93 Set Global Variable ${TENDER}
74 94 Log ${TENDER}
75 95 Log ${INITIAL_TENDER_DATA}
76 96
77   -Завантажуємо бібліотеку з реалізацією ${keywords_file} майданчики
  97 +Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file}
78 98 Import Resource ${CURDIR}/brokers/${keywords_file}.robot
79 99
80 100 ##################################################################################
81 101 Дочекатись синхронізації з майданчиком
82 102 [Arguments] ${username}
83 103 [Documentation]
84   - ... ${ARGUMENTS[0]} == username
85   - ... ${ARGUMENTS[1]} == tenderId
86   - ... ${ARGUMENTS[2]} == id
87   -
  104 + ... Get ${wait_timeout} for specified user and wait
  105 + ... until that timeout runs out.
88 106 ${now}= Get Current Date
89 107 ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']}
90   - ${wait_timeout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timeout_on_wait} ${delta}
  108 + ${timeout_on_wait}= Get Broker Property By Username ${username} timeout_on_wait
  109 + ${wait_timeout}= Subtract Time From Time ${timeout_on_wait} ${delta}
91 110 Run Keyword If ${wait_timeout}>0 Sleep ${wait_timeout}
92 111
93 112 Звірити поле тендера
... ... @@ -147,21 +166,20 @@ Set Suite Variable With Default Value
147 166 ... this keyword takes "shouldfail" argument as first one in @{arguments}
148 167 ... and switches the behaviour of keyword and "shouldfail"
149 168 [Arguments] ${username} ${command} @{arguments}
150   - log ${username}
151   - log ${command}
152   - log ${arguments}
153   - ${state}= change_state ${arguments}
154   - ${value}= Run keyword if '${state}' == 'shouldfail' SwitchState ${username} ${command} @{arguments}
155   - ${value}= Run keyword if '${state}' == 'pass' Normal ${username} ${command} @{arguments}
156   - [return] ${value}
  169 + Log ${username}
  170 + Log ${command}
  171 + Log ${arguments}
  172 + ${state}= change_state ${arguments}
  173 + Run Keyword And Return If '${state}' == 'shouldfail' SwitchState ${username} ${command} @{arguments}
  174 + Run Keyword And Return If '${state}' == 'pass' Normal ${username} ${command} @{arguments}
157 175
158 176 Normal
159 177 [Arguments] ${username} ${command} @{arguments}
160   - log ${username}
161   - log ${command}
162   - log ${arguments}
163   - ${value}= Run Keyword ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments}
164   - [return] ${value}
  178 + Log ${username}
  179 + Log ${command}
  180 + Log ${arguments}
  181 + ${keywords_file}= Get Broker Property By Username ${username} keywords_file
  182 + Run Keyword And Return ${keywords_file}.${command} ${username} @{arguments}
165 183
166 184 SwitchState
167 185 [Arguments] ${username} ${command} @{arguments}
... ... @@ -170,7 +188,8 @@ SwitchState
170 188 log ${arguments}
171 189 Remove From List ${arguments} 0
172 190 log ${arguments}
173   - ${status} ${value}= run_keyword_and_ignore_keyword_definitions ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments}
  191 + ${keywords_file}= Get Broker Property By Username ${username} keywords_file
  192 + ${status} ${value}= run_keyword_and_ignore_keyword_definitions ${keywords_file}.${command} ${username} @{arguments}
174 193 Run keyword if '${status}' == 'PASS' Log Учасник ${username} зміг виконати "${command}" WARN
175 194 [return] ${value}
176 195
... ...
... ... @@ -189,9 +189,7 @@ def Add_data_for_GUI_FrontEnds(INITIAL_TENDER_DATA):
189 189 return INITIAL_TENDER_DATA
190 190
191 191 def local_path_to_file(file_name):
192   - path = os.getcwd()
193   - path = path.split("brokers", 1)[0] + "/src/op_robot_tests/op_robot_tests/tests_files/documents/" + file_name
194   - return path
  192 + return os.path.join(os.path.dirname(__file__), 'documents', file_name)
195 193
196 194 ## E-Tender
197 195 def convert_date_to_etender_format(isodate):
... ...
... ... @@ -216,7 +216,7 @@ ${question_id} 0
216 216 Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']}
217 217 Звірити поле ${viewer} questions[${question_id}].answer ${ANSWERS[${question_id}].data.answer}
218 218
219   -Подати цінову пропозицію bidder
  219 +Подати цінову пропозицію першим учасником
220 220 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
221 221 Дочекатись дати початку прийому пропозицій
222 222 ${bid}= test bid data
... ...
1   -from setuptools import setup, find_packages
2   -import os
3   -import sys
  1 +from setuptools import find_packages, setup
4 2
5 3 version = '0.0'
6 4
... ...
Please register or login to post a comment