Commit ebcb774173cb67bbcb4f0dca18616365456ba733
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.
Showing
4 changed files
with
36 additions
and
17 deletions
... | ... | @@ -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