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,12 +79,10 @@ Resource resource.robot | ||
79 | Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field} | 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 | Звірити відображення дати ${date} тендера для усіх користувачів | 88 | Звірити відображення дати ${date} тендера для усіх користувачів |
@@ -262,9 +260,8 @@ Resource resource.robot | @@ -262,9 +260,8 @@ Resource resource.robot | ||
262 | Звірити відображення вмісту документації до всіх лотів для користувача ${username} | 260 | Звірити відображення вмісту документації до всіх лотів для користувача ${username} |
263 | ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} | 261 | ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} |
264 | :FOR ${lot_index} IN RANGE ${number_of_lots} | 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 | Звірити відображення поля ${field} у новоствореному лоті для усіх користувачів | 267 | Звірити відображення поля ${field} у новоствореному лоті для усіх користувачів |
@@ -50,11 +50,11 @@ Library openprocurement_client_helper.py | @@ -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 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 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,6 +3,8 @@ from openprocurement_client.utils import get_tender_id_by_uaid | ||
3 | from openprocurement_client.exceptions import IdNotFound | 3 | from openprocurement_client.exceptions import IdNotFound |
4 | from restkit.errors import RequestFailed | 4 | from restkit.errors import RequestFailed |
5 | from retrying import retry | 5 | from retrying import retry |
6 | +import os | ||
7 | +import urllib | ||
6 | 8 | ||
7 | 9 | ||
8 | def retry_if_request_failed(exception): | 10 | def retry_if_request_failed(exception): |
@@ -34,3 +36,25 @@ def get_complaint_internal_id(tender, complaintID): | @@ -34,3 +36,25 @@ def get_complaint_internal_id(tender, complaintID): | ||
34 | except AttributeError: | 36 | except AttributeError: |
35 | pass | 37 | pass |
36 | raise IdNotFound | 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,9 +457,7 @@ ${item_meat} ${True} | ||
457 | ... viewer | 457 | ... viewer |
458 | ... ${USERS.users['${viewer}'].broker} | 458 | ... ${USERS.users['${viewer}'].broker} |
459 | ... add_tender_doc level2 | 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,7 +465,6 @@ ${item_meat} ${True} | ||
467 | ... viewer | 465 | ... viewer |
468 | ... ${USERS.users['${viewer}'].broker} | 466 | ... ${USERS.users['${viewer}'].broker} |
469 | ... add_lot_doc level2 | 467 | ... add_lot_doc level2 |
470 | - Отримати посилання на документацію до всіх лотів для користувача ${viewer} | ||
471 | Звірити відображення вмісту документації до всіх лотів для користувача ${viewer} | 468 | Звірити відображення вмісту документації до всіх лотів для користувача ${viewer} |
472 | 469 | ||
473 | 470 | ||
@@ -862,6 +859,7 @@ ${item_meat} ${True} | @@ -862,6 +859,7 @@ ${item_meat} ${True} | ||
862 | [Teardown] Оновити LAST_MODIFICATION_DATE | 859 | [Teardown] Оновити LAST_MODIFICATION_DATE |
863 | Можливість створити вимогу про виправлення умов закупівлі із документацією | 860 | Можливість створити вимогу про виправлення умов закупівлі із документацією |
864 | 861 | ||
862 | + | ||
865 | Відображення опису вимоги про виправлення умов закупівлі | 863 | Відображення опису вимоги про виправлення умов закупівлі |
866 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження | 864 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження |
867 | ... viewer | 865 | ... viewer |
Please
register
or
login
to post a comment