From 6db6eb04475ba7d899cccb6f5dc95d1aaa2a2c11 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 26 Jul 2016 20:44:02 +0300 Subject: [PATCH 01/16] Update `create_fake_doc()` Return path to created file, basename of created file and content of created file instead of name of created file (and path to it at the same time). It is made in order to delete file after uploading and save all useful data in Robot Framework variables. --- op_robot_tests/tests_files/initial_data.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/op_robot_tests/tests_files/initial_data.py b/op_robot_tests/tests_files/initial_data.py index 789f2b197..61061843d 100644 --- a/op_robot_tests/tests_files/initial_data.py +++ b/op_robot_tests/tests_files/initial_data.py @@ -6,6 +6,7 @@ from tempfile import NamedTemporaryFile from .local_time import get_now from op_faker import OP_Provider +import os import random @@ -44,7 +45,7 @@ def create_fake_doc(): tf = NamedTemporaryFile(delete=False, suffix=suffix, prefix=prefix) tf.write(content) tf.close() - return tf.name + return tf.name, os.path.basename(tf.name), content def test_tender_data(params, periods=("enquiry", "tender")): From 08ed4bc5552670cf4190728409bb2320dc58cc30 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 19 Jul 2016 18:54:19 +0300 Subject: [PATCH 02/16] Remake tender and lot documents addition Add ${doc_id} variable and get_id_from_doc_name function. Use updated `create_fake_doc` function. Use better names for variables. --- .../tests_files/base_keywords.robot | 20 ++++++++++++------- .../tests_files/service_keywords.py | 4 ++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index af4bfb753..5cddf7df5 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -40,10 +40,12 @@ Resource resource.robot Можливість додати документацію до тендера - ${filepath}= create_fake_doc - Run As ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']} - ${documents}= Create Dictionary filepath=${filepath} - Set To Dictionary ${USERS.users['${tender_owner}']} documents=${documents} + ${file_path} ${file_name} ${file_content}= create_fake_doc + Run As ${tender_owner} Завантажити документ ${file_path} ${TENDER['TENDER_UAID']} + ${doc_id}= get_id_from_doc_name ${file_name} + ${tender_document}= Create Dictionary doc_name=${file_name} doc_id=${doc_id} doc_content=${file_content} + Set To Dictionary ${USERS.users['${tender_owner}']} tender_document=${tender_document} + Remove File ${file_path} Можливість додати предмет закупівлі в тендер @@ -153,13 +155,17 @@ Resource resource.robot Можливість додати документацію до ${lot_index} лоту ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} - ${filepath}= create_fake_doc - Run As ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} + ${file_path} ${file_name} ${file_content}= create_fake_doc + Run As ${tender_owner} Завантажити документ в лот ${file_path} ${TENDER['TENDER_UAID']} ${lot_id} + ${doc_id}= get_id_from_doc_name ${file_name} + ${data}= Create Dictionary doc_name=${file_name} doc_id=${doc_id} doc_content=${file_content} ${empty_list}= Create List ${lots_documents}= Get variable value ${USERS.users['${tender_owner}'].lots_documents} ${empty_list} - Append to list ${lots_documents} ${filepath} + Append to list ${lots_documents} ${data} Set to dictionary ${USERS.users['${tender_owner}']} lots_documents=${lots_documents} Log ${USERS.users['${tender_owner}'].lots_documents} + Remove File ${file_path} + Можливість додати документацію до всіх лотів ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} diff --git a/op_robot_tests/tests_files/service_keywords.py b/op_robot_tests/tests_files/service_keywords.py index fdc331b71..23ed25d29 100644 --- a/op_robot_tests/tests_files/service_keywords.py +++ b/op_robot_tests/tests_files/service_keywords.py @@ -413,6 +413,10 @@ def get_id_from_object(obj): return obj_id.group(1) +def get_id_from_doc_name(name): + return re.match(r'd\-[0-9a-fA-F]{8}', name).group(0) + + def get_object_type_by_id(object_id): prefixes = {'q': 'questions', 'f': 'features', 'i': 'items', 'l': 'lots'} return prefixes.get(object_id[0]) From 839b29593cafa246302e63064efb03f3cf5e5d95 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 19 Jul 2016 19:17:26 +0300 Subject: [PATCH 03/16] Remake document title display checking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use id from title instead of url as data given to broker to find the document. Add new keyword `Отримати інформацію із документа` and use it instead of `Отримати інформацію із тендера`. --- op_robot_tests/tests_files/base_keywords.robot | 9 ++++++--- .../tests_files/brokers/openprocurement_client.robot | 8 ++++++++ op_robot_tests/tests_files/openProcedure.robot | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index 5cddf7df5..b4c8264e9 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -61,6 +61,11 @@ Resource resource.robot Run As ${tender_owner} Видалити предмет закупівлі ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].item_data.item_id} +Звірити відображення поля ${field} документа ${doc_id} із ${left} для користувача ${username} + ${right}= Run As ${username} Отримати інформацію із документа ${TENDER['TENDER_UAID']} ${doc_id} ${field} + Порівняти об'єкти ${left} ${right} + + Звірити відображення поля ${field} тендера для усіх користувачів :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} \ Звірити відображення поля ${field} тендера для користувача ${username} @@ -235,9 +240,7 @@ Resource resource.robot Звірити відображення заголовку документації до всіх лотів для користувача ${username} ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} :FOR ${lot_index} IN RANGE ${number_of_lots} - \ ${lot_index}= Convert to integer ${lot_index} - \ ${doc_index}= get_document_index_by_id ${USERS.users['${username}'].tender_data.data.documents} ${USERS.users['${tender_owner}'].lots_documents[${lot_index}]} - \ Звірити відображення поля documents[${doc_index}].title тендера із ${USERS.users['${tender_owner}'].lots_documents[${lot_index}]} для користувача ${username} + \ Звірити відображення поля title документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} із ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].filepath} для користувача ${username} Отримати посилання на документацію до всіх лотів для користувача ${username} diff --git a/op_robot_tests/tests_files/brokers/openprocurement_client.robot b/op_robot_tests/tests_files/brokers/openprocurement_client.robot index 35fb95b5a..c0eb7e141 100644 --- a/op_robot_tests/tests_files/brokers/openprocurement_client.robot +++ b/op_robot_tests/tests_files/brokers/openprocurement_client.robot @@ -41,6 +41,14 @@ Library openprocurement_client_helper.py [return] ${reply} +Отримати інформацію із документа + [Arguments] ${username} ${tender_uaid} ${doc_id} ${field} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${document}= get_document_by_id ${tender.data} ${doc_id} + Log ${document} + [Return] ${document['${field}']} + + Отримати документ [Arguments] ${username} ${tender_uaid} ${url} ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} diff --git a/op_robot_tests/tests_files/openProcedure.robot b/op_robot_tests/tests_files/openProcedure.robot index 4b36a44ab..d75aa5fb1 100644 --- a/op_robot_tests/tests_files/openProcedure.robot +++ b/op_robot_tests/tests_files/openProcedure.robot @@ -441,7 +441,7 @@ ${item_meat} ${True} ... ${USERS.users['${viewer}'].broker} ... add_tender_doc level2 [Setup] Дочекатись синхронізації з майданчиком ${viewer} - Звірити відображення поля documents[0].title тендера із ${USERS.users['${tender_owner}']['documents']['filepath']} для користувача ${viewer} + Звірити відображення поля title документа ${USERS.users['${tender_owner}']['tender_document']['doc_id']} із ${USERS.users['${tender_owner}'].tender_document.doc_name} для користувача ${viewer} Відображення заголовку документації до всіх лотів From ebcb774173cb67bbcb4f0dca18616365456ba733 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Thu, 21 Jul 2016 18:21:27 +0300 Subject: [PATCH 04/16] Remake document content checking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .../tests_files/base_keywords.robot | 15 +++++------- .../brokers/openprocurement_client.robot | 8 +++---- .../brokers/openprocurement_client_helper.py | 24 +++++++++++++++++++ .../tests_files/openProcedure.robot | 6 ++--- 4 files changed, 36 insertions(+), 17 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index b4c8264e9..883a5a545 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -79,12 +79,10 @@ Resource resource.robot Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field} -Звірити відображення вмісту документації до тендера для користувача ${username} - ${file_content_loaded} ${file_name_loaded}= Run as ${viewer} Отримати документ ${TENDER['TENDER_UAID']} ${USERS.users['${username}'].tender_data.data.documents[0].url} - ${file_name_uploaded}= Set variable ${USERS.users['${tender_owner}'].documents.filepath} - ${document_content_uploaded}= get_file_contents ${file_name_uploaded} - Порівняти об'єкти ${file_content_loaded} ${document_content_uploaded} - Порівняти об'єкти ${file_name_loaded} ${file_name_uploaded} +Звірити відображення вмісту документа ${doc_id} з ${left} для користувача ${username} + ${file_name}= Run as ${username} Отримати документ ${TENDER['TENDER_UAID']} ${doc_id} + ${right}= Get File ${OUTPUT_DIR}${/}${file_name} + Порівняти об'єкти ${left} ${right} Звірити відображення дати ${date} тендера для усіх користувачів @@ -262,9 +260,8 @@ Resource resource.robot Звірити відображення вмісту документації до всіх лотів для користувача ${username} ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} :FOR ${lot_index} IN RANGE ${number_of_lots} - \ ${lot_index}= Convert to integer ${lot_index} - \ ${doc_index}= get_document_index_by_id ${USERS.users['${username}'].tender_data.data.documents} ${USERS.users['${tender_owner}'].lots_documents[${lot_index}]} - \ Звірити відображення вмісту ${doc_index} документа до ${lot_index} лоту для користувача ${username} + \ ${doc_content}= Get File ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].filepath} + \ Звірити відображення вмісту документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} з ${doc_content} для користувача ${username} Звірити відображення поля ${field} у новоствореному лоті для усіх користувачів diff --git a/op_robot_tests/tests_files/brokers/openprocurement_client.robot b/op_robot_tests/tests_files/brokers/openprocurement_client.robot index c0eb7e141..4f83ace85 100644 --- a/op_robot_tests/tests_files/brokers/openprocurement_client.robot +++ b/op_robot_tests/tests_files/brokers/openprocurement_client.robot @@ -50,11 +50,11 @@ Library openprocurement_client_helper.py Отримати документ - [Arguments] ${username} ${tender_uaid} ${url} + [Arguments] ${username} ${tender_uaid} ${doc_id} ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} - ${token}= Get Variable Value ${USERS.users['${username}'].access_token} - ${contents} ${filename}= Call Method ${USERS.users['${username}'].client} get_file ${tender} ${url} ${token} - [return] ${contents} ${filename} + ${document}= get_document_by_id ${tender.data} ${doc_id} + ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title} + [return] ${filename} Отримати посилання на аукціон для глядача diff --git a/op_robot_tests/tests_files/brokers/openprocurement_client_helper.py b/op_robot_tests/tests_files/brokers/openprocurement_client_helper.py index c9f8e568a..d694897ef 100644 --- a/op_robot_tests/tests_files/brokers/openprocurement_client_helper.py +++ b/op_robot_tests/tests_files/brokers/openprocurement_client_helper.py @@ -3,6 +3,8 @@ from openprocurement_client.exceptions import IdNotFound from restkit.errors import RequestFailed from retrying import retry +import os +import urllib def retry_if_request_failed(exception): @@ -34,3 +36,25 @@ def get_complaint_internal_id(tender, complaintID): except AttributeError: pass raise IdNotFound + + +def get_document_by_id(data, doc_id): + for document in data.get('documents', []): + if doc_id in document.get('title', ''): + return document + for complaint in data.get('complaints', []): + for document in complaint.get('documents', []): + if doc_id in document.get('title', ''): + return document + for award in data.get('awards', []): + for document in award.get('documents', []): + if doc_id in document.get('title', ''): + return document + raise Exception('Document with id {} not found'.format(doc_id)) + + +def download_file_from_url(url, path_to_save_file): + f = open(path_to_save_file, 'wb') + f.write(urllib.urlopen(url).read()) + f.close() + return os.path.basename(f.name) diff --git a/op_robot_tests/tests_files/openProcedure.robot b/op_robot_tests/tests_files/openProcedure.robot index d75aa5fb1..c482fa189 100644 --- a/op_robot_tests/tests_files/openProcedure.robot +++ b/op_robot_tests/tests_files/openProcedure.robot @@ -457,9 +457,7 @@ ${item_meat} ${True} ... viewer ... ${USERS.users['${viewer}'].broker} ... add_tender_doc level2 - ${doc_index}= get_document_index_by_id ${USERS.users['${viewer}'].tender_data.data.documents} ${USERS.users['${tender_owner}'].documents.filepath} - Отримати дані із тендера ${tender_owner} ${TENDER['TENDER_UAID']} documents[${doc_index}].url - Звірити відображення вмісту документації до тендера для користувача ${viewer} + Звірити відображення вмісту документа ${USERS.users['${tender_owner}'].tender_document.doc_id} з ${USERS.users['${tender_owner}'].tender_document.doc_content} для користувача ${viewer} Відображення вмісту документації до всіх лотів @@ -467,7 +465,6 @@ ${item_meat} ${True} ... viewer ... ${USERS.users['${viewer}'].broker} ... add_lot_doc level2 - Отримати посилання на документацію до всіх лотів для користувача ${viewer} Звірити відображення вмісту документації до всіх лотів для користувача ${viewer} @@ -862,6 +859,7 @@ ${item_meat} ${True} [Teardown] Оновити LAST_MODIFICATION_DATE Можливість створити вимогу про виправлення умов закупівлі із документацією + Відображення опису вимоги про виправлення умов закупівлі [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження ... viewer From 363d6a0dbd6b8cebcbdad0b791c68cfd6e5d7653 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Thu, 21 Jul 2016 18:23:54 +0300 Subject: [PATCH 05/16] Remove `get_file_contents` function Now is used Robot Framework keyword `Get File`, so it is redundant --- op_robot_tests/tests_files/service_keywords.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/op_robot_tests/tests_files/service_keywords.py b/op_robot_tests/tests_files/service_keywords.py index 23ed25d29..c2cc27de5 100644 --- a/op_robot_tests/tests_files/service_keywords.py +++ b/op_robot_tests/tests_files/service_keywords.py @@ -59,11 +59,6 @@ def add_minutes_to_date(date, minutes): return (parse(date) + timedelta(minutes=float(minutes))).isoformat() -def get_file_contents(path): - with open(path, 'r') as f: - return unicode(f.read()) or u'' - - def compare_date(left, right, accuracy="minute", absolute_delta=True): '''Compares dates with specified accuracy From 0e719e2051a6c0a8c01e3ea7e29d238b7e1c6821 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Wed, 20 Jul 2016 13:09:45 +0300 Subject: [PATCH 06/16] Remove unused keywords from base_keywords.robot --- op_robot_tests/tests_files/base_keywords.robot | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index 883a5a545..64e4fec4d 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -241,22 +241,6 @@ Resource resource.robot \ Звірити відображення поля title документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} із ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].filepath} для користувача ${username} -Отримати посилання на документацію до всіх лотів для користувача ${username} - ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} - :FOR ${lot_index} IN RANGE ${number_of_lots} - \ ${lot_index}= Convert to integer ${lot_index} - \ ${doc_index}= get_document_index_by_id ${USERS.users['${username}'].tender_data.data.documents} ${USERS.users['${tender_owner}'].lots_documents[${lot_index}]} - \ Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} documents[${doc_index}].url - - -Звірити відображення вмісту ${doc_index} документа до ${lot_index} лоту для користувача ${username} - ${file_content_loaded} ${file_name_loaded}= Run as ${username} Отримати документ ${TENDER['TENDER_UAID']} ${USERS.users['${username}'].tender_data.data.documents[${doc_index}].url} - ${doc_title}= Set variable ${USERS.users['${tender_owner}'].lots_documents[${lot_index}]} - ${document_content_uploaded}= get_file_contents ${doc_title} - Порівняти об'єкти ${file_content_loaded} ${document_content_uploaded} - Порівняти об'єкти ${file_name_loaded} ${doc_title} - - Звірити відображення вмісту документації до всіх лотів для користувача ${username} ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} :FOR ${lot_index} IN RANGE ${number_of_lots} From 2e06452b2a6708d1129fec3bb00d53be4a5aed81 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Wed, 20 Jul 2016 16:09:41 +0300 Subject: [PATCH 07/16] Remove `get_document_index_by_id` function --- op_robot_tests/tests_files/service_keywords.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/op_robot_tests/tests_files/service_keywords.py b/op_robot_tests/tests_files/service_keywords.py index c2cc27de5..8936a0dfe 100644 --- a/op_robot_tests/tests_files/service_keywords.py +++ b/op_robot_tests/tests_files/service_keywords.py @@ -440,17 +440,6 @@ def get_complaint_index_by_complaintID(data, complaintID): return index -def get_document_index_by_id(data, document_id): - if not data: - return 0 - for index, element in enumerate(data): - if element['title'] == document_id: - break - else: - index += 1 - return index - - def generate_test_bid_data(tender_data): bid = test_bid_data() if 'aboveThreshold' in tender_data.get('procurementMethodType', '') or 'competitiveDialogue' in tender_data.get('procurementMethodType', ''): From 76e6b2b78d52cbe2c536c741113fb02ba3ba68bd Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 26 Jul 2016 20:15:02 +0300 Subject: [PATCH 08/16] Update complaint creating keywords In order to work with new arguments returned from `create_fake_doc()`. Also add `${doc_id}`, `${doc_name}` and `${doc_content}` to `${claim_data}` and `Remove File` it the end of keywords body. --- .../tests_files/base_keywords.robot | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index 64e4fec4d..ac042dc0f 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -445,44 +445,50 @@ Resource resource.robot Можливість створити вимогу про виправлення умов закупівлі із документацією ${claim}= Підготувати дані для подання вимоги - ${document}= create_fake_doc + ${file_path} ${file_name} ${file_content}= create_fake_doc ${complaintID}= Run As ${provider} ... Створити вимогу про виправлення умов закупівлі ... ${TENDER['TENDER_UAID']} ... ${claim} - ... ${document} - ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} document=${document} + ... ${file_path} + ${doc_id}= get_id_from_doc_name ${file_name} + ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} doc_name=${file_name} doc_id=${doc_id} doc_content=${file_content} ${claim_data}= munch_dict arg=${claim_data} Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data} + Remove File ${file_path} Можливість створити вимогу про виправлення умов ${lot_index} лоту із документацією ${claim}= Підготувати дані для подання вимоги ${lot_id}= get_id_from_object ${USERS.users['${provider}'].tender_data.data.lots[${lot_index}]} - ${document}= create_fake_doc + ${file_path} ${file_name} ${file_content}= create_fake_doc ${complaintID}= Run As ${provider} ... Створити вимогу про виправлення умов лоту ... ${TENDER['TENDER_UAID']} ... ${claim} ... ${lot_id} - ... ${document} - ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} document=${document} + ... ${file_path} + ${doc_id}= get_id_from_doc_name ${file_name} + ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} doc_name=${file_name} doc_id=${doc_id} doc_content=${file_content} ${claim_data}= munch_dict arg=${claim_data} Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data} + Remove File ${file_path} Можливість створити вимогу про виправлення визначення ${award_index} переможця із документацією ${claim}= Підготувати дані для подання вимоги - ${document}= create_fake_doc + ${file_path} ${file_name} ${file_content}= create_fake_doc ${complaintID}= Run As ${provider} ... Створити вимогу про виправлення визначення переможця ... ${TENDER['TENDER_UAID']} ... ${claim} ... ${award_index} - ... ${document} - ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} document=${document} + ... ${file_path} + ${doc_id}= get_id_from_doc_name ${file_name} + ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} doc_name=${file_name} doc_id=${doc_id} doc_content=${file_content} ${claim_data}= munch_dict arg=${claim_data} Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data} + Remove File ${file_path} Можливість скасувати вимогу про виправлення умов закупівлі From 3fbd0c0fa3ca7928c3017820f607e4426852f428 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Wed, 20 Jul 2016 16:15:10 +0300 Subject: [PATCH 09/16] Remake complaint document title display checking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Call `Отримати інформацію із документа до скарги` directly from test case, without any shell. Rename `Отримати поле документації до скарги` -> `Отримати інформацію із документа до скарги` and remake algorithm inside it. --- .../brokers/openprocurement_client.robot | 16 +++++++--------- .../tests_files/openProcedure.robot | 19 +++++++++++++++---- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/op_robot_tests/tests_files/brokers/openprocurement_client.robot b/op_robot_tests/tests_files/brokers/openprocurement_client.robot index 4f83ace85..b39946877 100644 --- a/op_robot_tests/tests_files/brokers/openprocurement_client.robot +++ b/op_robot_tests/tests_files/brokers/openprocurement_client.robot @@ -654,15 +654,13 @@ Library openprocurement_client_helper.py [Return] ${field_value} -Отримати поле документації до скарги - [Arguments] ${username} ${tender_uaid} ${complaintID} ${document_id} ${field_name} ${award_index}=${None} - openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} - ${complaints}= Get Variable Value ${USERS.users['${username}'].tender_data.data.awards[${award_index}].complaints} ${USERS.users['${username}'].tender_data.data.complaints} - ${complaint_index}= get_complaint_index_by_complaintID ${complaints} ${complaintID} - Log ${complaints} - ${document_index}= get_document_index_by_id ${complaints[${complaint_index}].documents} ${document_id} - ${field_value}= Get Variable Value ${complaints[${complaint_index}].documents[${document_index}]['${field_name}']} - [Return] ${field_value} +Отримати інформацію із документа до скарги + [Arguments] ${username} ${tender_uaid} ${complaintID} ${doc_id} ${field_name} ${award_index}=${None} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${complaints}= Get Variable Value ${tender.data.awards[${award_index}].complaints} ${tender.data.complaints} + ${document}= get_document_by_id ${tender.data} ${doc_id} + Log ${document} + [Return] ${document['${field_name}']} ############################################################################## # Bid operations diff --git a/op_robot_tests/tests_files/openProcedure.robot b/op_robot_tests/tests_files/openProcedure.robot index c482fa189..d3f8df864 100644 --- a/op_robot_tests/tests_files/openProcedure.robot +++ b/op_robot_tests/tests_files/openProcedure.robot @@ -886,12 +886,17 @@ ${item_meat} ${True} Звірити відображення поля title вимоги із ${USERS.users['${provider}'].claim_data.claim.data.title} для користувача ${viewer} -Відображення заголовку документації вимоги про виправлення умов закупівлі +Відображення заголовку документа до вимоги про виправлення умов закупівлі [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження ... viewer ... ${USERS.users['${viewer}'].broker} ... create_tender_claim - Звірити відображення поля document.title вимоги із ${USERS.users['${provider}'].claim_data.document} для користувача ${viewer} + ${right}= Run As ${viewer} Отримати інформацію із документа до скарги + ... ${TENDER['TENDER_UAID']} + ... ${USERS.users['${provider}'].claim_data.complaintID} + ... ${USERS.users['${provider}'].claim_data.doc_id} + ... title + Порівняти об'єкти ${USERS.users['${provider}'].claim_data.doc_name} ${right} Відображення поданого статусу вимоги про виправлення умов закупівлі @@ -1038,6 +1043,7 @@ ${item_meat} ${True} [Teardown] Оновити LAST_MODIFICATION_DATE Можливість створити вимогу про виправлення умов 0 лоту із документацією + Відображення опису вимоги про виправлення умов лоту [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження ... viewer @@ -1064,12 +1070,17 @@ ${item_meat} ${True} Звірити відображення поля title вимоги із ${USERS.users['${provider}'].claim_data.claim.data.title} для користувача ${viewer} -Відображення заголовку документації вимоги про виправлення умов лоту +Відображення заголовку документа до вимоги про виправлення умов лоту [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження ... viewer ... ${USERS.users['${viewer}'].broker} ... create_lot_claim - Звірити відображення поля document.title вимоги із ${USERS.users['${provider}'].claim_data.document} для користувача ${viewer} + ${right}= Run As ${viewer} Отримати інформацію із документа до скарги + ... ${TENDER['TENDER_UAID']} + ... ${USERS.users['${provider}'].claim_data.complaintID} + ... ${USERS.users['${provider}'].claim_data.doc_id} + ... title + Порівняти об'єкти ${USERS.users['${provider}'].claim_data.doc_name} ${right} Відображення поданого статусу вимоги про виправлення умов лоту From a1f3055a47e195486f02fc4e2d43d890e0edad6f Mon Sep 17 00:00:00 2001 From: mykhaly Date: Wed, 20 Jul 2016 16:16:44 +0300 Subject: [PATCH 10/16] =?UTF-8?q?Get=20rid=20of=20document=20fields=20chec?= =?UTF-8?q?king=20in=20`=D0=97=D0=B2=D1=96=D1=80=D0=B8=D1=82=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=B5=20=D1=81=D0=BA=D0=B0=D1=80=D0=B3=D0=B8?= =?UTF-8?q?=20=D1=96=D0=B7=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8F=D0=BC`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- op_robot_tests/tests_files/keywords.robot | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/op_robot_tests/tests_files/keywords.robot b/op_robot_tests/tests_files/keywords.robot index f4b18e360..bfaf43126 100644 --- a/op_robot_tests/tests_files/keywords.robot +++ b/op_robot_tests/tests_files/keywords.robot @@ -542,17 +542,7 @@ Log differences between dicts Звірити поле скарги із значенням [Arguments] ${username} ${tender_uaid} ${given_value} ${field_name} ${complaintID} ${award_index}=${None} - ${status}= Call method ${field_name} startswith document. - ${fetched_field_name}= Run keyword if ${status} == ${True} Fetch From Right ${field_name} . - ${field_name}= Set variable if ${status} == ${True} ${fetched_field_name} ${field_name} - ${received_value}= Run keyword if ${status} == ${True} Run as ${username} Отримати поле документації до скарги - ... ${tender_uaid} - ... ${complaintID} - ... ${given_value} - ... ${field_name} - ... ${award_index} - ... ELSE - ... Run as ${username} Отримати інформацію із скарги ${tender_uaid} ${complaintID} ${field_name} ${award_index} + ${received_value}= Run as ${username} Отримати інформацію із скарги ${tender_uaid} ${complaintID} ${field_name} ${award_index} Порівняти об'єкти ${given_value} ${received_value} From d90b3751586b12fab48904e0db57bcbdb18d2a33 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Fri, 22 Jul 2016 14:47:48 +0300 Subject: [PATCH 11/16] Add complaint's document content checking test cases --- op_robot_tests/tests_files/openProcedure.robot | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/op_robot_tests/tests_files/openProcedure.robot b/op_robot_tests/tests_files/openProcedure.robot index d3f8df864..53a0d0316 100644 --- a/op_robot_tests/tests_files/openProcedure.robot +++ b/op_robot_tests/tests_files/openProcedure.robot @@ -899,6 +899,14 @@ ${item_meat} ${True} Порівняти об'єкти ${USERS.users['${provider}'].claim_data.doc_name} ${right} +Відображення вмісту документа до вимоги про виправлення умов закупівлі + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... create_tender_claim + Звірити відображення вмісту документа ${USERS['${provider}'].claim_data.doc_id} з ${USERS['${provider}'].claim_data.doc_content} для користувача ${viewer} + + Відображення поданого статусу вимоги про виправлення умов закупівлі [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження ... viewer @@ -1083,6 +1091,14 @@ ${item_meat} ${True} Порівняти об'єкти ${USERS.users['${provider}'].claim_data.doc_name} ${right} +Відображення вмісту документа до вимоги про виправлення умов лоту + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... create_lot_claim + Звірити відображення вмісту документа ${USERS['${provider}'].claim_data.doc_id} з ${USERS['${provider}'].claim_data.doc_content} для користувача ${viewer} + + Відображення поданого статусу вимоги про виправлення умов лоту [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження ... viewer From efbcbc685561da2492cd01b5c7a11bd25e719730 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 26 Jul 2016 18:19:15 +0300 Subject: [PATCH 12/16] Update keywords to work with updated `create_fake_doc` And remove file after uploading. --- op_robot_tests/tests_files/base_keywords.robot | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index ac042dc0f..b9e61e994 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -808,16 +808,18 @@ Resource resource.robot Можливість завантажити документ в пропозицію користувачем ${username} - ${filepath}= create_fake_doc - ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} + ${file_path} ${file_name} ${file_content}= create_fake_doc + ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${file_path} ${TENDER['TENDER_UAID']} Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} + Remove File ${file_path} Можливість змінити документацію цінової пропозиції користувачем ${username} - ${filepath}= create_fake_doc + ${file_path} ${file_name} ${file_content}= create_fake_doc ${docid}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid_doc_upload']['upload_response'].data.id} - ${bid_doc_modified}= Run As ${username} Змінити документ в ставці ${filepath} ${docid} + ${bid_doc_modified}= Run As ${username} Змінити документ в ставці ${file_path} ${docid} Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_modified=${bid_doc_modified} + Remove File ${file_path} ############################################################################################## # Cancellations From a830fbb0f9543a20b8e9f01af1e1fc096d4d023b Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 26 Jul 2016 18:29:25 +0300 Subject: [PATCH 13/16] Update keyword to work with updated `create_fake_doc` Also update saving those data returned from `create_fake_doc` into variable and add removing of file after uploading. --- op_robot_tests/tests_files/base_keywords.robot | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index b9e61e994..1be84a805 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -834,13 +834,15 @@ Resource resource.robot Можливість зареєструвати, додати документацію і підтвердити постачальника до закупівлі ${supplier_data}= Підготувати дані про постачальника ${tender_owner} - ${filepath}= create_fake_doc + ${file_path} ${file_name} ${file_content}= create_fake_doc Run as ${tender_owner} ... Створити постачальника, додати документацію і підтвердити його ... ${TENDER['TENDER_UAID']} ... ${supplier_data} - ... ${filepath} - Set to dictionary ${USERS.users['${tender_owner}']} award_document=${filepath} + ... ${file_path} + ${doc_id}= get_id_from_doc_name ${file_name} + Set to dictionary ${USERS.users['${tender_owner}']} award_doc_name=${file_name} award_doc_id=${doc_id} award_doc_content=${file_content} + Remove File ${file_path} Можливість укласти угоду для закупівлі From 3f7e192e0c2b3f704dacd2d6e9fa4588cac1ac9d Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 26 Jul 2016 18:37:52 +0300 Subject: [PATCH 14/16] Move keywords in base_keywords.robot Remove useles row `${number_of_lots}= Get Length ${USERS.users[].initial_data.data.lots}` and use previously saved data for checking document contents instead of reading that from file. --- .../tests_files/base_keywords.robot | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index 1be84a805..11db45c5f 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -171,7 +171,6 @@ Resource resource.robot Можливість додати документацію до всіх лотів - ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} :FOR ${lot_index} IN RANGE ${number_of_lots} \ Можливість додати документацію до ${lot_index} лоту @@ -186,6 +185,16 @@ Resource resource.robot Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data} +Звірити відображення заголовку документації до всіх лотів для користувача ${username} + :FOR ${lot_index} IN RANGE ${number_of_lots} + \ Звірити відображення поля title документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} із ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_name} для користувача ${username} + + +Звірити відображення вмісту документації до всіх лотів для користувача ${username} + :FOR ${lot_index} IN RANGE ${number_of_lots} + \ Звірити відображення вмісту документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} з ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_content} для користувача ${username} + + Можливість видалити предмет закупівлі з ${lot_index} лоту ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} Run As ${tender_owner} Видалити предмет закупівлі ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].item_data.item_id} ${lot_id} @@ -235,19 +244,6 @@ Resource resource.robot Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${data} ${field} ${lot_id} -Звірити відображення заголовку документації до всіх лотів для користувача ${username} - ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} - :FOR ${lot_index} IN RANGE ${number_of_lots} - \ Звірити відображення поля title документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} із ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].filepath} для користувача ${username} - - -Звірити відображення вмісту документації до всіх лотів для користувача ${username} - ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} - :FOR ${lot_index} IN RANGE ${number_of_lots} - \ ${doc_content}= Get File ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].filepath} - \ Звірити відображення вмісту документа ${USERS.users['${tender_owner}'].lots_documents[${lot_index}].doc_id} з ${doc_content} для користувача ${username} - - Звірити відображення поля ${field} у новоствореному лоті для усіх користувачів :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} \ Звірити відображення поля ${field} у новоствореному лоті для користувача ${username} From db1b1af38d6394b292177bc0d1ce37c21abbaaf5 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 2 Aug 2016 13:32:28 +0300 Subject: [PATCH 15/16] Update aboveThreshold_keywords.robot To work with changed `create_fake_doc` function. Also remove file after uploading, like in others keywords from base_keywords.robot. --- .../tests_files/aboveThreshold_keywords.robot | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/op_robot_tests/tests_files/aboveThreshold_keywords.robot b/op_robot_tests/tests_files/aboveThreshold_keywords.robot index 20f2bb0f7..e9d5ede33 100644 --- a/op_robot_tests/tests_files/aboveThreshold_keywords.robot +++ b/op_robot_tests/tests_files/aboveThreshold_keywords.robot @@ -50,17 +50,19 @@ Resource base_keywords.robot Можливість завантажити ${doc_type} документ до пропозиції учасником ${username} - ${filepath}= create_fake_doc - ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} + ${file_path} ${file_name} ${file_content}= create_fake_doc + ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${file_path} ${TENDER['TENDER_UAID']} ${doc_type} Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} + Remove File ${file_path} ############################################################################################## # OPENEU Pre-Qualification ############################################################################################## Можливість завантажити документ у кваліфікацію ${bid_index} пропозиції - ${filepath}= create_fake_doc - Run As ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} ${bid_index} + ${file_path} ${file_name} ${file_content}= create_fake_doc + Run As ${tender_owner} Завантажити документ у кваліфікацію ${file_path} ${TENDER['TENDER_UAID']} ${bid_index} + Remove File ${file_path} Можливість відхилити ${bid_index} пропозиції кваліфікації From b6b1d7a1335d7feb539010c707bf7749eaa919b8 Mon Sep 17 00:00:00 2001 From: mykhaly Date: Tue, 2 Aug 2016 13:32:59 +0300 Subject: [PATCH 16/16] Update qualification.robot To work with changed `create_fake_doc` function. Also remove file after uploading, like in others keywords from base_keywords.robot. --- .../tests_files/qualification.robot | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/op_robot_tests/tests_files/qualification.robot b/op_robot_tests/tests_files/qualification.robot index 6476ae37d..1bbf83f57 100644 --- a/op_robot_tests/tests_files/qualification.robot +++ b/op_robot_tests/tests_files/qualification.robot @@ -23,6 +23,7 @@ ${award_index} ${0} :FOR ${username} IN ${viewer} ${tender_owner} \ ${resp}= Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} + Можливість створити вимогу про виправлення визначення переможця, додати до неї документацію і подати її користувачем [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження ... provider @@ -65,7 +66,21 @@ ${award_index} ${0} ... viewer ... ${USERS.users['${viewer}'].broker} ... create_award_claim - Звірити відображення поля document.title вимоги про виправлення визначення ${award_index} переможця із ${USERS.users['${provider}'].claim_data.document} для користувача ${viewer} + ${right}= Run As ${viewer} Отримати інформацію із документа до скарги + ... ${TENDER['TENDER_UAID']} + ... ${USERS.users['${provider}'].claim_data.complaintID} + ... ${USERS.users['${provider}'].claim_data.doc_id} + ... title + ... ${award_index} + Порівняти об'єкти ${USERS.users['${provider}'].claim_data.doc_name} ${right} + + +Відображення вмісту документа до вимоги про виправлення визначення переможця + [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... create_award_claim + Звірити відображення вмісту документа ${USERS['${provider}'].claim_data.doc_id} з ${USERS['${provider}'].claim_data.doc_content} для користувача ${viewer} Відображення поданого статусу вимоги про виправлення визначення переможця @@ -201,8 +216,9 @@ ${award_index} ${0} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... qualification_add_doc_to_first_award level3 - ${filepath}= create_fake_doc - Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${filepath} ${TENDER['TENDER_UAID']} 0 + ${file_path} ${file_name} ${file_content}= create_fake_doc + Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${file_path} ${TENDER['TENDER_UAID']} 0 + Remove File ${file_path} Можливість підтвердити постачальника @@ -226,8 +242,9 @@ ${award_index} ${0} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... qualification_add_doc_to_second_award level3 - ${filepath}= create_fake_doc - Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${filepath} ${TENDER['TENDER_UAID']} 1 + ${file_path} ${file_name} ${file_content}= create_fake_doc + Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${file_path} ${TENDER['TENDER_UAID']} 1 + Remove File ${file_path} Можливість підтвердити нового постачальника