Commit 4986f5e86fcdce8b8eaed9b1b57537f94cd00e4b
1 parent
6b5a14d9
Update keywords for loading data from files
In essence:
* Rename `load_initial_data_from` to `load_data_from`
and add a new optional argument `mode`;
* Add early recursive merging of brokers' data and
default values into `load_data_from`;
* Thanks to early merging we no longer need to
touch `Default` in resource files, so the old code
which used to do that was removed. Even more,
`Default` is no longer accessible through `${BROKERS}`.
Showing
2 changed files
with
17 additions
and
14 deletions
| ... | ... | @@ -58,7 +58,7 @@ Set Suite Variable With Default Value |
| 58 | 58 | |
| 59 | 59 | # Load brokers data |
| 60 | 60 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml |
| 61 | - ${BROKERS}= load_initial_data_from ${file_path} | |
| 61 | + ${BROKERS}= load_data_from ${file_path} mode=brokers | |
| 62 | 62 | Log ${BROKERS} |
| 63 | 63 | Set Suite Variable ${BROKERS} |
| 64 | 64 | # List of currently used brokers |
| ... | ... | @@ -66,7 +66,7 @@ Set Suite Variable With Default Value |
| 66 | 66 | |
| 67 | 67 | # Load users data |
| 68 | 68 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml |
| 69 | - ${USERS}= load_initial_data_from ${file_path} | |
| 69 | + ${USERS}= load_data_from ${file_path} | |
| 70 | 70 | Log ${USERS.users} |
| 71 | 71 | Set Suite Variable ${USERS} |
| 72 | 72 | # List of currently used users |
| ... | ... | @@ -132,11 +132,8 @@ Get Broker Property |
| 132 | 132 | ... if that property exists, otherwise, it returns a |
| 133 | 133 | ... default value. |
| 134 | 134 | Run Keyword If '${broker_name}'=='${None}' Fail \${broker_name} is NoneType |
| 135 | - ${status}= Run Keyword And Return Status Should Contain ${BROKERS['${broker_name}']} ${property} | |
| 136 | - Return From Keyword If ${status} ${BROKERS['${broker_name}'].${property}} | |
| 137 | - # If broker doesn't have that property, fall back to default value | |
| 138 | - Should Contain ${BROKERS['Default']} ${property} | |
| 139 | - [return] ${BROKERS['Default'].${property}} | |
| 135 | + Should Contain ${BROKERS['${broker_name}']} ${property} | |
| 136 | + Return From Keyword ${BROKERS['${broker_name}'].${property}} | |
| 140 | 137 | |
| 141 | 138 | |
| 142 | 139 | Get Broker Property By Username |
| ... | ... | @@ -166,7 +163,7 @@ Get Broker Property By Username |
| 166 | 163 | |
| 167 | 164 | Завантажити дані про тендер |
| 168 | 165 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml |
| 169 | - ${ARTIFACT}= load_initial_data_from ${file_path} | |
| 166 | + ${ARTIFACT}= load_data_from ${file_path} | |
| 170 | 167 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' |
| 171 | 168 | ... Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.access_token} |
| 172 | 169 | ${TENDER}= Create Dictionary |
| ... | ... | @@ -177,9 +174,7 @@ Get Broker Property By Username |
| 177 | 174 | |
| 178 | 175 | |
| 179 | 176 | Підготовка даних для створення тендера |
| 180 | - ${custom_intervals}= Get Broker Property By Username ${tender_owner} intervals | |
| 181 | - ${default_intervals}= Get Broker Property Default intervals | |
| 182 | - ${period_intervals}= merge_dicts ${default_intervals} ${custom_intervals} | |
| 177 | + ${period_intervals}= Get Broker Property By Username ${tender_owner} intervals | |
| 183 | 178 | ${tender_data}= prepare_test_tender_data ${period_intervals} ${mode} |
| 184 | 179 | ${TENDER}= Create Dictionary |
| 185 | 180 | Set Global Variable ${TENDER} | ... | ... |
| ... | ... | @@ -142,14 +142,22 @@ def munch_to_object(data, format="yaml"): |
| 142 | 142 | return data.toYAML(allow_unicode=True, default_flow_style=False) |
| 143 | 143 | |
| 144 | 144 | |
| 145 | -def load_initial_data_from(file_name): | |
| 145 | +def load_data_from(file_name, mode=None): | |
| 146 | 146 | if not os.path.exists(file_name): |
| 147 | 147 | file_name = os.path.join(os.path.dirname(__file__), 'data', file_name) |
| 148 | 148 | with open(file_name) as file_obj: |
| 149 | 149 | if file_name.endswith(".json"): |
| 150 | - return Munch.fromDict(load(file_obj)) | |
| 150 | + file_data = Munch.fromDict(load(file_obj)) | |
| 151 | 151 | elif file_name.endswith(".yaml"): |
| 152 | - return fromYAML(file_obj) | |
| 152 | + file_data = fromYAML(file_obj) | |
| 153 | + if mode == "brokers": | |
| 154 | + default = file_data.pop('Default') | |
| 155 | + brokers = {} | |
| 156 | + for k, v in file_data.iteritems(): | |
| 157 | + brokers[k] = merge_dicts(default, v) | |
| 158 | + return brokers | |
| 159 | + else: | |
| 160 | + return file_data | |
| 153 | 161 | |
| 154 | 162 | |
| 155 | 163 | def prepare_test_tender_data(procedure_intervals, mode): | ... | ... |
Please
register
or
login
to post a comment