Commit 360b3b2c9099a9ab5eb4c9c194162f31de438a42
Merge pull request #27 from selurvedu/black_friday
Introduce default and overridden values for brokers.yaml; various fixes, minor and trivial improvements
Showing
15 changed files
with
632 additions
and
544 deletions
... | ... | @@ -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 | ... | ... |
Please
register
or
login
to post a comment