Commit 7e6a01bf8c02dc2e4d91e866e227a5391bf3b4a7

Authored by Dmitriy Belyaev
Committed by GitHub
2 parents d4640048 79fd3297

Merge pull request #29 from ProzorroUKR/improvement/tenders-feed

CS-1185 Add tenders feed tests. Read all tenders.
@@ -79,11 +79,68 @@ Resource resource.robot @@ -79,11 +79,68 @@ Resource resource.robot
79 Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} 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 :FOR ${username} IN ${tender_owner} ${viewer} 102 :FOR ${username} IN ${tender_owner} ${viewer}
84 \ Можливість знайти план по ідентифікатору для користувача ${username} 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 :FOR ${username} IN ${viewer} ${dasu_user} 145 :FOR ${username} IN ${viewer} ${dasu_user}
89 \ Можливість знайти об'єкт моніторингу по ідентифікатору для користувача ${username} 146 \ Можливість знайти об'єкт моніторингу по ідентифікатору для користувача ${username}
@@ -225,9 +225,15 @@ Library openprocurement_client.utils @@ -225,9 +225,15 @@ Library openprocurement_client.utils
225 [return] ${tender.data.planID} 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 ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid} 237 ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid}
232 ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} 238 ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
233 Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender} 239 Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender}
@@ -236,6 +242,13 @@ Library openprocurement_client.utils @@ -236,6 +242,13 @@ Library openprocurement_client.utils
236 [return] ${tender} 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 [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring_data 253 [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring_data
241 ${internalid}= openprocurement_client.Отримати internal id об'єкта моніторингу по UAid ${username} ${monitoring_uaid} 254 ${internalid}= openprocurement_client.Отримати internal id об'єкта моніторингу по UAid ${username} ${monitoring_uaid}
@@ -353,9 +366,15 @@ Library openprocurement_client.utils @@ -353,9 +366,15 @@ Library openprocurement_client.utils
353 [return] ${reply} 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 ${tender}= Call Method ${USERS.users['${username}'].client} get_plan ${internalid} 378 ${tender}= Call Method ${USERS.users['${username}'].client} get_plan ${internalid}
360 ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} 379 ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
361 Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender} 380 Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender}
@@ -364,6 +383,13 @@ Library openprocurement_client.utils @@ -364,6 +383,13 @@ Library openprocurement_client.utils
364 [return] ${tender} 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 [Arguments] ${username} ${funder_id}=${None} ${save_key}=tenders_with_funder 394 [Arguments] ${username} ${funder_id}=${None} ${save_key}=tenders_with_funder
369 ${tenders}= get_tenders_by_funder_id ${USERS.users['${username}'].client} ${funder_id} 395 ${tenders}= get_tenders_by_funder_id ${USERS.users['${username}'].client} ${funder_id}
@@ -1868,9 +1894,15 @@ Library openprocurement_client.utils @@ -1868,9 +1894,15 @@ Library openprocurement_client.utils
1868 openprocurement_client.Пошук договору по ідентифікатору ${username} ${contract_uaid} 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 ${contract}= Call Method ${USERS.users['${username}'].contracting_client} get_contract ${internalid} 1906 ${contract}= Call Method ${USERS.users['${username}'].contracting_client} get_contract ${internalid}
1875 ${contract}= munch_dict arg=${contract} 1907 ${contract}= munch_dict arg=${contract}
1876 Set To Dictionary ${USERS.users['${username}']} contract_data=${contract} 1908 Set To Dictionary ${USERS.users['${username}']} contract_data=${contract}
@@ -1878,6 +1910,13 @@ Library openprocurement_client.utils @@ -1878,6 +1910,13 @@ Library openprocurement_client.utils
1878 [return] ${contract} 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 [Arguments] ${username} ${contract_uaid} 1921 [Arguments] ${username} ${contract_uaid}
1883 ${internalid}= openprocurement_client.Отримати internal id по UAid для договору ${username} ${contract_uaid} 1922 ${internalid}= openprocurement_client.Отримати internal id по UAid для договору ${username} ${contract_uaid}
@@ -119,6 +119,29 @@ def get_document_by_id(data, doc_id): @@ -119,6 +119,29 @@ def get_document_by_id(data, doc_id):
119 raise Exception('Document with id {} not found'.format(doc_id)) 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 def get_tenders_by_funder_id(client, 145 def get_tenders_by_funder_id(client,
123 funder_id=None, 146 funder_id=None,
124 descending=True, 147 descending=True,
  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