23 from .variables
import Variables
42 _all_scopes = property
45 return reversed(self.
_scopes_scopes)
48 _scopes_until_suite = property
53 if scope
is self.
_suite_suite:
57 _scopes_until_test = property
62 if scope
is self.
_test_test:
83 self.
_test_test =
None
87 kw = self.
_suite_suite.copy()
105 def replace_list(self, items, replace_until=None, ignore_errors=False):
117 if variables
is None:
118 variables = scope.set_from_file(path, args, overwrite)
120 scope.set_from_file(variables, overwrite=overwrite)
124 scope.set_from_variable_table(variables, overwrite)
128 scope.resolve_delayed()
139 name =
'$' + name[1:]
143 def set_suite(self, name, value, top=False, children=False):
145 self.
_scopes_scopes[1][name] = value
153 if self.
_test_test
is None:
154 raise DataError(
'Cannot set test variable when no test is started.')
170 Variables.__init__(self)
175 for path, args
in settings.variable_files:
177 path =
find_file(path, file_type=
'Variable file')
183 for varstr
in settings.variables:
185 name, value = varstr.split(
':', 1)
187 name, value = varstr,
''
188 self[
'${%s}' % name] = value
191 for name, value
in [(
'${TEMPDIR}',
abspath(tempfile.gettempdir())),
194 (
'${:}', os.pathsep),
195 (
'${\\n}', os.linesep),
201 (
'${OUTPUT_DIR}', settings.output_directory),
202 (
'${OUTPUT_FILE}', settings.output
or 'NONE'),
203 (
'${REPORT_FILE}', settings.report
or 'NONE'),
204 (
'${LOG_FILE}', settings.log
or 'NONE'),
205 (
'${DEBUG_FILE}', settings.debug_file
or 'NONE'),
206 (
'${LOG_LEVEL}', settings.log_level),
207 (
'${PREV_TEST_NAME}',
''),
208 (
'${PREV_TEST_STATUS}',
''),
209 (
'${PREV_TEST_MESSAGE}',
'')]:
236 self.
_test_test =
None
246 for scope
in self.
_scopes_scopes:
251 self.
_suite_suite[name] = value
254 for scope
in reversed(self.
_scopes_scopes):
256 if scope
is self.
_test_test:
260 self.
_scopes_scopes[-1][name] = value
263 for name, value
in self.
_scopes_scopes[-1].items():
264 variables[name] = value
Used when variable does not exist.
Custom dictionary implementation automatically normalizing keys.
def __init__(self, settings)
def _set_built_in_variables(self, settings)
def _set_cli_variables(self, settings)
def set_keyword(self, name, value)
def update(self, variables)
def set_global(self, name, value)
def set_test(self, name, value)
def set_suite(self, name, value)
def replace_scalar(self, items, ignore_errors=False)
def _set_global_suite_or_test(self, scope, name, value)
def __contains__(self, name)
def replace_string(self, string, ignore_errors=False)
def resolve_delayed(self)
def __setitem__(self, name, value)
def set_from_variable_table(self, variables, overwrite=False)
def __getitem__(self, name)
def set_suite(self, name, value, top=False, children=False)
def __init__(self, settings)
def replace_list(self, items, replace_until=None, ignore_errors=False)
def as_dict(self, decoration=True)
def _scopes_until_suite(self)
def set_test(self, name, value)
def set_from_file(self, path, args, overwrite=False)
def set_keyword(self, name, value)
def set_global(self, name, value)
def _scopes_until_test(self)
Represents a set of variables.
def set_from_file(self, path_or_variables, args=None, overwrite=False)
def get_error_details(exclude_robot_traces=EXCLUDE_ROBOT_TRACES)
Returns error message and details of the last occurred exception.
def abspath(path, case_normalize=False)
Replacement for os.path.abspath with some enhancements and bug fixes.
def find_file(path, basedir='.', file_type=None)