Commit 4e4f59ffdc4951357dedbf3b330da870a2e7d2d3

Authored by selurvedu
2 parents c6648759 15779a26

Merge pull request #500 from selurvedu/submissionMethodDetails

New variable for submissionMethodDetails
1 # -*- coding: utf-8 - 1 # -*- coding: utf-8 -
  2 +import os
  3 +import random
2 from datetime import timedelta 4 from datetime import timedelta
  5 +from tempfile import NamedTemporaryFile
  6 +from uuid import uuid4
3 from faker import Factory 7 from faker import Factory
4 from faker.providers.company.en_US import Provider as CompanyProviderEnUs 8 from faker.providers.company.en_US import Provider as CompanyProviderEnUs
5 from faker.providers.company.ru_RU import Provider as CompanyProviderRuRu 9 from faker.providers.company.ru_RU import Provider as CompanyProviderRuRu
6 from munch import munchify 10 from munch import munchify
7 -from uuid import uuid4  
8 -from tempfile import NamedTemporaryFile  
9 -from .local_time import get_now  
10 from op_faker import OP_Provider 11 from op_faker import OP_Provider
11 -import os  
12 -import random 12 +from .local_time import get_now
13 13
14 14
15 fake_en = Factory.create(locale='en_US') 15 fake_en = Factory.create(locale='en_US')
@@ -56,12 +56,16 @@ def create_fake_doc(): @@ -56,12 +56,16 @@ def create_fake_doc():
56 return tf.name.replace('\\', '\\\\'), os.path.basename(tf.name), content 56 return tf.name.replace('\\', '\\\\'), os.path.basename(tf.name), content
57 57
58 58
59 -def test_tender_data(params, periods=("enquiry", "tender")): 59 +def test_tender_data(params,
  60 + periods=("enquiry", "tender"),
  61 + submissionMethodDetails=None):
  62 + submissionMethodDetails = submissionMethodDetails \
  63 + if submissionMethodDetails else "quick"
60 now = get_now() 64 now = get_now()
61 value_amount = round(random.uniform(3000, 99999999999.99), 2) # max value equals to budget of Ukraine in hryvnias 65 value_amount = round(random.uniform(3000, 99999999999.99), 2) # max value equals to budget of Ukraine in hryvnias
62 data = { 66 data = {
63 "mode": "test", 67 "mode": "test",
64 - "submissionMethodDetails": "quick", 68 + "submissionMethodDetails": submissionMethodDetails,
65 "description": fake.description(), 69 "description": fake.description(),
66 "description_en": fake_en.sentence(nb_words=10, variable_nb_words=True), 70 "description_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
67 "description_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True), 71 "description_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
@@ -116,7 +120,7 @@ def test_tender_data(params, periods=("enquiry", "tender")): @@ -116,7 +120,7 @@ def test_tender_data(params, periods=("enquiry", "tender")):
116 if params.get('lot_meat'): 120 if params.get('lot_meat'):
117 new_feature = test_feature_data() 121 new_feature = test_feature_data()
118 new_feature['featureOf'] = "lot" 122 new_feature['featureOf'] = "lot"
119 - data['lots'][0]['id'] = data['lots'][0].get('id', uuid4().hex) 123 + data['lots'][0]['id'] = data['lots'][0].get('id', uuid4().hex)
120 new_feature['relatedItem'] = data['lots'][0]['id'] 124 new_feature['relatedItem'] = data['lots'][0]['id']
121 data['features'].append(new_feature) 125 data['features'].append(new_feature)
122 else: 126 else:
@@ -130,7 +134,7 @@ def test_tender_data(params, periods=("enquiry", "tender")): @@ -130,7 +134,7 @@ def test_tender_data(params, periods=("enquiry", "tender")):
130 if params.get('item_meat'): 134 if params.get('item_meat'):
131 new_feature = test_feature_data() 135 new_feature = test_feature_data()
132 new_feature['featureOf'] = "item" 136 new_feature['featureOf'] = "item"
133 - data['items'][0]['id'] = data['items'][0].get('id', uuid4().hex) 137 + data['items'][0]['id'] = data['items'][0].get('id', uuid4().hex)
134 new_feature['relatedItem'] = data['items'][0]['id'] 138 new_feature['relatedItem'] = data['items'][0]['id']
135 data['features'].append(new_feature) 139 data['features'].append(new_feature)
136 if not data['features']: 140 if not data['features']:
@@ -315,9 +319,9 @@ def test_item_data(cpv=None): @@ -315,9 +319,9 @@ def test_item_data(cpv=None):
315 data["description_ru"] = field_with_id("i", data["description_ru"]) 319 data["description_ru"] = field_with_id("i", data["description_ru"])
316 days = fake.random_int(min=1, max=30) 320 days = fake.random_int(min=1, max=30)
317 data["deliveryDate"] = { 321 data["deliveryDate"] = {
318 - "startDate":(get_now() + timedelta(days=days)).isoformat(),  
319 - "endDate":(get_now() + timedelta(days=days)).isoformat()  
320 - } 322 + "startDate": (get_now() + timedelta(days=days)).isoformat(),
  323 + "endDate": (get_now() + timedelta(days=days)).isoformat()
  324 + }
321 data["deliveryAddress"]["countryName_en"] = translate_country_en(data["deliveryAddress"]["countryName"]) 325 data["deliveryAddress"]["countryName_en"] = translate_country_en(data["deliveryAddress"]["countryName"])
322 data["deliveryAddress"]["countryName_ru"] = translate_country_ru(data["deliveryAddress"]["countryName"]) 326 data["deliveryAddress"]["countryName_ru"] = translate_country_ru(data["deliveryAddress"]["countryName"])
323 return munchify(data) 327 return munchify(data)
@@ -371,22 +375,21 @@ def test_lot_document_data(document, lot_id): @@ -371,22 +375,21 @@ def test_lot_document_data(document, lot_id):
371 return munchify(document) 375 return munchify(document)
372 376
373 377
374 -  
375 -def test_tender_data_openua(params): 378 +def test_tender_data_openua(params, submissionMethodDetails):
376 # We should not provide any values for `enquiryPeriod` when creating 379 # We should not provide any values for `enquiryPeriod` when creating
377 # an openUA or openEU procedure. That field should not be present at all. 380 # an openUA or openEU procedure. That field should not be present at all.
378 # Therefore, we pass a nondefault list of periods to `test_tender_data()`. 381 # Therefore, we pass a nondefault list of periods to `test_tender_data()`.
379 - data = test_tender_data(params, ('tender',)) 382 + data = test_tender_data(params, ('tender',), submissionMethodDetails)
380 data['procurementMethodType'] = 'aboveThresholdUA' 383 data['procurementMethodType'] = 'aboveThresholdUA'
381 data['procuringEntity']['kind'] = 'general' 384 data['procuringEntity']['kind'] = 'general'
382 return data 385 return data
383 386
384 387
385 -def test_tender_data_openeu(params): 388 +def test_tender_data_openeu(params, submissionMethodDetails):
386 # We should not provide any values for `enquiryPeriod` when creating 389 # We should not provide any values for `enquiryPeriod` when creating
387 # an openUA or openEU procedure. That field should not be present at all. 390 # an openUA or openEU procedure. That field should not be present at all.
388 # Therefore, we pass a nondefault list of periods to `test_tender_data()`. 391 # Therefore, we pass a nondefault list of periods to `test_tender_data()`.
389 - data = test_tender_data(params, ('tender',)) 392 + data = test_tender_data(params, ('tender',), submissionMethodDetails)
390 data['procurementMethodType'] = 'aboveThresholdEU' 393 data['procurementMethodType'] = 'aboveThresholdEU'
391 data['title_en'] = "[TESTING]" 394 data['title_en'] = "[TESTING]"
392 for item_number, item in enumerate(data['items']): 395 for item_number, item in enumerate(data['items']):
@@ -399,11 +402,11 @@ def test_tender_data_openeu(params): @@ -399,11 +402,11 @@ def test_tender_data_openeu(params):
399 return data 402 return data
400 403
401 404
402 -def test_tender_data_competitive_dialogue(params): 405 +def test_tender_data_competitive_dialogue(params, submissionMethodDetails):
403 # We should not provide any values for `enquiryPeriod` when creating 406 # We should not provide any values for `enquiryPeriod` when creating
404 # an openUA or openEU procedure. That field should not be present at all. 407 # an openUA or openEU procedure. That field should not be present at all.
405 # Therefore, we pass a nondefault list of periods to `test_tender_data()`. 408 # Therefore, we pass a nondefault list of periods to `test_tender_data()`.
406 - data = test_tender_data(params, ('tender',)) 409 + data = test_tender_data(params, ('tender',), submissionMethodDetails)
407 if params.get('dialogue_type') == 'UA': 410 if params.get('dialogue_type') == 'UA':
408 data['procurementMethodType'] = 'competitiveDialogueUA' 411 data['procurementMethodType'] = 'competitiveDialogueUA'
409 else: 412 else:
@@ -204,7 +204,8 @@ Get Broker Property By Username @@ -204,7 +204,8 @@ Get Broker Property By Username
204 Підготувати дані для створення тендера 204 Підготувати дані для створення тендера
205 [Arguments] ${tender_parameters} 205 [Arguments] ${tender_parameters}
206 ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers} 206 ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers}
207 - ${tender_data}= prepare_test_tender_data ${period_intervals} ${tender_parameters} 207 + ${submissionMethodDetails}= Get Variable Value ${submissionMethodDetails}
  208 + ${tender_data}= prepare_test_tender_data ${period_intervals} ${tender_parameters} ${submissionMethodDetails}
208 ${TENDER}= Create Dictionary 209 ${TENDER}= Create Dictionary
209 Set Global Variable ${TENDER} 210 Set Global Variable ${TENDER}
210 Log ${tender_data} 211 Log ${tender_data}
@@ -6,7 +6,6 @@ from datetime import timedelta @@ -6,7 +6,6 @@ from datetime import timedelta
6 from dateutil.parser import parse 6 from dateutil.parser import parse
7 from dpath.util import new as xpathnew 7 from dpath.util import new as xpathnew
8 from haversine import haversine 8 from haversine import haversine
9 -from iso8601 import parse_date  
10 from json import load, loads 9 from json import load, loads
11 from jsonpath_rw import parse as parse_path 10 from jsonpath_rw import parse as parse_path
12 from munch import Munch, munchify 11 from munch import Munch, munchify
@@ -275,7 +274,9 @@ def compute_intrs(brokers_data, used_brokers): @@ -275,7 +274,9 @@ def compute_intrs(brokers_data, used_brokers):
275 return result 274 return result
276 275
277 276
278 -def prepare_test_tender_data(procedure_intervals, tender_parameters): 277 +def prepare_test_tender_data(procedure_intervals,
  278 + tender_parameters,
  279 + submissionMethodDetails):
279 # Get actual intervals by mode name 280 # Get actual intervals by mode name
280 mode = tender_parameters['mode'] 281 mode = tender_parameters['mode']
281 if mode in procedure_intervals: 282 if mode in procedure_intervals:
@@ -296,15 +297,22 @@ def prepare_test_tender_data(procedure_intervals, tender_parameters): @@ -296,15 +297,22 @@ def prepare_test_tender_data(procedure_intervals, tender_parameters):
296 elif mode == 'negotiation.quick': 297 elif mode == 'negotiation.quick':
297 return munchify({'data': test_tender_data_limited(tender_parameters)}) 298 return munchify({'data': test_tender_data_limited(tender_parameters)})
298 elif mode == 'openeu': 299 elif mode == 'openeu':
299 - return munchify({'data': test_tender_data_openeu(tender_parameters)}) 300 + return munchify({'data': test_tender_data_openeu(
  301 + tender_parameters, submissionMethodDetails)})
300 elif mode == 'openua': 302 elif mode == 'openua':
301 - return munchify({'data': test_tender_data_openua(tender_parameters)}) 303 + return munchify({'data': test_tender_data_openua(
  304 + tender_parameters, submissionMethodDetails)})
302 elif mode == 'open_competitive_dialogue': 305 elif mode == 'open_competitive_dialogue':
303 - return munchify({'data': test_tender_data_competitive_dialogue(tender_parameters)}) 306 + return munchify({'data': test_tender_data_competitive_dialogue(
  307 + tender_parameters, submissionMethodDetails)})
304 elif mode == 'reporting': 308 elif mode == 'reporting':
305 return munchify({'data': test_tender_data_limited(tender_parameters)}) 309 return munchify({'data': test_tender_data_limited(tender_parameters)})
306 elif mode == 'belowThreshold': 310 elif mode == 'belowThreshold':
307 - return munchify({'data': test_tender_data(tender_parameters)}) 311 + return munchify({'data': test_tender_data(
  312 + tender_parameters,
  313 + submissionMethodDetails=submissionMethodDetails)})
  314 + # The previous line needs an explicit keyword argument because,
  315 + # unlike previous functions, this one has three arguments.
308 raise ValueError("Invalid mode for prepare_test_tender_data") 316 raise ValueError("Invalid mode for prepare_test_tender_data")
309 317
310 318
Please register or login to post a comment