From 97690ed570709f9f1424ad136dce8203e87c1a1d Mon Sep 17 00:00:00 2001
From: Andrew Leitsius <leits@quintagroup.org>
Date: Fri, 6 May 2016 15:25:27 +0300
Subject: [PATCH] Add number of items (#200)

As variable to complaints, openProcedure and aboveThreshold test suites
And to all necessary keywords
---
 op_robot_tests/tests_files/aboveThreshold.robot             |  1 +
 op_robot_tests/tests_files/base_keywords.robot              |  3 ++-
 op_robot_tests/tests_files/initial_data.py                  | 12 ++++++------
 op_robot_tests/tests_files/keywords.robot                   |  4 ++--
 op_robot_tests/tests_files/openProcedure.robot              |  9 +++++----
 op_robot_tests/tests_files/service_keywords.py              |  8 ++++----
 op_robot_tests/tests_files/singleItemTenderComplaints.robot |  1 +
 7 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/op_robot_tests/tests_files/aboveThreshold.robot b/op_robot_tests/tests_files/aboveThreshold.robot
index 0d61959..5507493 100644
--- a/op_robot_tests/tests_files/aboveThreshold.robot
+++ b/op_robot_tests/tests_files/aboveThreshold.robot
@@ -8,6 +8,7 @@ Suite Teardown  Test Suite Teardown
 ${mode}         openeu
 @{used_roles}   tender_owner  provider  provider1  viewer
 
+${number_of_items} ${1}
 ${number_of_lots}  ${0}
 ${meat}            ${0}
 
diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot
index de8fb9a..d53cad0 100644
--- a/op_robot_tests/tests_files/base_keywords.robot
+++ b/op_robot_tests/tests_files/base_keywords.robot
@@ -8,8 +8,9 @@ Resource           resource.robot
 *** Keywords ***
 Можливість оголосити тендер
   ${number_of_lots}=  Convert To Integer  ${number_of_lots}
+  ${number_of_items}=  Convert To Integer  ${number_of_items}
   ${meat}=  Convert To Integer  ${meat}
-  ${tender_data}=  Підготувати дані для створення тендера  ${number_of_lots}  ${meat}
+  ${tender_data}=  Підготувати дані для створення тендера  ${number_of_items}  ${number_of_lots}  ${meat}
   ${adapted_data}=  Адаптувати дані для оголошення тендера  ${tender_owner}  ${tender_data}
   ${TENDER_UAID}=  Run As  ${tender_owner}  Створити тендер  ${adapted_data}
   Set To Dictionary  ${USERS.users['${tender_owner}']}  initial_data=${adapted_data}
diff --git a/op_robot_tests/tests_files/initial_data.py b/op_robot_tests/tests_files/initial_data.py
index 09f98db..b912f85 100644
--- a/op_robot_tests/tests_files/initial_data.py
+++ b/op_robot_tests/tests_files/initial_data.py
@@ -47,7 +47,7 @@ def create_fake_doc():
     return tf.name
 
 
-def test_tender_data(intervals, periods=("enquiry", "tender"), number_of_lots=0, meat=False):
+def test_tender_data(intervals, periods=("enquiry", "tender"), number_of_items=1, number_of_lots=0, meat=False):
     now = get_now()
     value_amount = round(random.uniform(3000, 99999999999.99), 2)  # max value equals to budget of Ukraine in hryvnias
     data = {
@@ -93,7 +93,7 @@ def test_tender_data(intervals, periods=("enquiry", "tender"), number_of_lots=0,
             new_lot = test_lot_data(data['value']['amount'])
             data['lots'].append(new_lot)
             data['lots'][lot_number]['id'] = lot_id
-            for i in range(fake.random_int(min=1, max=5)):
+            for i in range(number_of_items):
                 new_item = test_item_data(cpv_group)
                 data['items'].append(new_item)
                 data['items'][lot_number]['relatedLot'] = lot_id
@@ -102,7 +102,7 @@ def test_tender_data(intervals, periods=("enquiry", "tender"), number_of_lots=0,
         data['value']['amount'] = value_amount
         data['minimalStep']['amount'] = minimalStep
     else:
-        for i in range(fake.random_int(min=1, max=5)):
+        for i in range(number_of_items):
             new_item = test_item_data(cpv_group)
             data['items'].append(new_item)
     if meat:
@@ -341,7 +341,7 @@ def test_lot_complaint_data(complaint, lot_id):
     return munchify(complaint)
 
 
-def test_tender_data_openua(intervals, number_of_lots, meat):
+def test_tender_data_openua(intervals, number_of_items, number_of_lots, meat):
     accelerator = intervals['accelerator']
     # Since `accelerator` field is not really a list containing timings
     # for a period called `acceleratorPeriod`, let's remove it :)
@@ -349,7 +349,7 @@ def test_tender_data_openua(intervals, number_of_lots, meat):
     # We should not provide any values for `enquiryPeriod` when creating
     # an openUA or openEU procedure. That field should not be present at all.
     # Therefore, we pass a nondefault list of periods to `test_tender_data()`.
-    data = test_tender_data(intervals, periods=('tender',), number_of_lots=number_of_lots, meat=meat)
+    data = test_tender_data(intervals, ('tender',), number_of_items, number_of_lots, meat)
     data['procurementMethodType'] = 'aboveThresholdUA'
     data['procurementMethodDetails'] = 'quick, ' \
         'accelerator={}'.format(accelerator)
@@ -365,7 +365,7 @@ def test_tender_data_openeu(intervals, number_of_lots, meat):
     # We should not provide any values for `enquiryPeriod` when creating
     # an openUA or openEU procedure. That field should not be present at all.
     # Therefore, we pass a nondefault list of periods to `test_tender_data()`.
-    data = test_tender_data(intervals, periods=('tender',), number_of_lots=number_of_lots, meat=meat)
+    data = test_tender_data(intervals, ('tender',), number_of_items, number_of_lots, meat)
     data['procurementMethodType'] = 'aboveThresholdEU'
     data['procurementMethodDetails'] = 'quick, ' \
         'accelerator={}'.format(accelerator)
diff --git a/op_robot_tests/tests_files/keywords.robot b/op_robot_tests/tests_files/keywords.robot
index 9ad990e..e09bb47 100644
--- a/op_robot_tests/tests_files/keywords.robot
+++ b/op_robot_tests/tests_files/keywords.robot
@@ -191,9 +191,9 @@ Get Broker Property By Username
 
 
 Підготувати дані для створення тендера
-  [Arguments]  ${number_of_lots}=0  ${meat}=${False}
+  [Arguments]  ${number_of_items}=1  ${number_of_lots}=0  ${meat}=${False}
   ${period_intervals}=  compute_intrs  ${BROKERS}  ${used_brokers}
-  ${tender_data}=  prepare_test_tender_data  ${period_intervals}  ${mode}  ${number_of_lots}  ${meat}
+  ${tender_data}=  prepare_test_tender_data  ${period_intervals}  ${mode}  ${number_of_items}  ${number_of_lots}  ${meat}
   ${TENDER}=  Create Dictionary
   Set Global Variable  ${TENDER}
   Log  ${tender_data}
diff --git a/op_robot_tests/tests_files/openProcedure.robot b/op_robot_tests/tests_files/openProcedure.robot
index 4dd0d83..67d223e 100644
--- a/op_robot_tests/tests_files/openProcedure.robot
+++ b/op_robot_tests/tests_files/openProcedure.robot
@@ -5,11 +5,12 @@ Suite Teardown  Test Suite Teardown
 
 
 *** Variables ***
-${mode}            belowThreshold
-@{used_roles}      tender_owner  provider  provider1  viewer
+${mode}             belowThreshold
+@{used_roles}       tender_owner  provider  provider1  viewer
 
-${number_of_lots}  ${1}
-${meat}            ${1}
+${number_of_items}  ${1}
+${number_of_lots}   ${1}
+${meat}             ${1}
 
 
 *** Test Cases ***
diff --git a/op_robot_tests/tests_files/service_keywords.py b/op_robot_tests/tests_files/service_keywords.py
index fda6d70..71cfd2f 100644
--- a/op_robot_tests/tests_files/service_keywords.py
+++ b/op_robot_tests/tests_files/service_keywords.py
@@ -258,7 +258,7 @@ def compute_intrs(brokers_data, used_brokers):
     return result
 
 
-def prepare_test_tender_data(procedure_intervals, mode, number_of_lots=0, meat=False):
+def prepare_test_tender_data(procedure_intervals, mode, number_of_items=1, number_of_lots=0, meat=False):
     # Get actual intervals by mode name
     if mode in procedure_intervals:
         intervals = procedure_intervals[mode]
@@ -281,13 +281,13 @@ def prepare_test_tender_data(procedure_intervals, mode, number_of_lots=0, meat=F
     elif mode == 'negotiation.quick':
         return munchify({'data': test_tender_data_limited(intervals, 'negotiation.quick')})
     elif mode == 'openeu':
-        return munchify({'data': test_tender_data_openeu(intervals, number_of_lots=number_of_lots, meat=meat)})
+        return munchify({'data': test_tender_data_openeu(intervals, number_of_items, number_of_lots, meat)})
     elif mode == 'openua':
-        return munchify({'data': test_tender_data_openua(intervals, number_of_lots=number_of_lots, meat=meat)})
+        return munchify({'data': test_tender_data_openua(intervals, number_of_items, number_of_lots, meat)})
     elif mode == 'reporting':
         return munchify({'data': test_tender_data_limited(intervals, 'reporting')})
     elif mode == 'belowThreshold':
-        return munchify({'data': test_tender_data(intervals, number_of_lots=number_of_lots, meat=meat)})
+        return munchify({'data': test_tender_data(intervals, number_of_items=number_of_items, number_of_lots=number_of_lots, meat=meat)})
     raise ValueError("Invalid mode for prepare_test_tender_data")
 
 
diff --git a/op_robot_tests/tests_files/singleItemTenderComplaints.robot b/op_robot_tests/tests_files/singleItemTenderComplaints.robot
index 957baee..1aa773c 100644
--- a/op_robot_tests/tests_files/singleItemTenderComplaints.robot
+++ b/op_robot_tests/tests_files/singleItemTenderComplaints.robot
@@ -7,6 +7,7 @@ Suite Teardown  Test Suite Teardown
 ${mode}         belowThreshold
 @{used_roles}   tender_owner  provider  provider1  viewer
 
+${number_of_items} ${1}
 ${number_of_lots}  ${1}
 ${meat}            ${1}
 
--
libgit2 0.24.0