robot.result.model
¶
Module implementing result related model objects.
During test execution these objects are created internally by various runners. At that time they can be inspected and modified by listeners__.
When results are parsed from XML output files after execution to be able to
create logs and reports, these objects are created by the
:func:~.resultbuilder.ExecutionResult
factory method.
At that point they can be inspected and modified by pre-Rebot modifiers
__.
The :func:~.resultbuilder.ExecutionResult
factory method can also be used
by custom scripts and tools. In such usage it is often easiest to inspect and
modify these objects using the :mod:visitor interface <robot.model.visitor>
.
If classes defined here are needed, for example, as type hints, they can
be imported via the :mod:robot.running
module.
__ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#programmatic-modification-of-results
StatusMixin
¶
start_time
property
writable
¶
Execution start time as a datetime
or as a None
if not set.
If start time is not set, it is calculated based :attr:end_time
and :attr:elapsed_time
if possible.
Can be set either directly as a datetime
or as a string in ISO 8601
format.
New in Robot Framework 6.1. Heavily enhanced in Robot Framework 7.0.
end_time
property
writable
¶
Execution end time as a datetime
or as a None
if not set.
If end time is not set, it is calculated based :attr:start_time
and :attr:elapsed_time
if possible.
Can be set either directly as a datetime
or as a string in ISO 8601
format.
New in Robot Framework 6.1. Heavily enhanced in Robot Framework 7.0.
elapsed_time
property
writable
¶
Total execution time as a timedelta
.
If not set, calculated based on :attr:start_time
and :attr:end_time
if possible. If that fails, calculated based on the elapsed time of
child items.
Can be set either directly as a timedelta
or as an integer or a float
representing seconds.
New in Robot Framework 6.1. Heavily enhanced in Robot Framework 7.0.
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
Var
¶
|
Bases: Var
, StatusMixin
, DeprecatedAttributesMixin
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
not_run
property
writable
¶
True
when :attr:status
is 'NOT RUN', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
from_dict
classmethod
¶
Create this object based on data in a dictionary.
Data can be got from the :meth:to_dict
method or created externally.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
from_json
classmethod
¶
Create this object based on JSON data.
The data is given as the source
parameter. It can be:
- a string (or bytes) containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
The JSON data is first converted to a Python dictionary and the object
created using the :meth:from_dict
method.
Notice that the source
is considered to be JSON data if it is
a string and contains {
. If you need to use {
in a file system
path, pass it in as a pathlib.Path
instance.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
id
property
¶
Item id in format like s1-t3-k1
.
See :attr:TestSuite.id <robot.model.testsuite.TestSuite.id>
for
more information.
id
is None
only in these special cases:
- Keyword uses a placeholder for
setup
orteardown
when asetup
orteardown
is not actually used. - With :class:
~robot.model.control.If
and :class:~robot.model.control.Try
instances representing IF/TRY structure roots.
body
¶
Child keywords and messages as a :class:~.Body
object.
Typically empty. Only contains something if running VAR has failed due to a syntax error or listeners have logged messages or executed keywords.
Source code in src/robot/result/model.py
Return
¶
Bases: Return
, StatusMixin
, DeprecatedAttributesMixin
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
not_run
property
writable
¶
True
when :attr:status
is 'NOT RUN', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
from_dict
classmethod
¶
Create this object based on data in a dictionary.
Data can be got from the :meth:to_dict
method or created externally.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
from_json
classmethod
¶
Create this object based on JSON data.
The data is given as the source
parameter. It can be:
- a string (or bytes) containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
The JSON data is first converted to a Python dictionary and the object
created using the :meth:from_dict
method.
Notice that the source
is considered to be JSON data if it is
a string and contains {
. If you need to use {
in a file system
path, pass it in as a pathlib.Path
instance.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
id
property
¶
Item id in format like s1-t3-k1
.
See :attr:TestSuite.id <robot.model.testsuite.TestSuite.id>
for
more information.
id
is None
only in these special cases:
- Keyword uses a placeholder for
setup
orteardown
when asetup
orteardown
is not actually used. - With :class:
~robot.model.control.If
and :class:~robot.model.control.Try
instances representing IF/TRY structure roots.
body
¶
Child keywords and messages as a :class:~.Body
object.
Typically empty. Only contains something if running RETURN has failed due to a syntax error or listeners have logged messages or executed keywords.
Source code in src/robot/result/model.py
Continue
¶
Bases: Continue
, StatusMixin
, DeprecatedAttributesMixin
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
not_run
property
writable
¶
True
when :attr:status
is 'NOT RUN', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
from_dict
classmethod
¶
Create this object based on data in a dictionary.
Data can be got from the :meth:to_dict
method or created externally.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
from_json
classmethod
¶
Create this object based on JSON data.
The data is given as the source
parameter. It can be:
- a string (or bytes) containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
The JSON data is first converted to a Python dictionary and the object
created using the :meth:from_dict
method.
Notice that the source
is considered to be JSON data if it is
a string and contains {
. If you need to use {
in a file system
path, pass it in as a pathlib.Path
instance.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
id
property
¶
Item id in format like s1-t3-k1
.
See :attr:TestSuite.id <robot.model.testsuite.TestSuite.id>
for
more information.
id
is None
only in these special cases:
- Keyword uses a placeholder for
setup
orteardown
when asetup
orteardown
is not actually used. - With :class:
~robot.model.control.If
and :class:~robot.model.control.Try
instances representing IF/TRY structure roots.
body
¶
Child keywords and messages as a :class:~.Body
object.
Typically empty. Only contains something if running CONTINUE has failed due to a syntax error or listeners have logged messages or executed keywords.
Source code in src/robot/result/model.py
Break
¶
Bases: Break
, StatusMixin
, DeprecatedAttributesMixin
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
not_run
property
writable
¶
True
when :attr:status
is 'NOT RUN', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
from_dict
classmethod
¶
Create this object based on data in a dictionary.
Data can be got from the :meth:to_dict
method or created externally.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
from_json
classmethod
¶
Create this object based on JSON data.
The data is given as the source
parameter. It can be:
- a string (or bytes) containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
The JSON data is first converted to a Python dictionary and the object
created using the :meth:from_dict
method.
Notice that the source
is considered to be JSON data if it is
a string and contains {
. If you need to use {
in a file system
path, pass it in as a pathlib.Path
instance.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
id
property
¶
Item id in format like s1-t3-k1
.
See :attr:TestSuite.id <robot.model.testsuite.TestSuite.id>
for
more information.
id
is None
only in these special cases:
- Keyword uses a placeholder for
setup
orteardown
when asetup
orteardown
is not actually used. - With :class:
~robot.model.control.If
and :class:~robot.model.control.Try
instances representing IF/TRY structure roots.
body
¶
Child keywords and messages as a :class:~.Body
object.
Typically empty. Only contains something if running BREAK has failed due to a syntax error or listeners have logged messages or executed keywords.
Source code in src/robot/result/model.py
Error
¶
Bases: Error
, StatusMixin
, DeprecatedAttributesMixin
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
not_run
property
writable
¶
True
when :attr:status
is 'NOT RUN', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
from_dict
classmethod
¶
Create this object based on data in a dictionary.
Data can be got from the :meth:to_dict
method or created externally.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
from_json
classmethod
¶
Create this object based on JSON data.
The data is given as the source
parameter. It can be:
- a string (or bytes) containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
The JSON data is first converted to a Python dictionary and the object
created using the :meth:from_dict
method.
Notice that the source
is considered to be JSON data if it is
a string and contains {
. If you need to use {
in a file system
path, pass it in as a pathlib.Path
instance.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
id
property
¶
Item id in format like s1-t3-k1
.
See :attr:TestSuite.id <robot.model.testsuite.TestSuite.id>
for
more information.
id
is None
only in these special cases:
- Keyword uses a placeholder for
setup
orteardown
when asetup
orteardown
is not actually used. - With :class:
~robot.model.control.If
and :class:~robot.model.control.Try
instances representing IF/TRY structure roots.
body
¶
Messages as a :class:~.Body
object.
Typically contains the message that caused the error.
Keyword
¶
|
Bases: Keyword
, StatusMixin
Represents an executed library or user keyword.
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
not_run
property
writable
¶
True
when :attr:status
is 'NOT RUN', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
from_dict
classmethod
¶
Create this object based on data in a dictionary.
Data can be got from the :meth:to_dict
method or created externally.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
from_json
classmethod
¶
Create this object based on JSON data.
The data is given as the source
parameter. It can be:
- a string (or bytes) containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
The JSON data is first converted to a Python dictionary and the object
created using the :meth:from_dict
method.
Notice that the source
is considered to be JSON data if it is
a string and contains {
. If you need to use {
in a file system
path, pass it in as a pathlib.Path
instance.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
visit
¶
|
body
¶
Possible keyword body as a :class:~.Body
object.
Body can consist of child keywords, messages, and control structures such as IF/ELSE. Library keywords typically have an empty body.
Source code in src/robot/result/model.py
messages
property
¶
Keyword's messages.
Starting from Robot Framework 4.0 this is a list generated from messages
in :attr:body
.
full_name
property
¶
Keyword name in format owner.name
.
Just name
if :attr:owner
is not set. In practice this is the
case only with user keywords in the suite file.
Cannot be set directly. Set :attr:name
and :attr:owner
separately
instead.
Notice that prior to Robot Framework 7.0, the name
attribute contained
the full name and keyword and owner names were in kwname
and libname
,
respectively.
kwname
property
writable
¶
Deprecated since Robot Framework 7.0. Use :attr:name
instead.
libname
property
writable
¶
Deprecated since Robot Framework 7.0. Use :attr:owner
instead.
sourcename
property
writable
¶
Deprecated since Robot Framework 7.0. Use :attr:source_name
instead.
setup
property
writable
¶
Keyword setup as a :class:Keyword
object.
See :attr:teardown
for more information. New in Robot Framework 7.0.
has_setup
property
¶
Check does a keyword have a setup without creating a setup object.
See :attr:has_teardown
for more information. New in Robot Framework 7.0.
teardown
property
writable
¶
Keyword teardown as a :class:Keyword
object.
Teardown can be modified by setting attributes directly::
1 2 |
|
Alternatively the :meth:config
method can be used to set multiple
attributes in one call::
1 |
|
The easiest way to reset the whole teardown is setting it to None
.
It will automatically recreate the underlying Keyword
object::
1 |
|
This attribute is a Keyword
object also when a keyword has no teardown
but in that case its truth value is False
. If there is a need to just
check does a keyword have a teardown, using the :attr:has_teardown
attribute avoids creating the Keyword
object and is thus more memory
efficient.
New in Robot Framework 4.0. Earlier teardown was accessed like
keyword.keywords.teardown
. :attr:has_teardown
is new in Robot
Framework 4.1.2.
has_teardown
property
¶
Check does a keyword have a teardown without creating a teardown object.
A difference between using if kw.has_teardown:
and if kw.teardown:
is that accessing the :attr:teardown
attribute creates a :class:Keyword
object representing a teardown even when the keyword actually does not
have one. This typically does not matter, but with bigger suite structures
having lots of keywords it can have a considerable effect on memory usage.
New in Robot Framework 4.1.2.
TestCase
¶
|
Bases: TestCase[Keyword]
, StatusMixin
Represents results of a single test case.
See the base class for documentation of attributes not documented here.
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
skipped
property
writable
¶
True
when :attr:status
is 'SKIP', False
otherwise.
Setting to False
value is ambiguous and raises an exception.
from_dict
classmethod
¶
Create this object based on data in a dictionary.
Data can be got from the :meth:to_dict
method or created externally.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
from_json
classmethod
¶
Create this object based on JSON data.
The data is given as the source
parameter. It can be:
- a string (or bytes) containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
The JSON data is first converted to a Python dictionary and the object
created using the :meth:from_dict
method.
Notice that the source
is considered to be JSON data if it is
a string and contains {
. If you need to use {
in a file system
path, pass it in as a pathlib.Path
instance.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
Source code in src/robot/model/modelobject.py
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
tags
¶
setup
property
writable
¶
Test setup as a :class:~.model.keyword.Keyword
object.
This attribute is a Keyword
object also when a test has no setup
but in that case its truth value is False
.
Setup can be modified by setting attributes directly::
1 2 |
|
Alternatively the :meth:config
method can be used to set multiple
attributes in one call::
1 |
|
The easiest way to reset the whole setup is setting it to None
.
It will automatically recreate the underlying Keyword
object::
1 |
|
New in Robot Framework 4.0. Earlier setup was accessed like
test.keywords.setup
.
has_setup
property
¶
Check does a suite have a setup without creating a setup object.
A difference between using if test.has_setup:
and if test.setup:
is that accessing the :attr:setup
attribute creates a :class:Keyword
object representing the setup even when the test actually does not have
one. This typically does not matter, but with bigger suite structures
containing a huge about of tests it can have an effect on memory usage.
New in Robot Framework 5.0.
teardown
property
writable
¶
Test teardown as a :class:~.model.keyword.Keyword
object.
See :attr:setup
for more information.
has_teardown
property
¶
Check does a test have a teardown without creating a teardown object.
See :attr:has_setup
for more information.
New in Robot Framework 5.0.
id
property
¶
Test case id in format like s1-t3
.
See :attr:TestSuite.id <robot.model.testsuite.TestSuite.id>
for
more information.
longname
property
¶
Deprecated since Robot Framework 7.0. Use :attr:full_name
instead.
visit
¶
|
body
¶
TestSuite
¶
|
Bases: TestSuite[Keyword, TestCase]
, StatusMixin
Represents results of a single test suite.
See the base class for documentation of attributes not documented here.
Source code in src/robot/result/model.py
starttime
property
writable
¶
Execution start time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:start_time
should be used instead.
endtime
property
writable
¶
Execution end time as a string or as a None
if not set.
The string format is %Y%m%d %H:%M:%S.%f
.
Considered deprecated starting from Robot Framework 7.0.
:attr:end_time
should be used instead.
elapsedtime
property
¶
Total execution time in milliseconds.
Considered deprecated starting from Robot Framework 7.0.
:attr:elapsed_time
should be used instead.
to_json
¶
Serialize this object into JSON.
The object is first converted to a Python dictionary using the
:meth:to_dict
method and then the dictionary is converted to JSON.
The file
parameter controls what to do with the resulting JSON data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
JSON formatting can be configured using optional parameters that
are passed directly to the underlying json__ module. Notice that
the defaults differ from what json
uses.
With robot.running
model objects new in Robot Framework 6.1,
with robot.result
new in Robot Framework 7.0.
__ https://docs.python.org/3/library/json.html
Source code in src/robot/model/modelobject.py
config
¶
Configure model object with given attributes.
obj.config(name='Example', doc='Something')
is equivalent to setting
obj.name = 'Example'
and obj.doc = 'Something'
.
New in Robot Framework 4.0.
Source code in src/robot/model/modelobject.py
copy
¶
Return a shallow copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.copy(name='New name')
.
See also :meth:deepcopy
. The difference between copy
and
deepcopy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
deepcopy
¶
Return a deep copy of this object.
:param attributes: Attributes to be set to the returned copy.
For example, obj.deepcopy(name='New name')
.
See also :meth:copy
. The difference between deepcopy
and
copy
is the same as with the methods having same names in
the copy__ module.
__ https://docs.python.org/3/library/copy.html
Source code in src/robot/model/modelobject.py
metadata
¶
name_from_source
staticmethod
¶
Create suite name based on the given source
.
This method is used by Robot Framework itself when it builds suites.
External parsers and other tools that want to produce suites with
names matching names created by Robot Framework can use this method as
well. This method is also used if :attr:name
is not set and someone
accesses it.
The algorithm is as follows:
- If the source is
None
or empty, return an empty string. - Get the base name of the source. Read more below.
- Remove possible prefix separated with
__
. - Convert underscores to spaces.
- If the name is all lower case, title case it.
The base name of files is got by calling Path.stem
__ that drops
the file extension. It typically works fine, but gives wrong result
if the extension has multiple parts like in tests.robot.zip
.
That problem can be avoided by giving valid file extension or extensions
as the optional extension
argument.
Examples::
1 2 3 |
|
__ https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.stem
Source code in src/robot/model/testsuite.py
name
property
writable
¶
Suite name.
If name is not set, it is constructed from source. If source is not set,
name is constructed from child suite names by concatenating them with
&
. If there are no child suites, name is an empty string.
adjust_source
¶
Adjust suite source and child suite sources, recursively.
:param relative_to: Make suite source relative to the given path. Calls
pathlib.Path.relative_to()
__ internally. Raises ValueError
if creating a relative path is not possible.
:param root: Make given path a new root directory for the source. Raises
ValueError
if suite source is absolute.
Adjusting the source is especially useful when moving data around as JSON::
1 2 3 4 5 6 7 8 9 10 |
|
New in Robot Framework 6.1.
__ https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.relative_to
Source code in src/robot/model/testsuite.py
full_name
property
¶
Suite name prefixed with the full name of the possible parent suite.
Just :attr:name
of the suite if it has no :attr:parent
.
longname
property
¶
Deprecated since Robot Framework 7.0. Use :attr:full_name
instead.
validate_execution_mode
¶
Validate that suite execution mode is set consistently.
Raise an exception if the execution mode is not set (i.e. the :attr:rpa
attribute is None
) and child suites have conflicting execution modes.
The execution mode is returned. New in RF 6.1.1.
Source code in src/robot/model/testsuite.py
setup
property
writable
¶
Suite setup.
This attribute is a Keyword
object also when a suite has no setup
but in that case its truth value is False
. The preferred way to
check does a suite have a setup is using :attr:has_setup
.
Setup can be modified by setting attributes directly::
1 2 |
|
Alternatively the :meth:config
method can be used to set multiple
attributes in one call::
1 |
|
The easiest way to reset the whole setup is setting it to None
.
It will automatically recreate the underlying Keyword
object::
1 |
|
New in Robot Framework 4.0. Earlier setup was accessed like
suite.keywords.setup
.
has_setup
property
¶
Check does a suite have a setup without creating a setup object.
A difference between using if suite.has_setup:
and if suite.setup:
is that accessing the :attr:setup
attribute creates a :class:Keyword
object representing the setup even when the suite actually does not have
one. This typically does not matter, but with bigger suite structures
it can have some effect on memory usage.
New in Robot Framework 5.0.
has_teardown
property
¶
Check does a suite have a teardown without creating a teardown object.
See :attr:has_setup
for more information.
New in Robot Framework 5.0.
id
property
¶
An automatically generated unique id.
The root suite has id s1
, its child suites have ids s1-s1
,
s1-s2
, ..., their child suites get ids s1-s1-s1
, s1-s1-s2
,
..., s1-s2-s1
, ..., and so on.
The first test in a suite has an id like s1-t1
, the second has an
id s1-t2
, and so on. Similarly, keywords in suites (setup/teardown)
and in tests get ids like s1-k1
, s1-t1-k1
, and s1-s4-t2-k5
.
all_tests
property
¶
Yields all tests this suite and its child suites contain.
New in Robot Framework 6.1.
test_count
property
¶
Total number of the tests in this suite and in its child suites.
set_tags
¶
Add and/or remove specified tags to the tests in this suite.
:param add: Tags to add as a list or, if adding only one,
as a single string.
:param remove: Tags to remove as a list or as a single string.
Can be given as patterns where *
and ?
work as wildcards.
:param persist: Add/remove specified tags also to new tests added
to this suite in the future.
Source code in src/robot/model/testsuite.py
filter
¶
Select test cases and remove others from this suite.
Parameters have the same semantics as --suite
, --test
,
--include
, and --exclude
command line options. All of them
can be given as a list of strings, or when selecting only one, as
a single string.
Child suites that contain no tests after filtering are automatically removed.
Example::
1 2 |
|
Source code in src/robot/model/testsuite.py
remove_empty_suites
¶
Removes all child suites not containing any tests, recursively.
visit
¶
|
status
property
¶
'PASS', 'FAIL' or 'SKIP' depending on test statuses.
- If any test has failed, status is 'FAIL'.
- If no test has failed but at least some test has passed, status is 'PASS'.
- If there are no failed or passed tests, status is 'SKIP'. This covers both the case when all tests have been skipped and when there are no tests.
statistics
property
¶
|
Suite statistics as a :class:~robot.model.totalstatistics.TotalStatistics
object.
Recreated every time this property is accessed, so saving the results to a variable and inspecting it is often a good idea::
1 2 3 4 |
|
remove_keywords
¶
Remove keywords based on the given condition.
:param how: Which approach to use when removing keywords. Either
ALL
, PASSED
, FOR
, WUKS
, or NAME:<pattern>
.
For more information about the possible values see the documentation
of the --removekeywords
command line option.
Source code in src/robot/result/model.py
filter_messages
¶
configure
¶
A shortcut to configure a suite using one method call.
Can only be used with the root test suite.
:param options: Passed to
:class:~robot.result.configurer.SuiteConfigurer
that will then
set suite attributes, call :meth:filter
, etc. as needed.
Example::
1 2 |
|
Not to be confused with :meth:config
method that suites, tests,
and keywords have to make it possible to set multiple attributes in
one call.
Source code in src/robot/result/model.py
handle_suite_teardown_failures
¶
suite_teardown_failed
¶
suite_teardown_skipped
¶
from_dict
classmethod
¶
Create suite based on result data in a dictionary.
data
can either contain only the suite data got, for example, from
the :meth:to_dict
method, or it can contain full result data with
execution errors and other such information in addition to the suite data.
In the latter case only the suite data is used, though.
Support for full result data is new in Robot Framework 7.2.
Source code in src/robot/result/model.py
from_json
classmethod
¶
Create suite based on results in JSON.
The data is given as the source
parameter. It can be:
- a string containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
Supports JSON produced by :meth:to_json
that contains only the suite
information, as well as full result JSON that contains also execution
errors and other information. In the latter case errors and all other
information is silently ignored, though. If that is a problem,
:class:~robot.result.resultbuilder.ExecutionResult
should be used
instead.
Support for full result JSON is new in Robot Framework 7.2.
Source code in src/robot/result/model.py
to_xml
¶
Serialize suite into XML.
The format is the same that is used with normal output.xml files, but
the <robot>
root node is omitted and the result contains only
the <suite>
structure.
The file
parameter controls what to do with the resulting XML data.
It can be:
None
(default) to return the data as a string,- an open file object where to write the data to, or
- a path (
pathlib.Path
or string) to a file where to write the data using UTF-8 encoding.
A serialized suite can be recreated by using the :meth:from_xml
method.
New in Robot Framework 7.0.
Source code in src/robot/result/model.py
from_xml
classmethod
¶
Create suite based on results in XML.
The data is given as the source
parameter. It can be:
- a string containing the data directly,
- an open file object where to read the data from, or
- a path (
pathlib.Path
or string) to a UTF-8 encoded file to read.
Supports both normal output.xml files and files containing only the
<suite>
structure created, for example, with the :meth:to_xml
method. When using normal output.xml files, possible execution errors
listed in <errors>
are silently ignored. If that is a problem,
:class:~robot.result.resultbuilder.ExecutionResult
should be used
instead.
New in Robot Framework 7.0.