Commit b9e159c16694bbd2c1a847b4cc181b71182fa0e6

Authored by ivanka12
1 parent 717a1ec6

keywords and function for test case 'Можливість створити план закупівлі'

... ... @@ -37,6 +37,25 @@ Resource resource.robot
37 37 \ Should Match Regexp ${document_url} ^https?:\/\/public.docs(?:-sandbox)?\.openprocurement\.org\/get\/([0-9A-Fa-f]{32}) msg=Not a Document Service Upload
38 38
39 39
  40 +Можливість створити план закупівлі
  41 + ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS}
  42 + ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS}
  43 + ${tender_parameters}= Create Dictionary
  44 + ... mode=${MODE}
  45 + ... number_of_items=${NUMBER_OF_ITEMS}
  46 + ... number_of_lots=${NUMBER_OF_LOTS}
  47 + ... tender_meat=${${TENDER_MEAT}}
  48 + ... lot_meat=${${LOT_MEAT}}
  49 + ... item_meat=${${ITEM_MEAT}}
  50 + ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE}
  51 + Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE}
  52 + ${tender_data}= Підготувати дані для створення тендера ${tender_parameters}
  53 + ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data}
  54 + ${TENDER_UAID}= Run As ${tender_owner} Створити план ${adapted_data}
  55 + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data}
  56 + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID}
  57 +
  58 +
40 59 Можливість знайти тендер по ідентифікатору для усіх користувачів
41 60 :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer}
42 61 \ Можливість знайти тендер по ідентифікатору для користувача ${username}
... ...
... ... @@ -17,6 +17,19 @@ Library openprocurement_client.utils
17 17 [return] ${tender_id}
18 18
19 19
  20 +Отримати internal id плану по UAid
  21 + [Arguments] ${username} ${tender_uaid}
  22 + Log ${username}
  23 + Log ${tender_uaid}
  24 + Log Many ${USERS.users['${username}'].id_map}
  25 + ${status}= Run Keyword And Return Status Dictionary Should Contain Key ${USERS.users['${username}'].id_map} ${tender_uaid}
  26 + Run Keyword And Return If ${status} Get From Dictionary ${USERS.users['${username}'].id_map} ${tender_uaid}
  27 + Call Method ${USERS.users['${username}'].client} get_plans
  28 + ${tender_id}= Wait Until Keyword Succeeds 5x 30 sec get_plan_id_by_uaid ${tender_uaid} ${USERS.users['${username}'].client}
  29 + Set To Dictionary ${USERS.users['${username}'].id_map} ${tender_uaid} ${tender_id}
  30 + [return] ${tender_id}
  31 +
  32 +
20 33 Підготувати клієнт для користувача
21 34 [Arguments] ${username}
22 35 [Documentation] Відкрити браузер, створити об’єкти api wrapper і
... ... @@ -32,7 +45,9 @@ Library openprocurement_client.utils
32 45 # Uncomment this line if there is need to process files operations without DS.
33 46 # ${ds_api_wraper}= set variable ${None}
34 47 ${ds_api_wraper}= prepare_ds_api_wrapper ${DS_HOST_URL} ${auth_ds}
35   - ${api_wrapper}= prepare_api_wrapper ${USERS.users['${username}'].api_key} ${RESOURCE} ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper}
  48 + ${api_wrapper}= Run Keyword If '${MODE}' == 'planning'
  49 + ... prepare_plan_api_wrapper ${USERS.users['${username}'].api_key} ${API_HOST_URL} ${API_VERSION}
  50 + ... ELSE prepare_api_wrapper ${USERS.users['${username}'].api_key} ${RESOURCE} ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper}
36 51 Set To Dictionary ${USERS.users['${username}']} client=${api_wrapper}
37 52 Set To Dictionary ${USERS.users['${username}']} access_token=${EMPTY}
38 53 ${id_map}= Create Dictionary
... ... @@ -117,6 +132,20 @@ Library openprocurement_client.utils
117 132 [return] ${tender.data.tenderID}
118 133
119 134
  135 +Створити план
  136 + [Arguments] ${username} ${tender_data}
  137 + ${tender}= Call Method ${USERS.users['${username}'].client} create_plan ${tender_data}
  138 + Log ${tender}
  139 + ${access_token}= Get Variable Value ${tender.access.token}
  140 + ${tender}= Call Method ${USERS.users['${username}'].client} patch_plan ${tender}
  141 + Log ${tender}
  142 + Log ${\n}${API_HOST_URL}/api/${API_VERSION}/plans/${tender.data.id}${\n} WARN
  143 + Set To Dictionary ${USERS.users['${username}']} access_token=${access_token}
  144 + Set To Dictionary ${USERS.users['${username}']} tender_data=${tender}
  145 + Log ${USERS.users['${username}'].tender_data}
  146 + [return] ${tender.data.planID}
  147 +
  148 +
120 149 Пошук тендера по ідентифікатору
121 150 [Arguments] ${username} ${tender_uaid} ${save_key}=tender_data
122 151 ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid}
... ...
1 1 from openprocurement_client.client import Client, EDRClient
2 2 from openprocurement_client.document_service_client \
3 3 import DocumentServiceClient
  4 +from openprocurement_client.plan import PlansClient
4 5 from openprocurement_client.exceptions import IdNotFound
5 6 from restkit.errors import RequestFailed, BadStatusLine
6 7 from retrying import retry
... ... @@ -106,3 +107,13 @@ def download_file_from_url(url, path_to_save_file):
106 107 f.write(urllib.urlopen(url).read())
107 108 f.close()
108 109 return os.path.basename(f.name)
  110 +
  111 +
  112 +class StableClient_plan(PlansClient):
  113 + @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed)
  114 + def request(self, *args, **kwargs):
  115 + return super(StableClient_plan, self).request(*args, **kwargs)
  116 +
  117 +
  118 +def prepare_plan_api_wrapper(key, host_url, api_version):
  119 + return StableClient_plan(key, host_url, api_version)
\ No newline at end of file
... ...
Please register or login to post a comment