Commit ebcb774173cb67bbcb4f0dca18616365456ba733

Authored by mykhaly
1 parent 839b2959

Remake document content checking

Add `get_document_by_id` and `get_file_basename` functions, because they
are needed in `Отримати документ` keyword.
Remove `get_file_contents` function call.
Remake `Отримати документ` keyword: now it returns only name of
downloaded by broker file in lieu of file content and path. Moreover,
`${url}` arguments is replaced with `${doc_id}` so as to give to broker
better data about document to download.
... ... @@ -79,12 +79,10 @@ Resource resource.robot
79 79 Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field}
80 80
81 81
82   -Звірити відображення вмісту документації до тендера для користувача ${username}
83   - ${file_content_loaded} ${file_name_loaded}= Run as ${viewer} Отримати документ ${TENDER['TENDER_UAID']} ${USERS.users['${username}'].tender_data.data.documents[0].url}
84   - ${file_name_uploaded}= Set variable ${USERS.users['${tender_owner}'].documents.filepath}
85   - ${document_content_uploaded}= get_file_contents ${file_name_uploaded}
86   - Порівняти об'єкти ${file_content_loaded} ${document_content_uploaded}
87   - Порівняти об'єкти ${file_name_loaded} ${file_name_uploaded}
  82 +Звірити відображення вмісту документа ${doc_id} з ${left} для користувача ${username}
  83 + ${file_name}= Run as ${username} Отримати документ ${TENDER['TENDER_UAID']} ${doc_id}
  84 + ${right}= Get File ${OUTPUT_DIR}${/}${file_name}
  85 + Порівняти об'єкти ${left} ${right}
88 86
89 87
90 88 Звірити відображення дати ${date} тендера для усіх користувачів
... ... @@ -262,9 +260,8 @@ Resource resource.robot
262 260 Звірити відображення вмісту документації до всіх лотів для користувача ${username}
263 261 ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots}
264 262 :FOR ${lot_index} IN RANGE ${number_of_lots}
265   - \ ${lot_index}= Convert to integer ${lot_index}
266   - \ ${doc_index}= get_document_index_by_id ${USERS.users['${username}'].tender_data.data.documents} ${USERS.users['${tender_owner}'].lots_documents[${lot_index}]}
267   - \ Звірити відображення вмісту ${doc_index} документа до ${lot_index} лоту для користувача ${username}
  263 + \ ${doc_content}= Get File ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].filepath}
  264 + \ Звірити відображення вмісту документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} з ${doc_content} для користувача ${username}
268 265
269 266
270 267 Звірити відображення поля ${field} у новоствореному лоті для усіх користувачів
... ...
... ... @@ -50,11 +50,11 @@ Library openprocurement_client_helper.py
50 50
51 51
52 52 Отримати документ
53   - [Arguments] ${username} ${tender_uaid} ${url}
  53 + [Arguments] ${username} ${tender_uaid} ${doc_id}
54 54 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
55   - ${token}= Get Variable Value ${USERS.users['${username}'].access_token}
56   - ${contents} ${filename}= Call Method ${USERS.users['${username}'].client} get_file ${tender} ${url} ${token}
57   - [return] ${contents} ${filename}
  55 + ${document}= get_document_by_id ${tender.data} ${doc_id}
  56 + ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title}
  57 + [return] ${filename}
58 58
59 59
60 60 Отримати посилання на аукціон для глядача
... ...
... ... @@ -3,6 +3,8 @@ from openprocurement_client.utils import get_tender_id_by_uaid
3 3 from openprocurement_client.exceptions import IdNotFound
4 4 from restkit.errors import RequestFailed
5 5 from retrying import retry
  6 +import os
  7 +import urllib
6 8
7 9
8 10 def retry_if_request_failed(exception):
... ... @@ -34,3 +36,25 @@ def get_complaint_internal_id(tender, complaintID):
34 36 except AttributeError:
35 37 pass
36 38 raise IdNotFound
  39 +
  40 +
  41 +def get_document_by_id(data, doc_id):
  42 + for document in data.get('documents', []):
  43 + if doc_id in document.get('title', ''):
  44 + return document
  45 + for complaint in data.get('complaints', []):
  46 + for document in complaint.get('documents', []):
  47 + if doc_id in document.get('title', ''):
  48 + return document
  49 + for award in data.get('awards', []):
  50 + for document in award.get('documents', []):
  51 + if doc_id in document.get('title', ''):
  52 + return document
  53 + raise Exception('Document with id {} not found'.format(doc_id))
  54 +
  55 +
  56 +def download_file_from_url(url, path_to_save_file):
  57 + f = open(path_to_save_file, 'wb')
  58 + f.write(urllib.urlopen(url).read())
  59 + f.close()
  60 + return os.path.basename(f.name)
... ...
... ... @@ -457,9 +457,7 @@ ${item_meat} ${True}
457 457 ... viewer
458 458 ... ${USERS.users['${viewer}'].broker}
459 459 ... add_tender_doc level2
460   - ${doc_index}= get_document_index_by_id ${USERS.users['${viewer}'].tender_data.data.documents} ${USERS.users['${tender_owner}'].documents.filepath}
461   - Отримати дані із тендера ${tender_owner} ${TENDER['TENDER_UAID']} documents[${doc_index}].url
462   - Звірити відображення вмісту документації до тендера для користувача ${viewer}
  460 + Звірити відображення вмісту документа ${USERS.users['${tender_owner}'].tender_document.doc_id} з ${USERS.users['${tender_owner}'].tender_document.doc_content} для користувача ${viewer}
463 461
464 462
465 463 Відображення вмісту документації до всіх лотів
... ... @@ -467,7 +465,6 @@ ${item_meat} ${True}
467 465 ... viewer
468 466 ... ${USERS.users['${viewer}'].broker}
469 467 ... add_lot_doc level2
470   - Отримати посилання на документацію до всіх лотів для користувача ${viewer}
471 468 Звірити відображення вмісту документації до всіх лотів для користувача ${viewer}
472 469
473 470
... ... @@ -862,6 +859,7 @@ ${item_meat} ${True}
862 859 [Teardown] Оновити LAST_MODIFICATION_DATE
863 860 Можливість створити вимогу про виправлення умов закупівлі із документацією
864 861
  862 +
865 863 Відображення опису вимоги про виправлення умов закупівлі
866 864 [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження
867 865 ... viewer
... ...
Please register or login to post a comment