Commit 7e6a01bf8c02dc2e4d91e866e227a5391bf3b4a7
Committed by
GitHub
Merge pull request #29 from ProzorroUKR/improvement/tenders-feed
CS-1185 Add tenders feed tests. Read all tenders.
Showing
5 changed files
with
179 additions
and
9 deletions
... | ... | @@ -79,11 +79,68 @@ Resource resource.robot |
79 | 79 | Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
80 | 80 | |
81 | 81 | |
82 | +Можливість прочитати тендери | |
83 | + :FOR ${username} IN ${viewer} | |
84 | + \ Можливість прочитати тендери для користувача ${username} | |
85 | + | |
86 | + | |
87 | +Можливість прочитати тендери для користувача ${username} | |
88 | + ${tenders_feed}= Отримати список тендерів ${username} | |
89 | + ${tenders_len}= Get Length ${tenders_feed} | |
90 | + ${number}= Evaluate min(${FEED_ITEMS_NUMBER}, ${tenders_len}) | |
91 | + ${sample}= Evaluate random.sample(range(0, ${tenders_len}), ${number}) random | |
92 | + Log To Console ${number}/${tenders_len} | |
93 | + :FOR ${index} IN @{sample} | |
94 | + \ ${tenders_feed_item}= Get From List ${tenders_feed} ${index} | |
95 | + \ ${internalid}= Get From Dictionary ${tenders_feed_item} id | |
96 | + \ ${date_modified}= Get From Dictionary ${tenders_feed_item} dateModified | |
97 | + \ Log To Console - Читання тендеру з id ${internalid} та датою модифікації ${date_modified} | |
98 | + \ Отримати тендер по внутрішньому ідентифікатору ${username} ${internalid} | |
99 | + | |
100 | + | |
82 | 101 | Можливість знайти план по ідентифікатору |
83 | 102 | :FOR ${username} IN ${tender_owner} ${viewer} |
84 | 103 | \ Можливість знайти план по ідентифікатору для користувача ${username} |
85 | 104 | |
86 | 105 | |
106 | +Можливість прочитати плани | |
107 | + :FOR ${username} IN ${viewer} | |
108 | + \ Можливість прочитати плани для користувача ${username} | |
109 | + | |
110 | + | |
111 | +Можливість прочитати плани для користувача ${username} | |
112 | + ${plans_feed}= Отримати список планів ${username} | |
113 | + ${plans_len}= Get Length ${plans_feed} | |
114 | + ${number}= Evaluate min(${FEED_ITEMS_NUMBER}, ${plans_len}) | |
115 | + ${sample}= Evaluate random.sample(range(0, ${plans_len}), ${number}) random | |
116 | + Log To Console ${number}/${plans_len} | |
117 | + :FOR ${index} IN @{sample} | |
118 | + \ ${plans_feed_item}= Get From List ${plans_feed} ${index} | |
119 | + \ ${internalid}= Get From Dictionary ${plans_feed_item} id | |
120 | + \ ${date_modified}= Get From Dictionary ${plans_feed_item} dateModified | |
121 | + \ Log To Console - Читання плану з id ${internalid} та датою модифікації ${date_modified} | |
122 | + \ Отримати план по внутрішньому ідентифікатору ${username} ${internalid} | |
123 | + | |
124 | + | |
125 | +Можливість прочитати договори | |
126 | + :FOR ${username} IN ${viewer} | |
127 | + \ Можливість прочитати договори для користувача ${username} | |
128 | + | |
129 | + | |
130 | +Можливість прочитати договори для користувача ${username} | |
131 | + ${contracts_feed}= Отримати список договорів ${username} | |
132 | + ${contracts_len}= Get Length ${contracts_feed} | |
133 | + ${number}= Evaluate min(${FEED_ITEMS_NUMBER}, ${contracts_len}) | |
134 | + ${sample}= Evaluate random.sample(range(0, ${contracts_len}), ${number}) random | |
135 | + Log To Console ${number}/${contracts_len} | |
136 | + :FOR ${index} IN @{sample} | |
137 | + \ ${contracts_feed_item}= Get From List ${contracts_feed} ${index} | |
138 | + \ ${internalid}= Get From Dictionary ${contracts_feed_item} id | |
139 | + \ ${date_modified}= Get From Dictionary ${contracts_feed_item} dateModified | |
140 | + \ Log To Console - Читання договору з id ${internalid} та датою модифікації ${date_modified} | |
141 | + \ Отримати договір по внутрішньому ідентифікатору ${username} ${internalid} | |
142 | + | |
143 | + | |
87 | 144 | Можливість знайти об'єкт моніторингу по ідентифікатору |
88 | 145 | :FOR ${username} IN ${viewer} ${dasu_user} |
89 | 146 | \ Можливість знайти об'єкт моніторингу по ідентифікатору для користувача ${username} | ... | ... |
... | ... | @@ -225,9 +225,15 @@ Library openprocurement_client.utils |
225 | 225 | [return] ${tender.data.planID} |
226 | 226 | |
227 | 227 | |
228 | -Пошук тендера по ідентифікатору | |
229 | - [Arguments] ${username} ${tender_uaid} ${save_key}=tender_data | |
230 | - ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} | |
228 | +Отримати список тендерів | |
229 | + [Arguments] ${username} | |
230 | + ${tenders_feed_generator}= Run Keyword get_tenders_feed ${USERS.users['${username}'].client} | |
231 | + @{tenders_feed}= Set Variable @{tenders_feed_generator} | |
232 | + [return] ${tenders_feed} | |
233 | + | |
234 | + | |
235 | +Отримати тендер по внутрішньому ідентифікатору | |
236 | + [Arguments] ${username} ${internalid} ${save_key}=tender_data | |
231 | 237 | ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid} |
232 | 238 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
233 | 239 | Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender} |
... | ... | @@ -236,6 +242,13 @@ Library openprocurement_client.utils |
236 | 242 | [return] ${tender} |
237 | 243 | |
238 | 244 | |
245 | +Пошук тендера по ідентифікатору | |
246 | + [Arguments] ${username} ${tender_uaid} ${save_key}=tender_data | |
247 | + ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} | |
248 | + ${tender}= openprocurement_client.Отримати тендер по внутрішньому ідентифікатору ${username} ${internalid} ${save_key} | |
249 | + [return] ${tender} | |
250 | + | |
251 | + | |
239 | 252 | Пошук об'єкта моніторингу по ідентифікатору |
240 | 253 | [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring_data |
241 | 254 | ${internalid}= openprocurement_client.Отримати internal id об'єкта моніторингу по UAid ${username} ${monitoring_uaid} |
... | ... | @@ -353,9 +366,15 @@ Library openprocurement_client.utils |
353 | 366 | [return] ${reply} |
354 | 367 | |
355 | 368 | |
356 | -Пошук плану по ідентифікатору | |
357 | - [Arguments] ${username} ${tender_uaid} ${save_key}=tender_data | |
358 | - ${internalid}= openprocurement_client.Отримати internal id плану по UAid ${username} ${tender_uaid} | |
369 | +Отримати список планів | |
370 | + [Arguments] ${username} | |
371 | + ${plans_feed_generator}= Run Keyword get_plans_feed ${USERS.users['${username}'].client} | |
372 | + @{plans_feed}= Set Variable @{plans_feed_generator} | |
373 | + [return] ${plans_feed} | |
374 | + | |
375 | + | |
376 | +Отримати план по внутрішньому ідентифікатору | |
377 | + [Arguments] ${username} ${internalid} ${save_key}=tender_data | |
359 | 378 | ${tender}= Call Method ${USERS.users['${username}'].client} get_plan ${internalid} |
360 | 379 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
361 | 380 | Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender} |
... | ... | @@ -364,6 +383,13 @@ Library openprocurement_client.utils |
364 | 383 | [return] ${tender} |
365 | 384 | |
366 | 385 | |
386 | +Пошук плану по ідентифікатору | |
387 | + [Arguments] ${username} ${tender_uaid} ${save_key}=tender_data | |
388 | + ${internalid}= openprocurement_client.Отримати internal id плану по UAid ${username} ${tender_uaid} | |
389 | + ${tender}= openprocurement_client.Отримати план по внутрішньому ідентифікатору ${username} ${internalid} ${save_key} | |
390 | + [return] ${tender} | |
391 | + | |
392 | + | |
367 | 393 | Пошук тендера за кошти донора |
368 | 394 | [Arguments] ${username} ${funder_id}=${None} ${save_key}=tenders_with_funder |
369 | 395 | ${tenders}= get_tenders_by_funder_id ${USERS.users['${username}'].client} ${funder_id} |
... | ... | @@ -1868,9 +1894,15 @@ Library openprocurement_client.utils |
1868 | 1894 | openprocurement_client.Пошук договору по ідентифікатору ${username} ${contract_uaid} |
1869 | 1895 | |
1870 | 1896 | |
1871 | -Пошук договору по ідентифікатору | |
1872 | - [Arguments] ${username} ${contract_uaid} | |
1873 | - ${internalid}= openprocurement_client.Отримати internal id по UAid для договору ${username} ${contract_uaid} | |
1897 | +Отримати список договорів | |
1898 | + [Arguments] ${username} | |
1899 | + ${contracts_feed_generator}= Run Keyword get_contracts_feed ${USERS.users['${username}'].contracting_client} | |
1900 | + @{contracts_feed}= Set Variable @{contracts_feed_generator} | |
1901 | + [return] ${contracts_feed} | |
1902 | + | |
1903 | + | |
1904 | +Отримати договір по внутрішньому ідентифікатору | |
1905 | + [Arguments] ${username} ${internalid} | |
1874 | 1906 | ${contract}= Call Method ${USERS.users['${username}'].contracting_client} get_contract ${internalid} |
1875 | 1907 | ${contract}= munch_dict arg=${contract} |
1876 | 1908 | Set To Dictionary ${USERS.users['${username}']} contract_data=${contract} |
... | ... | @@ -1878,6 +1910,13 @@ Library openprocurement_client.utils |
1878 | 1910 | [return] ${contract} |
1879 | 1911 | |
1880 | 1912 | |
1913 | +Пошук договору по ідентифікатору | |
1914 | + [Arguments] ${username} ${contract_uaid} | |
1915 | + ${internalid}= openprocurement_client.Отримати internal id по UAid для договору ${username} ${contract_uaid} | |
1916 | + ${contract}= openprocurement_client.Отримати договір по внутрішнтому ідентифікатору ${username} ${contract_uaid} | |
1917 | + [return] ${contract} | |
1918 | + | |
1919 | + | |
1881 | 1920 | Отримати доступ до договору |
1882 | 1921 | [Arguments] ${username} ${contract_uaid} |
1883 | 1922 | ${internalid}= openprocurement_client.Отримати internal id по UAid для договору ${username} ${contract_uaid} | ... | ... |
... | ... | @@ -119,6 +119,29 @@ def get_document_by_id(data, doc_id): |
119 | 119 | raise Exception('Document with id {} not found'.format(doc_id)) |
120 | 120 | |
121 | 121 | |
122 | +def get_tenders_feed(client, interval=0.5): | |
123 | + for item in get_items_feed(client, 'get_tenders', interval): | |
124 | + yield item | |
125 | + | |
126 | + | |
127 | +def get_plans_feed(client, interval=0.5): | |
128 | + for item in get_items_feed(client, 'get_plans', interval): | |
129 | + yield item | |
130 | + | |
131 | + | |
132 | +def get_contracts_feed(client, interval=0.5): | |
133 | + for item in get_items_feed(client, 'get_contracts', interval): | |
134 | + yield item | |
135 | + | |
136 | +def get_items_feed(client, client_method, interval=0.5): | |
137 | + items = True | |
138 | + while items: | |
139 | + items = getattr(client, client_method)() | |
140 | + for item in items: | |
141 | + yield item | |
142 | + sleep(interval) | |
143 | + | |
144 | + | |
122 | 145 | def get_tenders_by_funder_id(client, |
123 | 146 | funder_id=None, |
124 | 147 | descending=True, | ... | ... |
op_robot_tests/tests_files/feed_plans.robot
0 → 100644
1 | +*** Settings *** | |
2 | +Resource base_keywords.robot | |
3 | +Resource resource.robot | |
4 | +Suite Setup Test Suite Setup | |
5 | +Suite Teardown Test Suite Teardown | |
6 | + | |
7 | + | |
8 | +*** Variables *** | |
9 | +${RESOURCE} plans | |
10 | +@{USED_ROLES} viewer | |
11 | +${FEED_ITEMS_NUMBER} 10 | |
12 | + | |
13 | +*** Test Cases *** | |
14 | +Можливість переглянути плани | |
15 | + [Tags] ${USERS.users['${viewer}'].broker}: Читання планів | |
16 | + ... viewer | |
17 | + ... ${USERS.users['${viewer}'].broker} | |
18 | + ... plan_feed | |
19 | + ... plan_view | |
20 | + ... critical | |
21 | + Можливість прочитати плани | ... | ... |
1 | +*** Settings *** | |
2 | +Resource base_keywords.robot | |
3 | +Resource resource.robot | |
4 | +Suite Setup Test Suite Setup | |
5 | +Suite Teardown Test Suite Teardown | |
6 | + | |
7 | + | |
8 | +*** Variables *** | |
9 | +${RESOURCE} tenders | |
10 | +@{USED_ROLES} viewer | |
11 | +${FEED_ITEMS_NUMBER} 10 | |
12 | + | |
13 | +*** Test Cases *** | |
14 | +Можливість переглянути тендери | |
15 | + [Tags] ${USERS.users['${viewer}'].broker}: Читання тендерів | |
16 | + ... viewer | |
17 | + ... ${USERS.users['${viewer}'].broker} | |
18 | + ... tender_feed | |
19 | + ... tender_view | |
20 | + ... critical | |
21 | + Можливість прочитати тендери | |
22 | + | |
23 | +Можливість переглянути договори | |
24 | + [Tags] ${USERS.users['${viewer}'].broker}: Читання контрактів | |
25 | + ... viewer | |
26 | + ... ${USERS.users['${viewer}'].broker} | |
27 | + ... contract_feed | |
28 | + ... contract_view | |
29 | + ... critical | |
30 | + Можливість прочитати договори | ... | ... |
Please
register
or
login
to post a comment