robotframework 7.1.1__zip → 7.2b1__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. {robotframework-7.1.1 → robotframework-7.2b1}/BUILD.rst +2 -2
  2. {robotframework-7.1.1 → robotframework-7.2b1}/PKG-INFO +2 -2
  3. {robotframework-7.1.1 → robotframework-7.2b1}/setup.py +1 -1
  4. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/api/__init__.py +33 -9
  5. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/api/deco.py +8 -6
  6. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/api/interfaces.py +21 -4
  7. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/api/parsing.py +72 -68
  8. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/conf/languages.py +4 -3
  9. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/conf/settings.py +11 -10
  10. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/errors.py +3 -1
  11. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/htmlfilewriter.py +3 -0
  12. robotframework-7.2b1/src/robot/htmldata/libdoc/libdoc.html +408 -0
  13. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/log.html +1 -1
  14. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/report.html +1 -1
  15. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/testdata.js +1 -1
  16. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdoc.py +19 -11
  17. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/htmlwriter.py +7 -4
  18. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/model.py +7 -5
  19. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/writer.py +2 -2
  20. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/BuiltIn.py +109 -32
  21. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/Collections.py +18 -4
  22. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/__init__.py +3 -3
  23. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/body.py +48 -57
  24. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/control.py +35 -4
  25. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/message.py +13 -8
  26. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/modelobject.py +26 -0
  27. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/statistics.py +13 -9
  28. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/stats.py +12 -14
  29. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/suitestatistics.py +8 -9
  30. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/tags.py +10 -0
  31. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/tagstatistics.py +7 -8
  32. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/testcase.py +1 -0
  33. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/testsuite.py +1 -0
  34. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/totalstatistics.py +14 -21
  35. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/visitor.py +29 -3
  36. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/__init__.py +3 -2
  37. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/console/dotted.py +6 -3
  38. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/debugfile.py +3 -3
  39. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/filelogger.py +7 -3
  40. robotframework-7.2b1/src/robot/output/jsonlogger.py +338 -0
  41. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/librarylogger.py +12 -11
  42. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/listeners.py +49 -47
  43. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/logger.py +33 -20
  44. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/loggerapi.py +6 -0
  45. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/loggerhelper.py +26 -55
  46. robotframework-7.2b1/src/robot/output/loglevel.py +54 -0
  47. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/output.py +21 -17
  48. robotframework-7.2b1/src/robot/output/outputfile.py +174 -0
  49. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/pyloggingconf.py +2 -0
  50. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/xmllogger.py +40 -169
  51. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/blocklexers.py +25 -12
  52. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/statementlexers.py +16 -7
  53. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/tokens.py +2 -1
  54. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/model/__init__.py +1 -1
  55. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/model/blocks.py +34 -2
  56. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/model/statements.py +32 -2
  57. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/parser/blockparsers.py +7 -2
  58. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/rebot.py +10 -2
  59. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/jsmodelbuilders.py +1 -1
  60. robotframework-7.2b1/src/robot/reporting/outputwriter.py +30 -0
  61. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/__init__.py +1 -1
  62. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/executionerrors.py +9 -9
  63. robotframework-7.2b1/src/robot/result/executionresult.py +331 -0
  64. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/messagefilter.py +14 -10
  65. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/model.py +90 -18
  66. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/resultbuilder.py +2 -5
  67. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/xmlelementhandlers.py +20 -9
  68. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/run.py +18 -6
  69. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/__init__.py +1 -1
  70. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/embedded.py +7 -6
  71. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/typeconverters.py +14 -2
  72. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/typeinfo.py +22 -2
  73. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/bodyrunner.py +41 -0
  74. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/builder/settings.py +2 -1
  75. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/builder/transformers.py +46 -20
  76. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/context.py +22 -11
  77. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/librarykeyword.py +1 -1
  78. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/librarykeywordrunner.py +29 -23
  79. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/model.py +31 -4
  80. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/status.py +42 -35
  81. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/statusreporter.py +1 -1
  82. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/suiterunner.py +22 -15
  83. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/importer.py +39 -23
  84. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/unic.py +7 -8
  85. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/evaluation.py +21 -2
  86. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/replacer.py +20 -24
  87. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/scopes.py +17 -8
  88. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/variables.py +4 -1
  89. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/version.py +1 -1
  90. {robotframework-7.1.1 → robotframework-7.2b1}/src/robotframework.egg-info/PKG-INFO +2 -2
  91. {robotframework-7.1.1 → robotframework-7.2b1}/src/robotframework.egg-info/SOURCES.txt +3 -4
  92. robotframework-7.1.1/src/robot/htmldata/libdoc/doc_formatting.css +0 -74
  93. robotframework-7.1.1/src/robot/htmldata/libdoc/libdoc.css +0 -747
  94. robotframework-7.1.1/src/robot/htmldata/libdoc/libdoc.html +0 -702
  95. robotframework-7.1.1/src/robot/htmldata/libdoc/print.css +0 -11
  96. robotframework-7.1.1/src/robot/htmldata/libdoc/pygments.css +0 -162
  97. robotframework-7.1.1/src/robot/reporting/outputwriter.py +0 -48
  98. robotframework-7.1.1/src/robot/result/executionresult.py +0 -201
  99. {robotframework-7.1.1 → robotframework-7.2b1}/AUTHORS.rst +0 -0
  100. {robotframework-7.1.1 → robotframework-7.2b1}/CONTRIBUTING.rst +0 -0
  101. {robotframework-7.1.1 → robotframework-7.2b1}/COPYRIGHT.txt +0 -0
  102. {robotframework-7.1.1 → robotframework-7.2b1}/INSTALL.rst +0 -0
  103. {robotframework-7.1.1 → robotframework-7.2b1}/LICENSE.txt +0 -0
  104. {robotframework-7.1.1 → robotframework-7.2b1}/MANIFEST.in +0 -0
  105. {robotframework-7.1.1 → robotframework-7.2b1}/README.rst +0 -0
  106. {robotframework-7.1.1 → robotframework-7.2b1}/setup.cfg +0 -0
  107. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/__init__.py +0 -0
  108. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/__main__.py +0 -0
  109. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/api/exceptions.py +0 -0
  110. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/api/logger.py +0 -0
  111. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/api/py.typed +0 -0
  112. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/conf/__init__.py +0 -0
  113. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/conf/gatherfailed.py +0 -0
  114. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/__init__.py +0 -0
  115. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/common/__init__.py +0 -0
  116. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/common/js_disabled.css +0 -0
  117. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/common/storage.js +0 -0
  118. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/jsonwriter.py +0 -0
  119. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/lib/__init__.py +0 -0
  120. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  121. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/lib/jquery.min.js +0 -0
  122. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  123. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  124. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  125. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/libdoc/__init__.py +0 -0
  126. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/__init__.py +0 -0
  127. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/common.css +0 -0
  128. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
  129. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/fileloading.js +0 -0
  130. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/log.css +0 -0
  131. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/log.js +0 -0
  132. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/model.js +0 -0
  133. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/print.css +0 -0
  134. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/report.css +0 -0
  135. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/util.js +0 -0
  136. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/rebot/view.js +0 -0
  137. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/template.py +0 -0
  138. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/testdoc/__init__.py +0 -0
  139. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  140. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  141. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/__init__.py +0 -0
  142. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/builder.py +0 -0
  143. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/consoleviewer.py +0 -0
  144. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/datatypes.py +0 -0
  145. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/htmlutils.py +0 -0
  146. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/jsonbuilder.py +0 -0
  147. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/jsonwriter.py +0 -0
  148. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/output.py +0 -0
  149. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/robotbuilder.py +0 -0
  150. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/standardtypes.py +0 -0
  151. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/xmlbuilder.py +0 -0
  152. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libdocpkg/xmlwriter.py +0 -0
  153. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/DateTime.py +0 -0
  154. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/Dialogs.py +0 -0
  155. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/Easter.py +0 -0
  156. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/OperatingSystem.py +0 -0
  157. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/Process.py +0 -0
  158. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/Remote.py +0 -0
  159. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/Screenshot.py +0 -0
  160. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/String.py +0 -0
  161. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/Telnet.py +0 -0
  162. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/XML.py +0 -0
  163. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/__init__.py +0 -0
  164. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/libraries/dialogs_py.py +0 -0
  165. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/configurer.py +0 -0
  166. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/filter.py +0 -0
  167. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/fixture.py +0 -0
  168. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/itemlist.py +0 -0
  169. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/keyword.py +0 -0
  170. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/metadata.py +0 -0
  171. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/modifier.py +0 -0
  172. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/namepatterns.py +0 -0
  173. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/model/tagsetter.py +0 -0
  174. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/console/__init__.py +0 -0
  175. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/console/highlighting.py +0 -0
  176. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/console/quiet.py +0 -0
  177. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/console/verbose.py +0 -0
  178. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/output/stdoutlogsplitter.py +0 -0
  179. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/__init__.py +0 -0
  180. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/__init__.py +0 -0
  181. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/context.py +0 -0
  182. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/lexer.py +0 -0
  183. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/settings.py +0 -0
  184. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/lexer/tokenizer.py +0 -0
  185. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/model/visitor.py +0 -0
  186. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/parser/__init__.py +0 -0
  187. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/parser/fileparser.py +0 -0
  188. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/parser/parser.py +0 -0
  189. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/parsing/suitestructure.py +0 -0
  190. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/pythonpathsetter.py +0 -0
  191. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/__init__.py +0 -0
  192. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/expandkeywordmatcher.py +0 -0
  193. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/jsbuildingcontext.py +0 -0
  194. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/jsexecutionresult.py +0 -0
  195. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/jswriter.py +0 -0
  196. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/logreportwriters.py +0 -0
  197. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/resultwriter.py +0 -0
  198. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/stringcache.py +0 -0
  199. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/reporting/xunitwriter.py +0 -0
  200. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/configurer.py +0 -0
  201. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/flattenkeywordmatcher.py +0 -0
  202. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/keywordremover.py +0 -0
  203. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/merger.py +0 -0
  204. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/modeldeprecation.py +0 -0
  205. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/suiteteardownfailed.py +0 -0
  206. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/result/visitor.py +0 -0
  207. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/__init__.py +0 -0
  208. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/argumentconverter.py +0 -0
  209. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/argumentmapper.py +0 -0
  210. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/argumentparser.py +0 -0
  211. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/argumentresolver.py +0 -0
  212. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/argumentspec.py +0 -0
  213. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/argumentvalidator.py +0 -0
  214. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/customconverters.py +0 -0
  215. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/typeinfoparser.py +0 -0
  216. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/arguments/typevalidator.py +0 -0
  217. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/builder/__init__.py +0 -0
  218. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/builder/builders.py +0 -0
  219. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/builder/parsers.py +0 -0
  220. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/dynamicmethods.py +0 -0
  221. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/importer.py +0 -0
  222. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/invalidkeyword.py +0 -0
  223. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/keywordfinder.py +0 -0
  224. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/keywordimplementation.py +0 -0
  225. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/libraryscopes.py +0 -0
  226. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/namespace.py +0 -0
  227. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/outputcapture.py +0 -0
  228. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/randomizer.py +0 -0
  229. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/resourcemodel.py +0 -0
  230. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/runkwregister.py +0 -0
  231. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/signalhandler.py +0 -0
  232. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/testlibraries.py +0 -0
  233. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/timeouts/__init__.py +0 -0
  234. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/timeouts/nosupport.py +0 -0
  235. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/timeouts/posix.py +0 -0
  236. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/timeouts/windows.py +0 -0
  237. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/running/userkeywordrunner.py +0 -0
  238. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/testdoc.py +0 -0
  239. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/__init__.py +0 -0
  240. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/application.py +0 -0
  241. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/argumentparser.py +0 -0
  242. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/asserts.py +0 -0
  243. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/charwidth.py +0 -0
  244. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/compress.py +0 -0
  245. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/connectioncache.py +0 -0
  246. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/dotdict.py +0 -0
  247. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/encoding.py +0 -0
  248. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/encodingsniffer.py +0 -0
  249. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/error.py +0 -0
  250. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/escaping.py +0 -0
  251. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/etreewrapper.py +0 -0
  252. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/filereader.py +0 -0
  253. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/frange.py +0 -0
  254. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/htmlformatters.py +0 -0
  255. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/markuputils.py +0 -0
  256. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/markupwriters.py +0 -0
  257. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/match.py +0 -0
  258. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/misc.py +0 -0
  259. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/normalizing.py +0 -0
  260. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/notset.py +0 -0
  261. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/platform.py +0 -0
  262. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/recommendations.py +0 -0
  263. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/restreader.py +0 -0
  264. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/robotenv.py +0 -0
  265. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/robotinspect.py +0 -0
  266. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/robotio.py +0 -0
  267. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/robotpath.py +0 -0
  268. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/robottime.py +0 -0
  269. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/robottypes.py +0 -0
  270. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/setter.py +0 -0
  271. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/sortable.py +0 -0
  272. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/text.py +0 -0
  273. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/utils/typehints.py +0 -0
  274. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/__init__.py +0 -0
  275. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/assigner.py +0 -0
  276. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/filesetter.py +0 -0
  277. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/finders.py +0 -0
  278. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/notfound.py +0 -0
  279. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/resolvable.py +0 -0
  280. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/search.py +0 -0
  281. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/store.py +0 -0
  282. {robotframework-7.1.1 → robotframework-7.2b1}/src/robot/variables/tablesetter.py +0 -0
  283. {robotframework-7.1.1 → robotframework-7.2b1}/src/robotframework.egg-info/dependency_links.txt +0 -0
  284. {robotframework-7.1.1 → robotframework-7.2b1}/src/robotframework.egg-info/entry_points.txt +0 -0
  285. {robotframework-7.1.1 → robotframework-7.2b1}/src/robotframework.egg-info/top_level.txt +0 -0
  286. {robotframework-7.1.1 → robotframework-7.2b1}/tasks.py +0 -0
@@ -1,11 +0,0 @@
1
- body {
2
- margin: 0;
3
- padding: 0;
4
- font-size: 8pt;
5
- }
6
- a {
7
- text-decoration: none;
8
- }
9
- #search, #open-search {
10
- display: none;
11
- }
@@ -1,162 +0,0 @@
1
- /* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
2
-
3
- pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
4
-
5
- and added for dark mode
6
-
7
- @media (prefers-color-scheme: dark)
8
-
9
- pygmentize -S solarized-dark -f html -a .code > src/robot/htmldata/libdoc/pygments.css
10
-
11
- */
12
- .code .hll { background-color: #ffffcc }
13
- .code { background: #f8f8f8; }
14
- .code .c { color: #408080; font-style: italic } /* Comment */
15
- .code .err { border: 1px solid #FF0000 } /* Error */
16
- .code .k { color: #008000; font-weight: bold } /* Keyword */
17
- .code .o { color: #666666 } /* Operator */
18
- .code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
19
- .code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
20
- .code .cp { color: #BC7A00 } /* Comment.Preproc */
21
- .code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
22
- .code .c1 { color: #408080; font-style: italic } /* Comment.Single */
23
- .code .cs { color: #408080; font-style: italic } /* Comment.Special */
24
- .code .gd { color: #A00000 } /* Generic.Deleted */
25
- .code .ge { font-style: italic } /* Generic.Emph */
26
- .code .gr { color: #FF0000 } /* Generic.Error */
27
- .code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
28
- .code .gi { color: #00A000 } /* Generic.Inserted */
29
- .code .go { color: #888888 } /* Generic.Output */
30
- .code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
31
- .code .gs { font-weight: bold } /* Generic.Strong */
32
- .code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
33
- .code .gt { color: #0044DD } /* Generic.Traceback */
34
- .code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
35
- .code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
36
- .code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
37
- .code .kp { color: #008000 } /* Keyword.Pseudo */
38
- .code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
39
- .code .kt { color: #B00040 } /* Keyword.Type */
40
- .code .m { color: #666666 } /* Literal.Number */
41
- .code .s { color: #BA2121 } /* Literal.String */
42
- .code .na { color: #7D9029 } /* Name.Attribute */
43
- .code .nb { color: #008000 } /* Name.Builtin */
44
- .code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
45
- .code .no { color: #880000 } /* Name.Constant */
46
- .code .nd { color: #AA22FF } /* Name.Decorator */
47
- .code .ni { color: #999999; font-weight: bold } /* Name.Entity */
48
- .code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
49
- .code .nf { color: #0000FF } /* Name.Function */
50
- .code .nl { color: #A0A000 } /* Name.Label */
51
- .code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
52
- .code .nt { color: #008000; font-weight: bold } /* Name.Tag */
53
- .code .nv { color: #19177C } /* Name.Variable */
54
- .code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
55
- .code .w { color: #bbbbbb } /* Text.Whitespace */
56
- .code .mb { color: #666666 } /* Literal.Number.Bin */
57
- .code .mf { color: #666666 } /* Literal.Number.Float */
58
- .code .mh { color: #666666 } /* Literal.Number.Hex */
59
- .code .mi { color: #666666 } /* Literal.Number.Integer */
60
- .code .mo { color: #666666 } /* Literal.Number.Oct */
61
- .code .sa { color: #BA2121 } /* Literal.String.Affix */
62
- .code .sb { color: #BA2121 } /* Literal.String.Backtick */
63
- .code .sc { color: #BA2121 } /* Literal.String.Char */
64
- .code .dl { color: #BA2121 } /* Literal.String.Delimiter */
65
- .code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
66
- .code .s2 { color: #BA2121 } /* Literal.String.Double */
67
- .code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
68
- .code .sh { color: #BA2121 } /* Literal.String.Heredoc */
69
- .code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
70
- .code .sx { color: #008000 } /* Literal.String.Other */
71
- .code .sr { color: #BB6688 } /* Literal.String.Regex */
72
- .code .s1 { color: #BA2121 } /* Literal.String.Single */
73
- .code .ss { color: #19177C } /* Literal.String.Symbol */
74
- .code .bp { color: #008000 } /* Name.Builtin.Pseudo */
75
- .code .fm { color: #0000FF } /* Name.Function.Magic */
76
- .code .vc { color: #19177C } /* Name.Variable.Class */
77
- .code .vg { color: #19177C } /* Name.Variable.Global */
78
- .code .vi { color: #19177C } /* Name.Variable.Instance */
79
- .code .vm { color: #19177C } /* Name.Variable.Magic */
80
- .code .il { color: #666666 } /* Literal.Number.Integer.Long */
81
-
82
-
83
- @media (prefers-color-scheme: dark) {
84
- .code .hll { background-color: #073642 }
85
- .code { background: #002b36; color: #839496 }
86
- .code .c { color: #586e75; font-style: italic } /* Comment */
87
- .code .err { color: #839496; background-color: #dc322f } /* Error */
88
- .code .esc { color: #839496 } /* Escape */
89
- .code .g { color: #839496 } /* Generic */
90
- .code .k { color: #859900 } /* Keyword */
91
- .code .l { color: #839496 } /* Literal */
92
- .code .n { color: #839496 } /* Name */
93
- .code .o { color: #586e75 } /* Operator */
94
- .code .x { color: #839496 } /* Other */
95
- .code .p { color: #839496 } /* Punctuation */
96
- .code .ch { color: #586e75; font-style: italic } /* Comment.Hashbang */
97
- .code .cm { color: #586e75; font-style: italic } /* Comment.Multiline */
98
- .code .cp { color: #d33682 } /* Comment.Preproc */
99
- .code .cpf { color: #586e75 } /* Comment.PreprocFile */
100
- .code .c1 { color: #586e75; font-style: italic } /* Comment.Single */
101
- .code .cs { color: #586e75; font-style: italic } /* Comment.Special */
102
- .code .gd { color: #dc322f } /* Generic.Deleted */
103
- .code .ge { color: #839496; font-style: italic } /* Generic.Emph */
104
- .code .gr { color: #dc322f } /* Generic.Error */
105
- .code .gh { color: #839496; font-weight: bold } /* Generic.Heading */
106
- .code .gi { color: #859900 } /* Generic.Inserted */
107
- .code .go { color: #839496 } /* Generic.Output */
108
- .code .gp { color: #839496 } /* Generic.Prompt */
109
- .code .gs { color: #839496; font-weight: bold } /* Generic.Strong */
110
- .code .gu { color: #839496; text-decoration: underline } /* Generic.Subheading */
111
- .code .gt { color: #268bd2 } /* Generic.Traceback */
112
- .code .kc { color: #2aa198 } /* Keyword.Constant */
113
- .code .kd { color: #2aa198 } /* Keyword.Declaration */
114
- .code .kn { color: #cb4b16 } /* Keyword.Namespace */
115
- .code .kp { color: #859900 } /* Keyword.Pseudo */
116
- .code .kr { color: #859900 } /* Keyword.Reserved */
117
- .code .kt { color: #b58900 } /* Keyword.Type */
118
- .code .ld { color: #839496 } /* Literal.Date */
119
- .code .m { color: #2aa198 } /* Literal.Number */
120
- .code .s { color: #2aa198 } /* Literal.String */
121
- .code .na { color: #839496 } /* Name.Attribute */
122
- .code .nb { color: #268bd2 } /* Name.Builtin */
123
- .code .nc { color: #268bd2 } /* Name.Class */
124
- .code .no { color: #268bd2 } /* Name.Constant */
125
- .code .nd { color: #268bd2 } /* Name.Decorator */
126
- .code .ni { color: #268bd2 } /* Name.Entity */
127
- .code .ne { color: #268bd2 } /* Name.Exception */
128
- .code .nf { color: #268bd2 } /* Name.Function */
129
- .code .nl { color: #268bd2 } /* Name.Label */
130
- .code .nn { color: #268bd2 } /* Name.Namespace */
131
- .code .nx { color: #839496 } /* Name.Other */
132
- .code .py { color: #839496 } /* Name.Property */
133
- .code .nt { color: #268bd2 } /* Name.Tag */
134
- .code .nv { color: #268bd2 } /* Name.Variable */
135
- .code .ow { color: #859900 } /* Operator.Word */
136
- .code .w { color: #839496 } /* Text.Whitespace */
137
- .code .mb { color: #2aa198 } /* Literal.Number.Bin */
138
- .code .mf { color: #2aa198 } /* Literal.Number.Float */
139
- .code .mh { color: #2aa198 } /* Literal.Number.Hex */
140
- .code .mi { color: #2aa198 } /* Literal.Number.Integer */
141
- .code .mo { color: #2aa198 } /* Literal.Number.Oct */
142
- .code .sa { color: #2aa198 } /* Literal.String.Affix */
143
- .code .sb { color: #2aa198 } /* Literal.String.Backtick */
144
- .code .sc { color: #2aa198 } /* Literal.String.Char */
145
- .code .dl { color: #2aa198 } /* Literal.String.Delimiter */
146
- .code .sd { color: #586e75 } /* Literal.String.Doc */
147
- .code .s2 { color: #2aa198 } /* Literal.String.Double */
148
- .code .se { color: #2aa198 } /* Literal.String.Escape */
149
- .code .sh { color: #2aa198 } /* Literal.String.Heredoc */
150
- .code .si { color: #2aa198 } /* Literal.String.Interpol */
151
- .code .sx { color: #2aa198 } /* Literal.String.Other */
152
- .code .sr { color: #cb4b16 } /* Literal.String.Regex */
153
- .code .s1 { color: #2aa198 } /* Literal.String.Single */
154
- .code .ss { color: #2aa198 } /* Literal.String.Symbol */
155
- .code .bp { color: #268bd2 } /* Name.Builtin.Pseudo */
156
- .code .fm { color: #268bd2 } /* Name.Function.Magic */
157
- .code .vc { color: #268bd2 } /* Name.Variable.Class */
158
- .code .vg { color: #268bd2 } /* Name.Variable.Global */
159
- .code .vi { color: #268bd2 } /* Name.Variable.Instance */
160
- .code .vm { color: #268bd2 } /* Name.Variable.Magic */
161
- .code .il { color: #2aa198 } /* Literal.Number.Integer.Long */
162
- }
@@ -1,48 +0,0 @@
1
- # Copyright 2008-2015 Nokia Networks
2
- # Copyright 2016- Robot Framework Foundation
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from robot.output.xmllogger import XmlLogger, LegacyXmlLogger
17
-
18
-
19
- class OutputWriter(XmlLogger):
20
-
21
- def __init__(self, output, rpa=False, suite_only=False):
22
- super().__init__(output, rpa=rpa, generator='Rebot', suite_only=suite_only)
23
-
24
- def start_message(self, msg):
25
- self._write_message(msg)
26
-
27
- def close(self):
28
- self._writer.end('robot')
29
- self._writer.close()
30
-
31
- def end_result(self, result):
32
- self.close()
33
-
34
-
35
- class LegacyOutputWriter(LegacyXmlLogger):
36
-
37
- def __init__(self, output, rpa=False):
38
- super().__init__(output, rpa=rpa, generator='Rebot')
39
-
40
- def start_message(self, msg):
41
- self._write_message(msg)
42
-
43
- def close(self):
44
- self._writer.end('robot')
45
- self._writer.close()
46
-
47
- def end_result(self, result):
48
- self.close()
@@ -1,201 +0,0 @@
1
- # Copyright 2008-2015 Nokia Networks
2
- # Copyright 2016- Robot Framework Foundation
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from pathlib import Path
17
-
18
- from robot.errors import DataError
19
- from robot.model import Statistics
20
-
21
- from .executionerrors import ExecutionErrors
22
- from .model import TestSuite
23
-
24
-
25
- def is_json_source(source):
26
- if isinstance(source, bytes):
27
- # Latin-1 is most likely not the right encoding, but decoding bytes with it
28
- # always succeeds and characters we care about will be correct as well.
29
- source = source.decode('Latin-1')
30
- if isinstance(source, str):
31
- source = source.strip()
32
- first, last = (source[0], source[-1]) if source else ('', '')
33
- if (first, last) == ('{', '}'):
34
- return True
35
- if (first, last) == ('<', '>'):
36
- return False
37
- path = Path(source)
38
- elif isinstance(source, Path):
39
- path = source
40
- elif hasattr(source, 'name') and isinstance(source.name, str):
41
- path = Path(source.name)
42
- else:
43
- return False
44
- return bool(path and path.suffix.lower() == '.json')
45
-
46
-
47
- class Result:
48
- """Test execution results.
49
-
50
- Can be created based on XML output files using the
51
- :func:`~.resultbuilder.ExecutionResult`
52
- factory method. Also returned by the
53
- :meth:`robot.running.TestSuite.run <robot.running.model.TestSuite.run>`
54
- method.
55
- """
56
-
57
- def __init__(self, source=None, root_suite=None, errors=None, rpa=None):
58
- #: Path to the XML file where results are read from.
59
- self.source = source
60
- #: Hierarchical execution results as a
61
- #: :class:`~.result.model.TestSuite` object.
62
- self.suite = root_suite or TestSuite()
63
- #: Execution errors as an
64
- #: :class:`~.executionerrors.ExecutionErrors` object.
65
- self.errors = errors or ExecutionErrors()
66
- self.generated_by_robot = True
67
- self.generation_time = None
68
- self._status_rc = True
69
- self._stat_config = {}
70
- self.rpa = rpa
71
-
72
- @property
73
- def statistics(self):
74
- """Test execution statistics.
75
-
76
- Statistics are an instance of
77
- :class:`~robot.model.statistics.Statistics` that is created based
78
- on the contained ``suite`` and possible
79
- :func:`configuration <configure>`.
80
-
81
- Statistics are created every time this property is accessed. Saving
82
- them to a variable is thus often a good idea to avoid re-creating
83
- them unnecessarily::
84
-
85
- from robot.api import ExecutionResult
86
-
87
- result = ExecutionResult('output.xml')
88
- result.configure(stat_config={'suite_stat_level': 2,
89
- 'tag_stat_combine': 'tagANDanother'})
90
- stats = result.statistics
91
- print(stats.total.failed)
92
- print(stats.total.passed)
93
- print(stats.tags.combined[0].total)
94
- """
95
- return Statistics(self.suite, rpa=self.rpa, **self._stat_config)
96
-
97
- @property
98
- def return_code(self):
99
- """Return code (integer) of test execution.
100
-
101
- By default returns the number of failed tests (max 250),
102
- but can be :func:`configured <configure>` to always return 0.
103
- """
104
- if self._status_rc:
105
- return min(self.suite.statistics.failed, 250)
106
- return 0
107
-
108
- def configure(self, status_rc=True, suite_config=None, stat_config=None):
109
- """Configures the result object and objects it contains.
110
-
111
- :param status_rc: If set to ``False``, :attr:`return_code` always
112
- returns 0.
113
- :param suite_config: A dictionary of configuration options passed
114
- to :meth:`~.result.testsuite.TestSuite.configure` method of
115
- the contained ``suite``.
116
- :param stat_config: A dictionary of configuration options used when
117
- creating :attr:`statistics`.
118
- """
119
- if suite_config:
120
- self.suite.configure(**suite_config)
121
- self._status_rc = status_rc
122
- self._stat_config = stat_config or {}
123
-
124
- def save(self, target=None, legacy_output=False):
125
- """Save results as XML or JSON file.
126
-
127
- :param target: Target where to save results to. Can be a path
128
- (``pathlib.Path`` or ``str``) or an open file object. If omitted,
129
- uses the :attr:`source` which overwrites the original file.
130
- :param legacy_output: Save result in Robot Framework 6.x compatible
131
- format. New in Robot Framework 7.0.
132
-
133
- File type is got based on the ``target``. The type is JSON if the ``target``
134
- is a path that has a ``.json`` suffix or if it is an open file that has
135
- a ``name`` attribute with a ``.json`` suffix. Otherwise, the type is XML.
136
-
137
- Notice that saved JSON files only contain suite information, no statics
138
- or errors like XML files. This is likely to change in the future so
139
- that JSON files get a new root object with the current suite as a child
140
- and statics and errors as additional children. Robot Framework's own
141
- functions and methods accepting JSON results will continue to work
142
- also with JSON files containing only a suite.
143
- """
144
- from robot.reporting.outputwriter import LegacyOutputWriter, OutputWriter
145
-
146
- target = target or self.source
147
- if not target:
148
- raise ValueError('Path required.')
149
- if is_json_source(target):
150
- # This writes only suite information, not stats or errors. This
151
- # should be changed when we add JSON support to execution.
152
- self.suite.to_json(target)
153
- else:
154
- writer = OutputWriter if not legacy_output else LegacyOutputWriter
155
- self.visit(writer(target, rpa=self.rpa))
156
-
157
- def visit(self, visitor):
158
- """An entry point to visit the whole result object.
159
-
160
- :param visitor: An instance of :class:`~.visitor.ResultVisitor`.
161
-
162
- Visitors can gather information, modify results, etc. See
163
- :mod:`~robot.result` package for a simple usage example.
164
-
165
- Notice that it is also possible to call :meth:`result.suite.visit
166
- <robot.result.testsuite.TestSuite.visit>` if there is no need to
167
- visit the contained ``statistics`` or ``errors``.
168
- """
169
- visitor.visit_result(self)
170
-
171
- def handle_suite_teardown_failures(self):
172
- """Internal usage only."""
173
- if self.generated_by_robot:
174
- self.suite.handle_suite_teardown_failures()
175
-
176
- def set_execution_mode(self, other):
177
- """Set execution mode based on other result. Internal usage only."""
178
- if other.rpa is None:
179
- pass
180
- elif self.rpa is None:
181
- self.rpa = other.rpa
182
- elif self.rpa is not other.rpa:
183
- this, that = ('task', 'test') if other.rpa else ('test', 'task')
184
- raise DataError("Conflicting execution modes. File '%s' has %ss "
185
- "but files parsed earlier have %ss. Use '--rpa' "
186
- "or '--norpa' options to set the execution mode "
187
- "explicitly." % (other.source, this, that))
188
-
189
-
190
- class CombinedResult(Result):
191
- """Combined results of multiple test executions."""
192
-
193
- def __init__(self, results=None):
194
- super().__init__()
195
- for result in results or ():
196
- self.add_result(result)
197
-
198
- def add_result(self, other):
199
- self.set_execution_mode(other)
200
- self.suite.suites.append(other.suite)
201
- self.errors.add(other.errors)
File without changes