Commit 959a77b69b25b6b53a95a735af3f0f7aed781892

Authored by kosaniak
Committed by GitHub
2 parents 9dd14040 489c015a

Merge pull request #554 from ivanka12/planning

Planning
... ... @@ -37,6 +37,22 @@ 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_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS}
  42 + ${tender_parameters}= Create Dictionary
  43 + ... mode=${MODE}
  44 + ... number_of_items=${NUMBER_OF_ITEMS}
  45 + ... tender_meat=${${TENDER_MEAT}}
  46 + ... item_meat=${${ITEM_MEAT}}
  47 + ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE}
  48 + Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE}
  49 + ${tender_data}= Підготувати дані для створення тендера ${tender_parameters}
  50 + ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data}
  51 + ${TENDER_UAID}= Run As ${tender_owner} Створити план ${adapted_data}
  52 + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data}
  53 + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID}
  54 +
  55 +
40 56 Можливість знайти тендер по ідентифікатору для усіх користувачів
41 57 :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer}
42 58 \ Можливість знайти тендер по ідентифікатору для користувача ${username}
... ... @@ -47,6 +63,16 @@ Resource resource.robot
47 63 Run as ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
48 64
49 65
  66 +Можливість знайти план по ідентифікатору
  67 + :FOR ${username} IN ${tender_owner} ${viewer}
  68 + \ Можливість знайти план по ідентифікатору для користувача ${username}
  69 +
  70 +
  71 +Можливість знайти план по ідентифікатору для користувача ${username}
  72 + Дочекатись синхронізації з майданчиком ${username}
  73 + Run as ${username} Пошук плану по ідентифікатору ${TENDER['TENDER_UAID']}
  74 +
  75 +
50 76 Можливість знайти тендер по ідентифікатору ${tender_id} та зберегти його в ${save_location} для користувача ${username}
51 77 Дочекатись синхронізації з майданчиком ${username}
52 78 Run as ${username} Пошук тендера по ідентифікатору ${tender_id} ${save_location}
... ... @@ -56,6 +82,10 @@ Resource resource.robot
56 82 Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value}
57 83
58 84
  85 +Можливість змінити поле ${field_name} плану на ${field_value}
  86 + Run As ${tender_owner} Внести зміни в план ${TENDER['TENDER_UAID']} ${field_name} ${field_value}
  87 +
  88 +
59 89 Можливість додати документацію до тендера
60 90 ${file_path} ${file_name} ${file_content}= create_fake_doc
61 91 Run As ${tender_owner} Завантажити документ ${file_path} ${TENDER['TENDER_UAID']}
... ... @@ -79,10 +109,25 @@ Resource resource.robot
79 109 Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data}
80 110
81 111
  112 +Можливість додати предмет закупівлі в план
  113 + ${item}= Підготувати дані для створення предмету закупівлі плану ${USERS.users['${tender_owner}'].initial_data.data['items'][0]['classification']['id']}
  114 + Run As ${tender_owner} Додати предмет закупівлі в план ${TENDER['TENDER_UAID']} ${item}
  115 + ${item_id}= get_id_from_object ${item}
  116 + ${item_data}= Create Dictionary
  117 + ... item=${item}
  118 + ... item_id=${item_id}
  119 + ${item_data}= munch_dict arg=${item_data}
  120 + Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data}
  121 +
  122 +
82 123 Можливість видалити предмет закупівлі з тендера
83 124 Run As ${tender_owner} Видалити предмет закупівлі ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].item_data.item_id}
84 125
85 126
  127 +Можливість видалити предмет закупівлі з плану
  128 + Run As ${tender_owner} Видалити предмет закупівлі плану ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].item_data.item_id}
  129 +
  130 +
86 131 Звірити відображення поля ${field} документа ${doc_id} із ${left} для користувача ${username}
87 132 ${right}= Run As ${username} Отримати інформацію із документа ${TENDER['TENDER_UAID']} ${doc_id} ${field}
88 133 Порівняти об'єкти ${left} ${right}
... ... @@ -101,6 +146,10 @@ Resource resource.robot
101 146 Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field}
102 147
103 148
  149 +Звірити відображення поля ${field} плану для користувача ${username}
  150 + Звірити поле плану ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field}
  151 +
  152 +
104 153 Отримати доступ до тендера другого етапу та зберегти його
105 154 Run as ${tender_owner} Отримати тендер другого етапу та зберегти його ${USERS.users['${tender_owner}'].tender_data.data.stage2TenderID}
106 155 ${TENDER_UAID_second_stage}= BuiltIn.Catenate SEPARATOR= ${TENDER['TENDER_UAID']} .2
... ... @@ -146,6 +195,17 @@ Resource resource.robot
146 195 \ Звірити відображення поля ${field} ${item_index} предмету для користувача ${username}
147 196
148 197
  198 +Звірити відображення ${field} усіх предметів плану для усіх користувачів
  199 + :FOR ${username} IN ${viewer} ${tender_owner}
  200 + \ Звірити відображення ${field} усіх предметів плану для користувача ${username}
  201 +
  202 +
  203 +Звірити відображення ${field} усіх предметів плану для користувача ${username}
  204 + :FOR ${item_index} IN RANGE ${NUMBER_OF_ITEMS}
  205 + \ ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}]}
  206 + \ Звірити поле плану із значенням ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}].${field}} ${field} ${item_id}
  207 +
  208 +
149 209 Звірити відображення поля ${field} ${item_index} предмету для користувача ${username}
150 210 ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}]}
151 211 Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}].${field}} ${field} ${item_id}
... ...
... ... @@ -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}
... ... @@ -128,6 +157,17 @@ Library openprocurement_client.utils
128 157 [return] ${tender}
129 158
130 159
  160 +Пошук плану по ідентифікатору
  161 + [Arguments] ${username} ${tender_uaid} ${save_key}=tender_data
  162 + ${internalid}= openprocurement_client.Отримати internal id плану по UAid ${username} ${tender_uaid}
  163 + ${tender}= Call Method ${USERS.users['${username}'].client} get_plan ${internalid}
  164 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  165 + Set To Dictionary ${USERS.users['${username}']} ${save_key}=${tender}
  166 + ${tender}= munch_dict arg=${tender}
  167 + Log ${tender}
  168 + [return] ${tender}
  169 +
  170 +
131 171 Отримати тендер другого етапу та зберегти його
132 172 [Arguments] ${username} ${tender_id}
133 173 ${response}= Call Method ${USERS.users['${username}'].client} patch_credentials ${tender_id} ${USERS.users['${username}'].access_token}
... ... @@ -142,6 +182,11 @@ Library openprocurement_client.utils
142 182 openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
143 183
144 184
  185 +Оновити сторінку з планом
  186 + [Arguments] ${username} ${tender_uaid}
  187 + openprocurement_client.Пошук плану по ідентифікатору ${username} ${tender_uaid}
  188 +
  189 +
145 190 Отримати інформацію із тендера
146 191 [Arguments] ${username} ${tender_uaid} ${field_name}
147 192 openprocurement_client.Пошук тендера по ідентифікатору
... ... @@ -157,6 +202,21 @@ Library openprocurement_client.utils
157 202 Fail Field not found: ${field_name}
158 203
159 204
  205 +Отримати інформацію із плану
  206 + [Arguments] ${username} ${tender_uaid} ${field_name}
  207 + openprocurement_client.Пошук плану по ідентифікатору
  208 + ... ${username}
  209 + ... ${tender_uaid}
  210 +
  211 + ${status} ${field_value}= Run keyword and ignore error
  212 + ... Get from object
  213 + ... ${USERS.users['${username}'].tender_data.data}
  214 + ... ${field_name}
  215 + Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value}
  216 +
  217 + Fail Field not found: ${field_name}
  218 +
  219 +
160 220 Внести зміни в тендер
161 221 [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue}
162 222 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
... ... @@ -168,6 +228,16 @@ Library openprocurement_client.utils
168 228 ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender}
169 229 Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue}
170 230
  231 +
  232 +Внести зміни в план
  233 + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue}
  234 + ${tender}= openprocurement_client.Пошук плану по ідентифікатору ${username} ${tender_uaid}
  235 + Set_To_Object ${tender.data} ${fieldname} ${fieldvalue}
  236 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  237 + ${tender}= Call Method ${USERS.users['${username}'].client} patch_plan ${tender}
  238 + Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue}
  239 +
  240 +
171 241 ##############################################################################
172 242 # Item operations
173 243 ##############################################################################
... ... @@ -179,6 +249,13 @@ Library openprocurement_client.utils
179 249 Call Method ${USERS.users['${username}'].client} patch_tender ${tender}
180 250
181 251
  252 +Додати предмет закупівлі в план
  253 + [Arguments] ${username} ${tender_uaid} ${item}
  254 + ${tender}= openprocurement_client.Пошук плану по ідентифікатору ${username} ${tender_uaid}
  255 + Append To List ${tender.data['items']} ${item}
  256 + Call Method ${USERS.users['${username}'].client} patch_plan ${tender}
  257 +
  258 +
182 259 Отримати інформацію із предмету
183 260 [Arguments] ${username} ${tender_uaid} ${item_id} ${field_name}
184 261 ${field_name}= Отримати шлях до поля об’єкта ${username} ${field_name} ${item_id}
... ... @@ -192,6 +269,13 @@ Library openprocurement_client.utils
192 269 Remove From List ${tender.data['items']} ${item_index}
193 270 Call Method ${USERS.users['${username}'].client} patch_tender ${tender}
194 271
  272 +Видалити предмет закупівлі плану
  273 + [Arguments] ${username} ${tender_uaid} ${item_id} ${lot_id}=${Empty}
  274 + ${tender}= openprocurement_client.Пошук плану по ідентифікатору ${username} ${tender_uaid}
  275 + ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id}
  276 + Remove From List ${tender.data['items']} ${item_index}
  277 + Call Method ${USERS.users['${username}'].client} patch_plan ${tender}
  278 +
195 279 ##############################################################################
196 280 # Lot operations
197 281 ##############################################################################
... ...
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, ResourceError
6 7 from retrying import retry
... ... @@ -8,7 +9,6 @@ from time import sleep
8 9 import os
9 10 import urllib
10 11
11   -
12 12 def retry_if_request_failed(exception):
13 13 if isinstance(exception, RequestFailed):
14 14 status_code = getattr(exception, 'status_int', None)
... ... @@ -114,3 +114,13 @@ def download_file_from_url(url, path_to_save_file):
114 114 f.write(urllib.urlopen(url).read())
115 115 f.close()
116 116 return os.path.basename(f.name)
  117 +
  118 +
  119 +class StableClient_plan(PlansClient):
  120 + @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed)
  121 + def request(self, *args, **kwargs):
  122 + return super(StableClient_plan, self).request(*args, **kwargs)
  123 +
  124 +
  125 +def prepare_plan_api_wrapper(key, host_url, api_version):
  126 + return StableClient_plan(key, host_url, api_version)
\ No newline at end of file
... ...
... ... @@ -36,6 +36,10 @@ def create_fake_date():
36 36 return get_now().isoformat()
37 37
38 38
  39 +def create_fake_value_amount():
  40 + return fake.random_int(min=1)
  41 +
  42 +
39 43 def field_with_id(prefix, sentence):
40 44 return u"{}-{}: {}".format(prefix, fake.uuid4()[:8], sentence)
41 45
... ... @@ -151,6 +155,56 @@ def test_tender_data(params,
151 155 return munchify(data)
152 156
153 157
  158 +def test_tender_data_planning(params):
  159 + data = {
  160 + "budget": {
  161 + "amountNet": round(random.uniform(3000, 999999999.99), 2),
  162 + "description": fake.description(),
  163 + "project": {
  164 + "id": str(fake.random_int(min=1, max=999)),
  165 + "name": fake.description(),
  166 + },
  167 + "currency": "UAH",
  168 + "amount": round(random.uniform(3000, 99999999999.99), 2),
  169 + "id": str(fake.random_int(min=1, max=99999999999)) + "-" + str(fake.random_int(min=1, max=9)),
  170 + },
  171 + "procuringEntity": {
  172 + "identifier": {
  173 + "scheme": "UA-EDR",
  174 + "id": str(fake.random_int(min=1, max=999)),
  175 + "legalName": fake.description(),
  176 + },
  177 + "name": fake.description(),
  178 + },
  179 + "tender": {
  180 + "procurementMethod": "open",
  181 + "procurementMethodType": "belowThreshold",
  182 + "tenderPeriod": {
  183 + "startDate": (get_now().isoformat())
  184 + }
  185 + },
  186 + "items": []
  187 + }
  188 + id_cpv=fake.cpv()[:4]
  189 + cpv_data=test_item_data(id_cpv)
  190 + data.update(cpv_data)
  191 + del data['deliveryDate']
  192 + del data['description']
  193 + del data['description_en']
  194 + del data['description_ru']
  195 + del data['deliveryAddress']
  196 + del data['deliveryLocation']
  197 + del data['quantity']
  198 + del data['unit']
  199 + for i in range(params['number_of_items']):
  200 + item_data=test_item_data(id_cpv)
  201 + del item_data['deliveryAddress']
  202 + del item_data['deliveryLocation']
  203 + del item_data['deliveryDate']['startDate']
  204 + data['items'].append(item_data)
  205 + return munchify(data)
  206 +
  207 +
154 208 def test_tender_data_limited(params):
155 209 data = test_tender_data(params)
156 210 del data["submissionMethodDetails"]
... ...
... ... @@ -222,6 +222,15 @@ Get Broker Property By Username
222 222 [Return] ${item}
223 223
224 224
  225 +Підготувати дані для створення предмету закупівлі плану
  226 + [Arguments] ${cpv}
  227 + ${item}= test_item_data ${cpv[0:4]}
  228 + Remove From Dictionary ${item} deliveryAddress
  229 + Remove From Dictionary ${item} deliveryLocation
  230 + Remove From Dictionary ${item} deliveryDate.startDate
  231 + [Return] ${item}
  232 +
  233 +
225 234 Підготувати дані для створення лоту
226 235 [Arguments] ${max_lot_value_amount}
227 236 ${lot}= test_lot_data ${max_lot_value_amount}
... ... @@ -408,8 +417,9 @@ Log differences between dicts
408 417 ... ${last_modification_date_corrected}
409 418 ... ${USERS.users['${username}']['LAST_REFRESH_DATE']}
410 419 ${LAST_REFRESH_DATE}= Get Current TZdate
411   - Run Keyword If ${time_diff} > 0 Run keywords
412   - ... Run As ${username} Оновити сторінку з тендером ${TENDER['TENDER_UAID']}
  420 + Run Keyword If ${time_diff} > 0 Run Keyword If '${MODE}' == 'planning'
  421 + ... Run As ${username} Оновити сторінку з планом ${TENDER['TENDER_UAID']}
  422 + ... ELSE Run As ${username} Оновити сторінку з тендером ${TENDER['TENDER_UAID']}
413 423 ... AND
414 424 ... Set To Dictionary ${USERS.users['${username}']} LAST_REFRESH_DATE=${LAST_REFRESH_DATE}
415 425
... ... @@ -420,6 +430,18 @@ Log differences between dicts
420 430 Звірити поле тендера із значенням ${username} ${tender_uaid} ${left} ${field}
421 431
422 432
  433 +Звірити поле плану
  434 + [Arguments] ${username} ${tender_uaid} ${tender_data} ${field}
  435 + ${left}= get_from_object ${tender_data.data} ${field}
  436 + Звірити поле плану із значенням ${username} ${tender_uaid} ${left} ${field}
  437 +
  438 +
  439 +Звірити поле плану із значенням
  440 + [Arguments] ${username} ${tender_uaid} ${left} ${field} ${object_id}=${Empty}
  441 + ${right}= Отримати дані із плану ${username} ${tender_uaid} ${field} ${object_id}
  442 + Порівняти об'єкти ${left} ${right}
  443 +
  444 +
423 445 Звірити поле тендера із значенням
424 446 [Arguments] ${username} ${tender_uaid} ${left} ${field} ${object_id}=${Empty}
425 447 ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} ${object_id}
... ... @@ -534,6 +556,26 @@ Log differences between dicts
534 556 [return] ${field_value}
535 557
536 558
  559 +Отримати дані із плану
  560 + [Arguments] ${username} ${tender_uaid} ${field_name} ${object_id}=${Empty}
  561 + ${field}= Run Keyword If '${object_id}' Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id}
  562 + ... ELSE Set Variable ${field_name}
  563 + ${status} ${field_value}= Run keyword and ignore error
  564 + ... get_from_object
  565 + ... ${USERS.users['${username}'].tender_data.data}
  566 + ... ${field}
  567 + # If field in cache, return its value
  568 + Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value}
  569 + # Else call broker to find field
  570 + ${field_value}= Run As ${username} Отримати інформацію із плану ${tender_uaid} ${field}
  571 + # And caching its value before return
  572 + Set_To_Object ${USERS.users['${username}'].tender_data.data} ${field} ${field_value}
  573 + ${data}= munch_dict arg=${USERS.users['${username}'].tender_data.data}
  574 + Set To Dictionary ${USERS.users['${username}'].tender_data} data=${data}
  575 + Log ${USERS.users['${username}'].tender_data.data}
  576 + [return] ${field_value}
  577 +
  578 +
537 579 Отримати шлях до поля об’єкта
538 580 [Arguments] ${username} ${field_name} ${object_id}
539 581 ${object_type}= get_object_type_by_id ${object_id}
... ...
... ... @@ -149,4 +149,4 @@ class OP_Provider(BaseProvider):
149 149 "description_ru": item_base_data["description_ru"],
150 150 "description_en": item_base_data["description_en"]
151 151 })
152   - return deepcopy(item)
  152 + return deepcopy(item)
\ No newline at end of file
... ...
  1 +*** Settings ***
  2 +Resource base_keywords.robot
  3 +Suite Setup Test Suite Setup
  4 +Suite Teardown Test Suite Teardown
  5 +
  6 +*** Variables ***
  7 +${MODE} planning
  8 +@{USED_ROLES} tender_owner viewer
  9 +
  10 +
  11 +*** Test Cases ***
  12 +Можливість створити план закупівлі
  13 + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення плану
  14 + ... tender_owner
  15 + ... ${USERS.users['${tender_owner}'].broker}
  16 + ... create_plan
  17 + [Teardown] Оновити LAST_MODIFICATION_DATE
  18 + Можливість створити план закупівлі
  19 +
  20 +
  21 +Можливість знайти план по ідентифікатору
  22 + [Tags] ${USERS.users['${viewer}'].broker}: Пошук плану
  23 + ... viewer tender_owner
  24 + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker}
  25 + ... find_plan
  26 + Можливість знайти план по ідентифікатору
  27 +
  28 +
  29 +Відображення суми бюджету
  30 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  31 + ... viewer
  32 + ... ${USERS.users['${viewer}'].broker}
  33 + ... plan_view
  34 + Звірити відображення поля budget.amount плану для користувача ${viewer}
  35 +
  36 +
  37 +Відображення amountNet бюджету
  38 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  39 + ... viewer
  40 + ... ${USERS.users['${viewer}'].broker}
  41 + ... plan_view
  42 + Звірити відображення поля budget.amountNet плану для користувача ${viewer}
  43 +
  44 +
  45 +Відображення опису бюджету
  46 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  47 + ... viewer
  48 + ... ${USERS.users['${viewer}'].broker}
  49 + ... plan_view
  50 + Звірити відображення поля budget.description плану для користувача ${viewer}
  51 +
  52 +
  53 +Відображення валюти бюджету
  54 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  55 + ... viewer
  56 + ... ${USERS.users['${viewer}'].broker}
  57 + ... plan_view
  58 + Звірити відображення поля budget.currency плану для користувача ${viewer}
  59 +
  60 +
  61 +Відображення id бюджету
  62 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  63 + ... viewer
  64 + ... ${USERS.users['${viewer}'].broker}
  65 + ... plan_view
  66 + Звірити відображення поля budget.id плану для користувача ${viewer}
  67 +
  68 +
  69 +Відображення id проекту в бюджеті
  70 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  71 + ... viewer
  72 + ... ${USERS.users['${viewer}'].broker}
  73 + ... plan_view
  74 + Звірити відображення поля budget.project.id плану для користувача ${viewer}
  75 +
  76 +
  77 +Відображення назви проекту в бюджеті
  78 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  79 + ... viewer
  80 + ... ${USERS.users['${viewer}'].broker}
  81 + ... plan_view
  82 + Звірити відображення поля budget.project.name плану для користувача ${viewer}
  83 +
  84 +
  85 +Відображення назви організації
  86 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  87 + ... viewer
  88 + ... ${USERS.users['${viewer}'].broker}
  89 + ... plan_view
  90 + Звірити відображення поля procuringEntity.name плану для користувача ${viewer}
  91 +
  92 +
  93 +Відображення схеми ідентифікатора організації
  94 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  95 + ... viewer
  96 + ... ${USERS.users['${viewer}'].broker}
  97 + ... plan_view
  98 + Звірити відображення поля procuringEntity.identifier.scheme плану для користувача ${viewer}
  99 +
  100 +
  101 +Відображення ідентифікатора організації
  102 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  103 + ... viewer
  104 + ... ${USERS.users['${viewer}'].broker}
  105 + ... plan_view
  106 + Звірити відображення поля procuringEntity.identifier.id плану для користувача ${viewer}
  107 +
  108 +
  109 +Відображення легально зареєстрованої назви організації
  110 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  111 + ... viewer
  112 + ... ${USERS.users['${viewer}'].broker}
  113 + ... plan_view
  114 + Звірити відображення поля procuringEntity.identifier.legalName плану для користувача ${viewer}
  115 +
  116 +
  117 +Відображення опису класифікації
  118 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  119 + ... viewer
  120 + ... ${USERS.users['${viewer}'].broker}
  121 + ... plan_view
  122 + Звірити відображення поля classification.description плану для користувача ${viewer}
  123 +
  124 +
  125 +Відображення схеми класифікації
  126 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  127 + ... viewer
  128 + ... ${USERS.users['${viewer}'].broker}
  129 + ... plan_view
  130 + Звірити відображення поля classification.scheme плану для користувача ${viewer}
  131 +
  132 +
  133 +Відображення коду класифікації
  134 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  135 + ... viewer
  136 + ... ${USERS.users['${viewer}'].broker}
  137 + ... plan_view
  138 + Звірити відображення поля classification.id плану для користувача ${viewer}
  139 +
  140 +
  141 +Відображення дати початку періоду подання пропозицій
  142 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  143 + ... viewer
  144 + ... ${USERS.users['${viewer}'].broker}
  145 + ... plan_view
  146 + Звірити відображення поля tender.tenderPeriod.startDate плану для користувача ${viewer}
  147 +
  148 +
  149 +Відображення опису об'єкта
  150 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  151 + ... viewer
  152 + ... ${USERS.users['${viewer}'].broker}
  153 + ... plan_view level2
  154 + Звірити відображення description усіх предметів плану для користувача ${viewer}
  155 +
  156 +
  157 +Відображення кількості необхідних одиниць об'єкта
  158 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  159 + ... viewer
  160 + ... ${USERS.users['${viewer}'].broker}
  161 + ... plan_view
  162 + Звірити відображення quantity усіх предметів плану для користувача ${viewer}
  163 +
  164 +
  165 +Відображення кінцевої дати доставки
  166 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  167 + ... viewer
  168 + ... ${USERS.users['${viewer}'].broker}
  169 + ... plan_view
  170 + Звірити відображення deliveryDate.endDate усіх предметів плану для користувача ${viewer}
  171 +
  172 +
  173 +Відображення коду одиниці виміру
  174 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  175 + ... viewer
  176 + ... ${USERS.users['${viewer}'].broker}
  177 + ... plan_view
  178 + Звірити відображення unit.code усіх предметів плану для користувача ${viewer}
  179 +
  180 +
  181 +Відображення назви одиниці виміру
  182 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  183 + ... viewer
  184 + ... ${USERS.users['${viewer}'].broker}
  185 + ... plan_view
  186 + Звірити відображення unit.name усіх предметів плану для користувача ${viewer}
  187 +
  188 +
  189 +Відображення опису класифікації об'єкта
  190 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  191 + ... viewer
  192 + ... ${USERS.users['${viewer}'].broker}
  193 + ... plan_view
  194 + Звірити відображення classification.description усіх предметів плану для користувача ${viewer}
  195 +
  196 +
  197 +Відображення схеми класифікації об'єкта
  198 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  199 + ... viewer
  200 + ... ${USERS.users['${viewer}'].broker}
  201 + ... plan_view
  202 + Звірити відображення classification.scheme усіх предметів плану для користувача ${viewer}
  203 +
  204 +
  205 +Відображення коду класифікації об'єкта
  206 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
  207 + ... viewer
  208 + ... ${USERS.users['${viewer}'].broker}
  209 + ... plan_view
  210 + Звірити відображення classification.id усіх предметів плану для користувача ${viewer}
  211 +
  212 +
  213 +Можливість змінити опис бюджету
  214 + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування плану
  215 + ... tender_owner
  216 + ... ${USERS.users['${tender_owner}'].broker}
  217 + ... modify_plan
  218 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  219 + [Teardown] Оновити LAST_MODIFICATION_DATE
  220 + ${new_description}= create_fake_sentence
  221 + Можливість змінити поле budget.description плану на ${new_description}
  222 +
  223 +
  224 +Можливість змінити суму бюджету
  225 + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування плану
  226 + ... tender_owner
  227 + ... ${USERS.users['${tender_owner}'].broker}
  228 + ... modify_plan
  229 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  230 + [Teardown] Оновити LAST_MODIFICATION_DATE
  231 + ${new_amount}= create_fake_value_amount
  232 + Можливість змінити поле budget.amount плану на ${new_amount}
  233 +
  234 +
  235 +Можливість змінити кінцеву дату доставки
  236 + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування плану
  237 + ... tender_owner
  238 + ... ${USERS.users['${tender_owner}'].broker}
  239 + ... modify_plan
  240 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  241 + [Teardown] Оновити LAST_MODIFICATION_DATE
  242 + ${new_date}= create_fake_date
  243 + Можливість змінити поле items[0].deliveryDate.endDate плану на ${new_date}
  244 +
  245 +
  246 +Можливість змінити кількість одиниць предмету закупівлі
  247 + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування плану
  248 + ... tender_owner
  249 + ... ${USERS.users['${tender_owner}'].broker}
  250 + ... modify_plan
  251 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  252 + [Teardown] Оновити LAST_MODIFICATION_DATE
  253 + ${new_quantity}= create_fake_value_amount
  254 + Можливість змінити поле items[0].quantity плану на ${new_quantity}
  255 +
  256 +
  257 +Можливість додати предмет закупівлі
  258 + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування плану
  259 + ... tender_owner
  260 + ... ${USERS.users['${tender_owner}'].broker}
  261 + ... add_item
  262 + [Teardown] Оновити LAST_MODIFICATION_DATE
  263 + Можливість додати предмет закупівлі в план
  264 +
  265 +
  266 +Можливість видалити предмет закупівлі
  267 + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування плану
  268 + ... tender_owner
  269 + ... ${USERS.users['${tender_owner}'].broker}
  270 + ... delete_item
  271 + [Teardown] Оновити LAST_MODIFICATION_DATE
  272 + Можливість видалити предмет закупівлі з плану
\ No newline at end of file
... ...
... ... @@ -20,6 +20,7 @@ from .initial_data import (
20 20 create_fake_doc,
21 21 create_fake_sentence,
22 22 create_fake_amount,
  23 + create_fake_value_amount,
23 24 create_fake_date,
24 25 fake,
25 26 field_with_id,
... ... @@ -44,6 +45,7 @@ from .initial_data import (
44 45 test_tender_data_limited,
45 46 test_tender_data_openeu,
46 47 test_tender_data_openua,
  48 + test_tender_data_planning,
47 49 )
48 50 from barbecue import chef
49 51 from restkit import request
... ... @@ -317,6 +319,9 @@ def prepare_test_tender_data(procedure_intervals,
317 319 return munchify({'data': test_tender_data(
318 320 tender_parameters,
319 321 submissionMethodDetails=submissionMethodDetails)})
  322 + elif mode == 'planning':
  323 + return munchify({'data': test_tender_data_planning(
  324 + tender_parameters)})
320 325 # The previous line needs an explicit keyword argument because,
321 326 # unlike previous functions, this one has three arguments.
322 327 raise ValueError("Invalid mode for prepare_test_tender_data")
... ...
  1 +-v MODE:planning
  2 +
  3 +-v NUMBER_OF_ITEMS:2
  4 +
  5 +-v TENDER_MEAT:False
  6 +-v ITEM_MEAT:False
  7 +
  8 +-i create_plan
  9 +-i find_plan
  10 +-i plan_view
  11 +-i modify_plan
  12 +-i add_item
  13 +-i delete_item
\ No newline at end of file
... ...
Please register or login to post a comment