Commit 3facf555e072d9d85d4bc44ada0c5c5280ea5820

Authored by Oleksandr Iskryzhytskyi
1 parent 5f3fe40f

- added: changing tender data structure for filling form in more easiest way

... ... @@ -55,9 +55,12 @@ Resource playtender_tende
55 55 [Arguments] ${user} ${tender_data}
56 56 [Documentation] Створити тендер з початковими даними tender_data. Повернути uaid створеного тендера.
57 57
58   - config acceleration for new tender form ${tender_data['data']}
  58 + ${tender_prepared_data} = prepare tender data ${tender_data['data']}
  59 + log ${tender_prepared_data}
  60 +
  61 + config acceleration for new tender form ${tender_prepared_data}
59 62 open new tender form
60   - fill tender form ${tender_data['data']}
  63 + fill tender form ${tender_prepared_data}
61 64 submit form and check result ${plan_form_submit_btn_locator} ${plan_form_submit_success_msg} ${plan_created_checker_element_locator}
62 65 wait until page does not contain element with reloading ${plan_sync_element_locator}
63 66 ${plan_uaid} = get text ${plan_uaid_text_locator}
... ...
... ... @@ -95,3 +95,51 @@ def convert_float_to_string(number):
95 95 def isodate_format(isodate, format):
96 96 iso_dt = parse_date(isodate)
97 97 return iso_dt.strftime(format)
  98 +
  99 +
  100 +# prepares data for filling form in easiest way
  101 +def prepare_tender_data(data):
  102 + # check if data is for multilot
  103 + if 'lots' not in data:
  104 + return data
  105 +
  106 + # moves features to its related items
  107 + if 'features' in data:
  108 + for i, feature in enumerate(data['features']):
  109 + if feature['featureOf'] == 'lot':
  110 + for lot in data['lots']:
  111 + if lot['id'] == feature['relatedItem']:
  112 + if 'features' not in lot:
  113 + lot['features'] = []
  114 + lot['features'].append(data['features'].pop(i))
  115 + if feature['featureOf'] == 'item':
  116 + for item in data['items']:
  117 + if item['id'] == feature['relatedItem']:
  118 + if 'features' not in item:
  119 + item['features'] = []
  120 + item['features'].append(data['features'].pop(i))
  121 +
  122 + if len(data['features']) == 0:
  123 + del data['features']
  124 +
  125 + # moves items to its related lots
  126 + for i, item in enumerate(data['items']):
  127 + for lot in data['lots']:
  128 + if lot['id'] == item['relatedLot']:
  129 + if 'items' not in lot:
  130 + lot['items'] = []
  131 + lot['items'].append(data['items'].pop(i))
  132 +
  133 + del data['items']
  134 +
  135 + # moves milestones to its related lots
  136 + for i, milestone in enumerate(data['milestones']):
  137 + for lot in data['lots']:
  138 + if lot['id'] == milestone['relatedLot']:
  139 + if 'milestones' not in lot:
  140 + lot['milestones'] = []
  141 + lot['milestones'].append(data['milestones'].pop(i))
  142 +
  143 + del data['milestones']
  144 +
  145 + return data
... ...
Please register or login to post a comment