Best Python code snippet using lisa_python
tablesetter.py
Source:tablesetter.py
...49 def _format_values(self, values):50 return values51 def resolve(self, variables):52 with self._avoid_recursion:53 return self._replace_variables(self._values, variables)54 @property55 @contextmanager56 def _avoid_recursion(self):57 if self._resolving:58 raise DataError('Recursive variable definition.')59 self._resolving = True60 try:61 yield62 finally:63 self._resolving = False64 def _replace_variables(self, value, variables):65 raise NotImplementedError66 def report_error(self, error):67 if self._error_reporter:68 self._error_reporter(unic(error))69class ScalarVariableTableValue(VariableTableValueBase):70 def _format_values(self, values):71 separator = None72 if is_string(values):73 values = [values]74 elif values and values[0].startswith('SEPARATOR='):75 separator = values[0][10:]76 values = values[1:]77 return separator, values78 def _replace_variables(self, values, variables):79 separator, values = values80 # Avoid converting single value to string.81 if self._is_single_value(separator, values):82 return variables.replace_scalar(values[0])83 if separator is None:84 separator = ' '85 separator = variables.replace_string(separator)86 values = variables.replace_list(values)87 return separator.join(unic(item) for item in values)88 def _is_single_value(self, separator, values):89 return (separator is None and len(values) == 1 and90 not is_list_variable(values[0]))91class ListVariableTableValue(VariableTableValueBase):92 def _replace_variables(self, values, variables):93 return variables.replace_list(values)94class DictVariableTableValue(VariableTableValueBase):95 def _format_values(self, values):96 return list(self._yield_formatted(values))97 def _yield_formatted(self, values):98 for item in values:99 if is_dict_variable(item):100 yield item101 else:102 name, value = split_from_equals(item)103 if value is None:104 raise DataError(105 "Invalid dictionary variable item '%s'. "106 "Items must use 'name=value' syntax or be dictionary "107 "variables themselves." % item108 )109 yield name, value110 def _replace_variables(self, values, variables):111 try:112 return DotDict(self._yield_replaced(values,113 variables.replace_scalar))114 except TypeError as err:115 raise DataError('Creating dictionary failed: %s' % err)116 def _yield_replaced(self, values, replace_scalar):117 for item in values:118 if isinstance(item, tuple):119 key, values = item120 yield replace_scalar(key), replace_scalar(values)121 else:122 for key, values in replace_scalar(item).items():...
lift_definition.py
Source:lift_definition.py
...7def resolve_lift_definition(lift_def: str, parameters: dict):8 # Retrive and process lift definition9 lift_definition = fetch_lift_definition(lift_def)10 # Parse the lift definition11 return _replace_variables(lift_definition, parameters)12def fetch_lift_definition(lift_def: str) -> dict:13 """Load yaml string or fetch lift definition from s3."""14 if lift_def.startswith("s3://") or lift_def.startswith("s3a://"):15 lift_def = S3Path(lift_def).read_text()16 return yaml.safe_load(lift_def)17def _replace_variables(var: Union[dict, list, str, int, bool], params: dict):18 """Replace all the variables with the given parameters."""19 if isinstance(var, dict):20 return {key: _replace_variables(value, params) for key, value in var.items()}21 if isinstance(var, list):22 return [_replace_variables(value, params) for value in var]23 if isinstance(var, str):24 # Check if the format is "${myVar}" or "${myVar} + extra string"25 if re.match(r"^\$\{\w+\}$", var):26 # Return the raw param27 return params[var[2:-1]]28 # Use string replacement29 return string.Template(var).substitute(params)30 # Do nothing for int and bool...
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!!