Best Python code snippet using tavern
parser.py
Source:parser.py
...190 try:191 # Check if any unreplaced macros192 self._validate_macros_in_txt(pvname)193 except MacroError as e:194 return ReqParseError(self._format_err(195 (self._curr_line_n, self._curr_line), e))196 else:197 pvs.append(pvname)198 elif self._curr_line.startswith('!'):199 # Calling another req file200 split_line = self._curr_line[1:].split(',', maxsplit=1)201 if len(split_line) > 1:202 macro_txt = split_line[1].strip()203 if macro_txt.startswith(('\"', '\'')):204 quote_type = macro_txt[0]205 else:206 return ReqFileFormatError(207 self._format_err(208 (self._curr_line_n, self._curr_line),209 'Syntax error. Macro argument must be quoted'))210 if not macro_txt.endswith(quote_type):211 return ReqFileFormatError(212 self._format_err(213 (self._curr_line_n, self._curr_line),214 'Syntax error. Macro argument must be quoted'))215 macro_txt = SnapshotPv.macros_substitution(216 macro_txt[1:-1], self._macros)217 try:218 # Check for any unreplaced macros219 self._validate_macros_in_txt(macro_txt)220 macros = parse_macros(macro_txt)221 except MacroError as e:222 return ReqParseError(223 self._format_err(224 (self._curr_line_n, self._curr_line), e))225 else:226 macros = {}227 path = os.path.join(228 os.path.dirname(self._path),229 split_line[0])230 msg = self._check_looping(path)231 if msg:232 return ReqFileInfLoopError(233 self._format_err(234 (self._curr_line_n, self._curr_line), msg))235 try:236 sub_f = SnapshotReqFile(237 path, parent=self, macros=macros)238 includes.append(sub_f)239 except OSError as e:240 return OSError(241 self._format_err(242 (self._curr_line, self._curr_line_n), e))243 return (pvs, metadata, includes)244 @staticmethod245 def __normalize_key_values(metadata: dict) -> dict:246 # Ensure backward compatibility - some keys previously were using "-" instead of "_"247 # To further support these keys (e.g. "rgx-filters", "force-labels"248 # we normalize them to "rgx_filters", "force_labels"249 if 'labels' in metadata and 'force-labels' in metadata['labels'].keys():250 metadata['labels']['force_labels'] = metadata['labels'].pop(251 'force-labels')252 if 'filters' in metadata and 'rgx-filters' in metadata['filters'].keys():253 metadata['filters']['rgx_filters'] = metadata['filters'].pop(254 'rgx-filters')255 return metadata256 def _extract_pvs_from_req(self):257 try:258 list_of_pvs = self._file_data.split('\n')259 except Exception as e:260 return ReqParseError(e)261 else:262 return list_of_pvs263 264 def _extract_pvs_from_yaml(self):265 try:266 list_of_pvs = []267 for ioc_name in self._file_data.keys():268 for pv_name in self._file_data[ioc_name]:269 list_of_pvs.append(ioc_name+":"+pv_name)270 return list_of_pvs271 except Exception as e:272 msg = f"{self._path}: Could not parse YML file."273 return JsonParseError(msg)274 def _extract_pvs_from_json(self):275 try:276 list_of_pvs = []277 for ioc_name in self._file_data.keys():278 for pv_name in self._file_data[ioc_name]:279 list_of_pvs.append(ioc_name+":"+pv_name)280 return list_of_pvs281 except Exception as e:282 msg = f"{self._path}: Could not parse Json file."283 return JsonParseError(msg)284 def _format_err(self, line: tuple, msg: str):285 return '{} [line {}: {}]: {}'.format(286 self._trace, line[0], line[1], msg)287 def _validate_macros_in_txt(self, txt: str):288 invalid_macros = []289 macro_rgx = re.compile('\$\(.*?\)') # find all of type $()290 raw_macros = macro_rgx.findall(txt)291 for raw_macro in raw_macros:292 if raw_macro not in self._macros.values(293 ) and raw_macro[2:-1] not in self._c_macros:294 # There are unknown macros which were not substituted295 invalid_macros.append(raw_macro)296 if invalid_macros:297 raise MacroError(298 'Following macros were not defined: {}'.format(...
dict_util.py
Source:dict_util.py
...151 def full_err():152 """Get error in the format:153 a["b"]["c"] = 4, b["b"]["c"] = {'key': 'value'}154 """155 def _format_err(which):156 return "{}{}".format(which, "".join('["{}"]'.format(key) for key in keys))157 e_formatted = _format_err("expected")158 a_formatted = _format_err("actual")159 return "{} = '{}', {} = '{}'".format(e_formatted, expected_val,160 a_formatted, actual_val)161 # Check required because of python 2/3 unicode compatability when loading yaml162 if isinstance(actual_val, ustr):163 actual_type = str164 else:165 actual_type = type(actual_val)166 if expected_val == ANYTHING:167 # Match anything. We could just early exit here but having the debug168 # logging below is useful169 expected_matches = True170 elif isinstance(expected_val, TypeSentinel):171 # If the 'expected' type is actually just a sentinel for another type,172 # then it should match...
analysis.py
Source:analysis.py
...74 else:75 mag = "%d" % round(mag, -order)76 err = "%d" % round(err, -order)77 return "%s%s%s" % (mag, sep, err)78def _format_err(row):79 out = {}80 for var in row.index.levels[0]:81 out[var] = format_mag_err(row[var]["mean"], row[var]["sem"])82 return out83def df_agg_mean(df, group_cols, raw=False):84 """85 Aggregate a dataframe to summarize it with the mean and its error86 Args:87 df (pd.DataFrame): The dataframe.88 group_cols (list of str): Columns used as index for the aggregation.89 raw (bool): If False, the result is a table of strings representing the number with its error. If True,90 the columns will an additional level providing both the mean and its error (sem).91 Returns:92 pd.DataFrame: The summarizing dataframe...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!