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