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,7 +58,7 @@ Set Suite Variable With Default Value | ||
| 58 | 58 | ||
| 59 | # Load brokers data | 59 | # Load brokers data |
| 60 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml | 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 | Log ${BROKERS} | 62 | Log ${BROKERS} |
| 63 | Set Suite Variable ${BROKERS} | 63 | Set Suite Variable ${BROKERS} |
| 64 | # List of currently used brokers | 64 | # List of currently used brokers |
| @@ -66,7 +66,7 @@ Set Suite Variable With Default Value | @@ -66,7 +66,7 @@ Set Suite Variable With Default Value | ||
| 66 | 66 | ||
| 67 | # Load users data | 67 | # Load users data |
| 68 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml | 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 | Log ${USERS.users} | 70 | Log ${USERS.users} |
| 71 | Set Suite Variable ${USERS} | 71 | Set Suite Variable ${USERS} |
| 72 | # List of currently used users | 72 | # List of currently used users |
| @@ -132,11 +132,8 @@ Get Broker Property | @@ -132,11 +132,8 @@ Get Broker Property | ||
| 132 | ... if that property exists, otherwise, it returns a | 132 | ... if that property exists, otherwise, it returns a |
| 133 | ... default value. | 133 | ... default value. |
| 134 | Run Keyword If '${broker_name}'=='${None}' Fail \${broker_name} is NoneType | 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 | Get Broker Property By Username | 139 | Get Broker Property By Username |
| @@ -166,7 +163,7 @@ Get Broker Property By Username | @@ -166,7 +163,7 @@ Get Broker Property By Username | ||
| 166 | 163 | ||
| 167 | Завантажити дані про тендер | 164 | Завантажити дані про тендер |
| 168 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml | 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 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | 167 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' |
| 171 | ... Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.access_token} | 168 | ... Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.access_token} |
| 172 | ${TENDER}= Create Dictionary | 169 | ${TENDER}= Create Dictionary |
| @@ -177,9 +174,7 @@ Get Broker Property By Username | @@ -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 | ${tender_data}= prepare_test_tender_data ${period_intervals} ${mode} | 178 | ${tender_data}= prepare_test_tender_data ${period_intervals} ${mode} |
| 184 | ${TENDER}= Create Dictionary | 179 | ${TENDER}= Create Dictionary |
| 185 | Set Global Variable ${TENDER} | 180 | Set Global Variable ${TENDER} |
| @@ -142,14 +142,22 @@ def munch_to_object(data, format="yaml"): | @@ -142,14 +142,22 @@ def munch_to_object(data, format="yaml"): | ||
| 142 | return data.toYAML(allow_unicode=True, default_flow_style=False) | 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 | if not os.path.exists(file_name): | 146 | if not os.path.exists(file_name): |
| 147 | file_name = os.path.join(os.path.dirname(__file__), 'data', file_name) | 147 | file_name = os.path.join(os.path.dirname(__file__), 'data', file_name) |
| 148 | with open(file_name) as file_obj: | 148 | with open(file_name) as file_obj: |
| 149 | if file_name.endswith(".json"): | 149 | if file_name.endswith(".json"): |
| 150 | - return Munch.fromDict(load(file_obj)) | 150 | + file_data = Munch.fromDict(load(file_obj)) |
| 151 | elif file_name.endswith(".yaml"): | 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 | def prepare_test_tender_data(procedure_intervals, mode): | 163 | def prepare_test_tender_data(procedure_intervals, mode): |
Please
register
or
login
to post a comment