robot.running.builder package

Submodules

robot.running.builder.builders module

class robot.running.builder.builders.TestSuiteBuilder(included_suites: str = 'DEPRECATED', included_extensions: Sequence[str] = ('.robot', '.rbt', '.robot.rst'), included_files: Sequence[str] = (), custom_parsers: Sequence[str] = (), defaults: robot.running.builder.settings.TestDefaults | None[robot.running.builder.settings.TestDefaults, None] = None, rpa: bool | None[bool, None] = None, lang: Union[Languages, Language, str, pathlib.Path, Iterable[Union[Language, str, pathlib.Path]], None] = None, allow_empty_suite: bool = False, process_curdir: bool = True)[source]

Bases: object

Builder to construct TestSuite objects based on data on the disk.

The build() method constructs executable TestSuite objects based on test data files or directories. There are two main use cases for this API:

  • Execute the created suite by using its run() method. The suite can be modified before execution if needed.
  • Inspect the suite to see, for example, what tests it has or what tags tests have. This can be more convenient than using the lower level parsing APIs.

Both modifying the suite and inspecting what data it contains are easiest done by using the visitor interface.

This class is part of the public API and should be imported via the robot.api package. An alternative is using the TestSuite.from_file_system classmethod that uses this class internally.

Parameters:
  • included_suites – This argument used to be used for limiting what suite file to parse. It is deprecated and has no effect starting from RF 6.1. Use the new included_files argument or filter the created suite after parsing instead.
  • included_extensions – List of extensions of files to parse. Same as --extension.
  • included_files – List of names, paths or directory paths of files to parse. All files are parsed by default. Same as –parse-include. New in RF 6.1.
  • custom_parsers – Custom parsers as names or paths (same as --parser) or as parser objects. New in RF 6.1.
  • defaults – Possible test specific defaults from suite initialization files. New in RF 6.1.
  • rpa – Explicit execution mode. True for RPA and False for test automation. By default, mode is got from data file headers and possible conflicting headers cause an error. Same as --rpa or --norpa.
  • lang – Additional languages to be supported during parsing. Can be a string matching any of the supported language codes or names, an initialized Language subclass, a list containing such strings or instances, or a Languages instance.
  • allow_empty_suite – Specify is it an error if the built suite contains no tests. Same as --runemptysuite.
  • process_curdir – Control processing the special ${CURDIR} variable. It is resolved already at parsing time by default, but that can be changed by giving this argument False value.
build(*paths) → robot.running.model.TestSuite[source]
Parameters:paths – Paths to test data files or directories.
Returns:TestSuite instance.
class robot.running.builder.builders.SuiteStructureParser(parsers: dict, defaults: robot.running.builder.settings.TestDefaults | None[robot.running.builder.settings.TestDefaults, None] = None, rpa: bool | None[bool, None] = None)[source]

Bases: robot.parsing.suitestructure.SuiteStructureVisitor

parent_defaults
parse(structure: robot.parsing.suitestructure.SuiteStructure) → robot.running.model.TestSuite[source]
visit_file(structure: robot.parsing.suitestructure.SuiteFile)[source]
start_directory(structure: robot.parsing.suitestructure.SuiteDirectory)[source]
end_directory(structure: robot.parsing.suitestructure.SuiteDirectory)[source]
visit_directory(structure: robot.parsing.suitestructure.SuiteDirectory)
class robot.running.builder.builders.ResourceFileBuilder(lang: Union[Languages, Language, str, pathlib.Path, Iterable[Union[Language, str, pathlib.Path]], None] = None, process_curdir: bool = True)[source]

Bases: object

build(source: pathlib.Path) → robot.running.model.ResourceFile[source]

robot.running.builder.parsers module

class robot.running.builder.parsers.Parser[source]

Bases: abc.ABC

name
parse_suite_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_init_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_resource_file(source: pathlib.Path) → robot.running.model.ResourceFile[source]
class robot.running.builder.parsers.RobotParser(lang: Union[Languages, Language, str, pathlib.Path, Iterable[Union[Language, str, pathlib.Path]], None] = None, process_curdir: bool = True)[source]

Bases: robot.running.builder.parsers.Parser

extensions = ()
parse_suite_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_init_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_model(model: robot.parsing.model.blocks.File, defaults: robot.running.builder.settings.TestDefaults | None[robot.running.builder.settings.TestDefaults, None] = None) → robot.running.model.TestSuite[source]
parse_resource_file(source: pathlib.Path) → robot.running.model.ResourceFile[source]
name
class robot.running.builder.parsers.RestParser(lang: Union[Languages, Language, str, pathlib.Path, Iterable[Union[Language, str, pathlib.Path]], None] = None, process_curdir: bool = True)[source]

Bases: robot.running.builder.parsers.RobotParser

extensions = ('.robot.rst', '.rst', '.rest')
name
parse_init_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite
parse_model(model: robot.parsing.model.blocks.File, defaults: robot.running.builder.settings.TestDefaults | None[robot.running.builder.settings.TestDefaults, None] = None) → robot.running.model.TestSuite
parse_resource_file(source: pathlib.Path) → robot.running.model.ResourceFile
parse_suite_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite
class robot.running.builder.parsers.JsonParser[source]

Bases: robot.running.builder.parsers.Parser

parse_suite_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_init_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_resource_file(source: pathlib.Path) → robot.running.model.ResourceFile[source]
name
class robot.running.builder.parsers.NoInitFileDirectoryParser[source]

Bases: robot.running.builder.parsers.Parser

parse_init_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
name
parse_resource_file(source: pathlib.Path) → robot.running.model.ResourceFile
parse_suite_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite
class robot.running.builder.parsers.CustomParser(parser)[source]

Bases: robot.running.builder.parsers.Parser

name
extensions
parse_suite_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_init_file(source: pathlib.Path, defaults: robot.running.builder.settings.TestDefaults) → robot.running.model.TestSuite[source]
parse_resource_file(source: pathlib.Path) → robot.running.model.ResourceFile

robot.running.builder.settings module

class robot.running.builder.settings.OptionalItems[source]

Bases: dict

clear() → None. Remove all items from D.
copy() → a shallow copy of D
fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

items() → a set-like object providing a view on D's items
keys() → a set-like object providing a view on D's keys
pop(k[, d]) → v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values
class robot.running.builder.settings.FixtureDict[source]

Bases: dict

Dictionary containing setup or teardown info.

args and lineno are optional.

clear() → None. Remove all items from D.
copy() → a shallow copy of D
fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

items() → a set-like object providing a view on D's items
keys() → a set-like object providing a view on D's keys
pop(k[, d]) → v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values
class robot.running.builder.settings.TestDefaults(parent: robot.running.builder.settings.TestDefaults | None[robot.running.builder.settings.TestDefaults, None] = None, setup: robot.running.builder.settings.FixtureDict | None[robot.running.builder.settings.FixtureDict, None] = None, teardown: robot.running.builder.settings.FixtureDict | None[robot.running.builder.settings.FixtureDict, None] = None, tags: collections.abc.Sequence[str] = (), timeout: str | None[str, None] = None)[source]

Bases: object

Represents default values for test related settings set in init files.

Parsers parsing suite files can read defaults and parsers parsing init files can set them. The easiest way to set defaults to a test is using the set_to() method.

This class is part of the public parser API. When implementing parse or parse_init method so that they accept two arguments, the second is an instance of this class. If the class is needed as a type hint, it can be imported via robot.running or robot.api.interfaces.

setup

Default setup as a Keyword object or None when not set.

Can be set also using a dictionary.

teardown

Default teardown as a Keyword object or None when not set.

Can be set also using a dictionary.

tags

Default tags. Can be set also as a sequence.

timeout

Default timeout.

set_to(test: robot.running.model.TestCase)[source]

Sets defaults to the given test.

Tags are always added to the test. Setup, teardown and timeout are set only if the test does not have them set initially.

class robot.running.builder.settings.FileSettings(test_defaults: robot.running.builder.settings.TestDefaults | None[robot.running.builder.settings.TestDefaults, None] = None)[source]

Bases: object

test_setup
test_teardown
test_tags
test_timeout
test_template
default_tags
keyword_tags
class robot.running.builder.settings.InitFileSettings(test_defaults: robot.running.builder.settings.TestDefaults | None[robot.running.builder.settings.TestDefaults, None] = None)[source]

Bases: robot.running.builder.settings.FileSettings

default_tags
keyword_tags
test_template
test_setup
test_teardown
test_tags
test_timeout

robot.running.builder.transformers module

class robot.running.builder.transformers.SettingsBuilder(suite: robot.running.model.TestSuite, settings: robot.running.builder.settings.FileSettings)[source]

Bases: ast.NodeVisitor

visit_Documentation(node)[source]
visit_Metadata(node)[source]
visit_SuiteName(node)[source]
visit_SuiteSetup(node)[source]
visit_SuiteTeardown(node)[source]
visit_TestSetup(node)[source]
visit_TestTeardown(node)[source]
visit_TestTimeout(node)[source]
visit_DefaultTags(node)[source]
visit_ForceTags(node)[source]
visit_KeywordTags(node)[source]
visit_TestTemplate(node)[source]
visit_LibraryImport(node)[source]
visit_ResourceImport(node)[source]
visit_VariablesImport(node)[source]
visit_VariableSection(node)[source]
visit_TestCaseSection(node)[source]
visit_KeywordSection(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.SuiteBuilder(suite: robot.running.model.TestSuite, settings: robot.running.builder.settings.FileSettings)[source]

Bases: ast.NodeVisitor

build(model: robot.parsing.model.blocks.File)[source]
visit_SettingSection(node)[source]
visit_Variable(node)[source]
visit_TestCaseSection(node)[source]
visit_TestCase(node)[source]
visit_Keyword(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.ResourceBuilder(resource: robot.running.model.ResourceFile)[source]

Bases: ast.NodeVisitor

build(model: robot.parsing.model.blocks.File)[source]
visit_Documentation(node)[source]
visit_KeywordTags(node)[source]
visit_LibraryImport(node)[source]
visit_ResourceImport(node)[source]
visit_VariablesImport(node)[source]
visit_Variable(node)[source]
visit_Keyword(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.TestCaseBuilder(suite: robot.running.model.TestSuite, settings: robot.running.builder.settings.FileSettings)[source]

Bases: ast.NodeVisitor

visit_TestCase(node)[source]
visit_For(node)[source]
visit_While(node)[source]
visit_If(node)[source]
visit_Try(node)[source]
visit_TemplateArguments(node)[source]
visit_Documentation(node)[source]
visit_Setup(node)[source]
visit_Teardown(node)[source]
visit_Timeout(node)[source]
visit_Tags(node)[source]
visit_Template(node)[source]
visit_KeywordCall(node)[source]
visit_ReturnStatement(node)[source]
visit_Continue(node)[source]
visit_Break(node)[source]
visit_Error(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.KeywordBuilder(resource: robot.running.model.ResourceFile, settings: robot.running.builder.settings.FileSettings)[source]

Bases: ast.NodeVisitor

visit_Keyword(node)[source]
visit_Documentation(node)[source]
visit_Arguments(node)[source]
visit_Tags(node)[source]
visit_Return(node)[source]
visit_Timeout(node)[source]
visit_Teardown(node)[source]
visit_KeywordCall(node)[source]
visit_ReturnStatement(node)[source]
visit_Continue(node)[source]
visit_Break(node)[source]
visit_For(node)[source]
visit_While(node)[source]
visit_If(node)[source]
visit_Try(node)[source]
visit_Error(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.ForBuilder(parent)[source]

Bases: ast.NodeVisitor

build(node)[source]
visit_KeywordCall(node)[source]
visit_TemplateArguments(node)[source]
visit_For(node)[source]
visit_While(node)[source]
visit_If(node)[source]
visit_Try(node)[source]
visit_ReturnStatement(node)[source]
visit_Continue(node)[source]
visit_Break(node)[source]
visit_Error(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.IfBuilder(parent)[source]

Bases: ast.NodeVisitor

build(node)[source]
visit_KeywordCall(node)[source]
visit_TemplateArguments(node)[source]
visit_For(node)[source]
visit_While(node)[source]
visit_If(node)[source]
visit_Try(node)[source]
visit_ReturnStatement(node)[source]
visit_Continue(node)[source]
visit_Break(node)[source]
visit_Error(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.TryBuilder(parent)[source]

Bases: ast.NodeVisitor

build(node)[source]
visit_For(node)[source]
visit_While(node)[source]
visit_If(node)[source]
visit_Try(node)[source]
visit_ReturnStatement(node)[source]
visit_Continue(node)[source]
visit_Break(node)[source]
visit_KeywordCall(node)[source]
visit_TemplateArguments(node)[source]
visit_Error(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
class robot.running.builder.transformers.WhileBuilder(parent)[source]

Bases: ast.NodeVisitor

build(node)[source]
visit_KeywordCall(node)[source]
visit_TemplateArguments(node)[source]
visit_For(node)[source]
visit_While(node)[source]
visit_If(node)[source]
visit_Try(node)[source]
visit_ReturnStatement(node)[source]
visit_Break(node)[source]
visit_Continue(node)[source]
visit_Error(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)
robot.running.builder.transformers.format_error(errors)[source]
robot.running.builder.transformers.deprecate_tags_starting_with_hyphen(node, source)[source]
class robot.running.builder.transformers.ErrorReporter(source, raise_on_invalid_header=False)[source]

Bases: ast.NodeVisitor

visit_TestCase(node)[source]
visit_Keyword(node)[source]
visit_SectionHeader(node)[source]
visit_Error(node)[source]
generic_visit(node)

Called if no explicit visitor function exists for a node.

visit(node)

Visit a node.

visit_Constant(node)