keywords.robot
8.09 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
*** Settings ***
Resource resource.robot
Library op_robot_tests.tests_files.service_keywords
Library String
Library Collections
Library Selenium2Library
Library DateTime
Library Selenium2Screenshots
Library DebugLibrary
Library op_robot_tests.tests_files.brokers.openprocurement_client_helper
*** Variables ***
*** Keywords ***
TestSuiteSetup
Завантажуємо дані про користувачів і майданчики ${LOAD_USERS}
Підготовка початкових даних
Завантажуємо дані про користувачів і майданчики
[Arguments] ${active_users}
log ${active_users}
${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml
${BROKERS}= load_initial_data_from ${file_path}
log ${BROKERS}
Set Global Variable ${BROKERS}
${brokers_list}= Get Dictionary Items ${BROKERS}
log ${brokers_list}
${file_path}= Get Variable Value ${USERS_FILE} users.yaml
${USERS}= load_initial_data_from ${file_path}
Set Global Variable ${USERS}
${users_list}= Get Dictionary Items ${USERS.users}
:FOR ${username} ${user_data} IN @{users_list}
\ log ${active_users}
\ log ${username}
\ ${status}= Run Keyword And Return Status List Should Contain Value ${active_users} ${username}
\ Run Keyword If '${status}' == 'True' Завантажуємо бібліотеку з реалізацією ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file} майданчики
\ Run Keyword If '${status}' == 'True' Викликати для учасника ${username} Підготувати клієнт для користувача
Підготовка початкових даних
@{QUESTIONS} = Create list
${question}= test question data
Append to list ${QUESTIONS} ${question}
Set Global Variable ${QUESTIONS}
@{ANSWERS} = Create list
${answer}= test_question_answer_data
Append to list ${ANSWERS} ${answer}
Set Global Variable ${ANSWERS}
@{COMPLAINTS} = Create list
${complaint}= test_complaint_data
Append to list ${COMPLAINTS} ${complaint}
Set Global Variable ${COMPLAINTS}
@{REPLIES} = Create list
${reply}= test_complaint_reply_data
Append to list ${REPLIES} ${reply}
Set Global Variable ${REPLIES}
${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode}
Set Global Variable ${INITIAL_TENDER_DATA}
${TENDER}= Create Dictionary
Set Global Variable ${TENDER}
Log ${TENDER}
Log ${INITIAL_TENDER_DATA}
Завантажуємо бібліотеку з реалізацією ${keywords_file} майданчики
Import Resource ${CURDIR}/brokers/${keywords_file}.robot
##################################################################################
Дочекатись синхронізації з майданчиком
[Arguments] ${username}
[Documentation]
... ${ARGUMENTS[0]} == username
... ${ARGUMENTS[1]} == tenderId
... ${ARGUMENTS[2]} == id
${now}= Get Current Date
${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']}
${wait_timeout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timeout_on_wait} ${delta}
Run Keyword If ${wait_timeout}>0 Sleep ${wait_timeout}
Звірити поле тендера
[Arguments] ${username} ${field}
${field_value}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field}
Звірити поле ${username} ${field} ${field_value}
Звірити поле
[Arguments] ${username} ${field} ${subject}
${field_response}= Викликати для учасника ${username} Отримати інформацію із тендера ${field}
Should Not Be Equal ${field_response} ${None}
Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker}
Звірити поле створеного тендера
[Arguments] ${initial} ${tender_data} ${field}
${field_value}= Get_From_Object ${initial} ${field}
${field_response}= Get_From_Object ${tender_data} ${field}
Should Not Be Equal ${field_response} ${None}
Should Not Be Equal ${field_value} ${None}
Should Be Equal ${field_value} ${field_response}
Звірити дату тендера
[Arguments] ${username} ${field}
${isodate}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field}
Should Not Be Equal ${isodate} ${None}
Звірити дату ${username} ${field} ${isodate}
Звірити дату
[Arguments] ${username} ${field} ${subject}
${field_date}= Викликати для учасника ${username} Отримати інформацію із тендера ${field}
${returned}= compare_date ${subject} ${field_date}
Should Not Be Equal ${field_date} ${None}
Should Not Be Equal ${returned} ${None}
Should Be True '${returned}' == 'True'
Звірити поля предметів закупівлі багатопредметного тендера
[Arguments] ${username} ${field}
Дочекатись синхронізації з майданчиком ${username}
@{items}= Get_From_Object ${INITIAL_TENDER_DATA.data} items
${len_of_items}= Get Length ${items}
:FOR ${index} IN RANGE ${len_of_items}
\ Log ${index}
\ Звірити поле тендера ${viewer} items[${index}].${field}
Звірити дату предметів закупівлі багатопредметного тендера
[Arguments] ${username} ${field}
Дочекатись синхронізації з майданчиком ${username}
@{items}= Get_From_Object ${INITIAL_TENDER_DATA.data} items
${len_of_items}= Get Length ${items}
:FOR ${index} IN RANGE ${len_of_items}
\ Log ${index}
\ Звірити дату тендера ${viewer} items[${index}].${field}
Викликати для учасника
[Documentation]
... Cause sometimes keyword SHOULD fail to pass the testcase,
... this keyword takes "shouldfail" argument as first one in @{arguments}
... and switches the behaviour of keyword and "shouldfail"
[Arguments] ${username} ${command} @{arguments}
log ${username}
log ${command}
log ${arguments}
${state}= change_state ${arguments}
${value}= Run keyword if '${state}' == 'shouldfail' SwitchState ${username} ${command} @{arguments}
${value}= Run keyword if '${state}' == 'pass' Normal ${username} ${command} @{arguments}
[return] ${value}
Normal
[Arguments] ${username} ${command} @{arguments}
log ${username}
log ${command}
log ${arguments}
${value}= Run Keyword ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments}
[return] ${value}
SwitchState
[Arguments] ${username} ${command} @{arguments}
log ${username}
log ${command}
log ${arguments}
Remove From List ${arguments} 0
log ${arguments}
${status} ${value}= run_keyword_and_ignore_keyword_definitions ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command} ${username} @{arguments}
Run keyword if '${status}' == 'PASS' Log Учасник ${username} зміг виконати "${command}" WARN
[return] ${value}
Дочекатись дати
[Arguments] ${date}
${wait_timeout}= wait_to_date ${date}
Run Keyword If ${wait_timeout}>0 Sleep ${wait_timeout}
Дочекатись дати початку прийому пропозицій
Дочекатись дати ${TENDER_DATA.data.tenderPeriod.startDate}
Дочекатись дати закінчення прийому пропозицій
Дочекатись дати ${TENDER_DATA.data.tenderPeriod.endDate}
Дочекатись дати початку аукціону
Дочекатись дати ${TENDER_DATA.data.auctionPeriod.startDate}
Дочекатись дати закінчення аукціону
Дочекатись дати ${TENDER_DATA.data.auctionPeriod.endDate}