playtender.robot
7.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
*** Settings ***
Resource playtender_common.robot
Resource playtender_plan.robot
*** Variables ***
*** Keywords ***
Підготувати клієнт для користувача
[Arguments] ${username}
[Documentation] Відкриває переглядач на потрібній сторінці, готує api wrapper, тощо.
init environment ${username}
open browser ${broker_baseurl} ${broker_browser} alias=${broker_username}
add cookie robottest 1 # for detecting from site side
set window size @{browser_default_size}
set window position @{browser_default_position}
set site language by code ${broker_language_code}
login to site ${USERS.users['${broker_username}']}
Підготувати дані для оголошення тендера
[Arguments] ${username} ${tender_data} ${role_name}
[Documentation] Адаптувати початкові дані для створення тендера. Наприклад, змінити дані про procuringEntity на дані
... про користувача tender_owner на майданчику. Перевіряючи значення аргументу role_name, можна адаптувати
... різні дані для різних ролей (наприклад, необхідно тільки для ролі tender_owner забрати з початкових
... даних поле mode: test, а для інших ролей не потрібно робити нічого). Це ключове слово викликається в
... циклі для кожної ролі, яка бере участь в поточному сценарії. З ключового слова потрібно повернути
... адаптовані дані tender_data. Різниця між початковими даними і кінцевими буде виведена в консоль під
... час запуску тесту.
${tender_data_keys} = get dictionary keys ${tender_data['data']}
run keyword if ${is_test_role_owner} and 'procuringEntity' in ${tender_data_keys} prepare procuring entity data ${tender_data['data']['procuringEntity']}
#run keyword if ${is_test_role_owner} and 'buyers' in ${tender_data_keys} prepare buyers data ${tender_data['data']['buyers']}
[Return] ${tender_data}
Створити план
[Arguments] ${user} ${plan_data}
[Documentation] Створити план з початковими даними plan_data. Повернути uaid створеного плану.
# check buyers
${buyers_count} = get length ${plan_data['data']['buyers']}
run keyword if ${buyers_count} != 1 fail Buyer must be one
open new plan form
fill plan form ${plan_data['data']}
save plan form and wait synchronization
${plan_uaid} = get text ${plan_uaid_text_locator}
[Return] ${plan_uaid}
Оновити сторінку з планом
[Arguments] ${username} ${plan_uaid}
[Documentation] Оновити сторінку з планом для отримання потенційно оновлених даних.
open plan page by uaid ${plan_uaid}
Пошук плану по ідентифікатору
[Arguments] ${username} ${plan_uaid}
[Documentation] Знайти план за зазначеним plan_uaid.
open plan search form
input to search form and wait results ${plan_search_form_query_input_locator} ${plan_uaid} ${plan_search_form_result_locator_tpl}
Внести зміни в план
[Arguments] ${username} ${plan_uaid} ${fieldname} ${fieldvalue}
[Documentation] Змінити значення поля fieldname на fieldvalue для плана із зазначеним plan_uaid.
${plan_data} = generate dictionary from field path and value ${fieldname} ${fieldvalue}
open plan form by uaid ${plan_uaid}
fill plan form ${plan_data}
save plan form and wait synchronization
Додати предмет закупівлі в план
[Arguments] ${username} ${plan_uaid} ${item_data}
[Documentation] Додати дані про предмет item до плану plan_uaid.
open plan form by uaid ${plan_uaid}
${items} = create list ${item_data}
fill plan form items ${items}
save plan form and wait synchronization
Видалити предмет закупівлі плану
[Arguments] ${username} ${plan_uaid} ${item_id}
[Documentation] Видалити з плану plan_uaid предмет з item_id в описі.
open plan form by uaid ${plan_uaid}
${delete_item_btn_locator} = replace string ${plan_form_remove_item_btn_locator_tpl} %title% ${item_id}
click removing form item and wait success result ${delete_item_btn_locator}
save plan form and wait synchronization
Отримати інформацію із плану
[Arguments] ${username} ${plan_uaid} ${field_name}
[Documentation] Отримати інформацію із плану, користуючись ідентіфікатором плану та назвою поля ${field_name}.
open plan page by uaid ${plan_uaid} ${False}
${field_name} = set variable plan.${field_name}.value
${value} = get field_value by field_name on opened page ${field_name}
[Return] ${value}