Commit 6889683ce138c56e3faeda175bd95ca6225aaad8
1 parent
a5bef35d
Update data preparation code to support openUA
Showing
2 changed files
with
38 additions
and
17 deletions
| ... | ... | @@ -19,7 +19,7 @@ def create_fake_doc(): |
| 19 | 19 | return tf.name |
| 20 | 20 | |
| 21 | 21 | |
| 22 | -def test_tender_data(intervals): | |
| 22 | +def test_tender_data(intervals, periods=("enquiry", "tender")): | |
| 23 | 23 | now = get_now() |
| 24 | 24 | t_data = { |
| 25 | 25 | "title": u"[ТЕСТУВАННЯ] " + fake.catch_phrase(), |
| ... | ... | @@ -104,7 +104,7 @@ def test_tender_data(intervals): |
| 104 | 104 | } |
| 105 | 105 | period_dict = {} |
| 106 | 106 | inc_dt = now |
| 107 | - for period_name in ("enquiry", "tender"): | |
| 107 | + for period_name in periods: | |
| 108 | 108 | period_dict[period_name + "Period"] = {} |
| 109 | 109 | for i, j in zip(range(2), ("start", "end")): |
| 110 | 110 | inc_dt += timedelta(minutes=intervals[period_name][i]) |
| ... | ... | @@ -166,7 +166,6 @@ def test_tender_data_limited(intervals): |
| 166 | 166 | |
| 167 | 167 | |
| 168 | 168 | def test_tender_data_multiple_items(intervals): |
| 169 | - now = get_now() | |
| 170 | 169 | t_data = test_tender_data(intervals) |
| 171 | 170 | for _ in range(4): |
| 172 | 171 | new_item = test_item_data() |
| ... | ... | @@ -581,14 +580,16 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af" |
| 581 | 580 | return munchify({"data": lot_complaint}) |
| 582 | 581 | |
| 583 | 582 | |
| 584 | -def test_tender_data_openua(intervals, accelerator=0): | |
| 585 | - t_data = test_tender_data(intervals) | |
| 586 | - now = get_now() | |
| 583 | +def test_tender_data_openua(intervals): | |
| 584 | + accelerator = intervals['accelerator'] | |
| 585 | + # Since `accelerator` field is not really a list containing timings | |
| 586 | + # for a period called `acceleratorPeriod`, let's remove it :) | |
| 587 | + del intervals['accelerator'] | |
| 588 | + # We should not provide any values for `enquiryPeriod` when creating | |
| 589 | + # an openUA or openEU procedure. That field should not be present at all. | |
| 590 | + # Therefore, we pass a nondefault list of periods to `test_tender_data()`. | |
| 591 | + t_data = test_tender_data(intervals, periods=('tender',)) | |
| 587 | 592 | t_data['procurementMethodType'] = 'aboveThresholdUA' |
| 588 | - t_data['procurementMethodDetails'] = 'quick, accelerator={}'.format(accelerator) | |
| 589 | - t_data["tenderPeriod"] = { | |
| 590 | - "startDate": (now).isoformat(), | |
| 591 | - "endDate": (now + timedelta(minutes=15)).isoformat() | |
| 592 | - } | |
| 593 | - del t_data["enquiryPeriod"] | |
| 593 | + t_data['procurementMethodDetails'] = 'quick, ' \ | |
| 594 | + 'accelerator={}'.format(accelerator) | |
| 594 | 595 | return t_data | ... | ... |
| ... | ... | @@ -107,14 +107,34 @@ def load_initial_data_from(file_name): |
| 107 | 107 | return fromYAML(file_obj) |
| 108 | 108 | |
| 109 | 109 | |
| 110 | -def prepare_test_tender_data(period_intervals, mode): | |
| 110 | +def prepare_test_tender_data(procedure_intervals, mode): | |
| 111 | + # Get actual intervals by mode name | |
| 112 | + if mode in procedure_intervals: | |
| 113 | + intervals = procedure_intervals[mode] | |
| 114 | + else: | |
| 115 | + intervals = procedure_intervals['default'] | |
| 116 | + LOGGER.log_message(Message(intervals)) | |
| 117 | + | |
| 118 | + # Set acceleration value for certain modes | |
| 119 | + if mode in ['openua', 'openeu']: | |
| 120 | + assert isinstance(intervals['accelerator'], int), \ | |
| 121 | + "Accelerator should be an 'int', " \ | |
| 122 | + "not '{}'".format(type(intervals['accelerator']).__name__) | |
| 123 | + assert intervals['accelerator'] >= 0, \ | |
| 124 | + "Accelerator should not be less than 0" | |
| 125 | + else: | |
| 126 | + assert 'accelerator' not in intervals.keys(), \ | |
| 127 | + "Accelerator is not available for mode '{0}'".format(mode) | |
| 128 | + | |
| 111 | 129 | if mode == 'single': |
| 112 | - return munchify({'data': test_tender_data(period_intervals)}) | |
| 130 | + return munchify({'data': test_tender_data(intervals)}) | |
| 113 | 131 | elif mode == 'multi': |
| 114 | - return munchify({'data': test_tender_data_multiple_items(period_intervals)}) | |
| 132 | + return munchify({'data': test_tender_data_multiple_items(intervals)}) | |
| 115 | 133 | elif mode == 'limited': |
| 116 | - return munchify({'data': test_tender_data_limited(period_intervals)}) | |
| 117 | - raise ValueError('Invalid mode for test_tender_data') | |
| 134 | + return munchify({'data': test_tender_data_limited(intervals)}) | |
| 135 | + elif mode == 'openua': | |
| 136 | + return munchify({'data': test_tender_data_openua(intervals)}) | |
| 137 | + raise ValueError("Invalid mode for prepare_test_tender_data") | |
| 118 | 138 | |
| 119 | 139 | |
| 120 | 140 | def run_keyword_and_ignore_keyword_definitions(name, *args): | ... | ... |
Please
register
or
login
to post a comment