robotframework 7.1rc1__zip → 7.1rc2__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 (280) hide show
  1. {robotframework-7.1rc1 → robotframework-7.1rc2}/PKG-INFO +2 -2
  2. {robotframework-7.1rc1 → robotframework-7.1rc2}/setup.py +1 -1
  3. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/conf/settings.py +7 -0
  4. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/console/__init__.py +3 -3
  5. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/console/dotted.py +3 -3
  6. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/console/highlighting.py +29 -11
  7. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/console/verbose.py +7 -7
  8. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/logger.py +2 -2
  9. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/rebot.py +3 -0
  10. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/run.py +3 -0
  11. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/bodyrunner.py +34 -19
  12. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/version.py +1 -1
  13. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robotframework.egg-info/PKG-INFO +2 -2
  14. {robotframework-7.1rc1 → robotframework-7.1rc2}/AUTHORS.rst +0 -0
  15. {robotframework-7.1rc1 → robotframework-7.1rc2}/BUILD.rst +0 -0
  16. {robotframework-7.1rc1 → robotframework-7.1rc2}/CONTRIBUTING.rst +0 -0
  17. {robotframework-7.1rc1 → robotframework-7.1rc2}/COPYRIGHT.txt +0 -0
  18. {robotframework-7.1rc1 → robotframework-7.1rc2}/INSTALL.rst +0 -0
  19. {robotframework-7.1rc1 → robotframework-7.1rc2}/LICENSE.txt +0 -0
  20. {robotframework-7.1rc1 → robotframework-7.1rc2}/MANIFEST.in +0 -0
  21. {robotframework-7.1rc1 → robotframework-7.1rc2}/README.rst +0 -0
  22. {robotframework-7.1rc1 → robotframework-7.1rc2}/setup.cfg +0 -0
  23. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/__init__.py +0 -0
  24. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/__main__.py +0 -0
  25. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/api/__init__.py +0 -0
  26. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/api/deco.py +0 -0
  27. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/api/exceptions.py +0 -0
  28. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/api/interfaces.py +0 -0
  29. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/api/logger.py +0 -0
  30. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/api/parsing.py +0 -0
  31. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/api/py.typed +0 -0
  32. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/conf/__init__.py +0 -0
  33. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/conf/gatherfailed.py +0 -0
  34. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/conf/languages.py +0 -0
  35. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/errors.py +0 -0
  36. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/__init__.py +0 -0
  37. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/common/__init__.py +0 -0
  38. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/common/js_disabled.css +0 -0
  39. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/common/storage.js +0 -0
  40. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/htmlfilewriter.py +0 -0
  41. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/jsonwriter.py +0 -0
  42. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/lib/__init__.py +0 -0
  43. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  44. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/lib/jquery.min.js +0 -0
  45. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  46. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  47. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  48. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/libdoc/__init__.py +0 -0
  49. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/libdoc/doc_formatting.css +0 -0
  50. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/libdoc/libdoc.css +0 -0
  51. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/libdoc/libdoc.html +0 -0
  52. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/libdoc/print.css +0 -0
  53. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/libdoc/pygments.css +0 -0
  54. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/__init__.py +0 -0
  55. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/common.css +0 -0
  56. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
  57. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/fileloading.js +0 -0
  58. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/log.css +0 -0
  59. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/log.html +0 -0
  60. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/log.js +0 -0
  61. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/model.js +0 -0
  62. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/print.css +0 -0
  63. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/report.css +0 -0
  64. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/report.html +0 -0
  65. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/testdata.js +0 -0
  66. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/util.js +0 -0
  67. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/rebot/view.js +0 -0
  68. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/template.py +0 -0
  69. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/testdoc/__init__.py +0 -0
  70. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  71. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  72. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdoc.py +0 -0
  73. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/__init__.py +0 -0
  74. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/builder.py +0 -0
  75. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/consoleviewer.py +0 -0
  76. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/datatypes.py +0 -0
  77. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/htmlutils.py +0 -0
  78. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/htmlwriter.py +0 -0
  79. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/jsonbuilder.py +0 -0
  80. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/jsonwriter.py +0 -0
  81. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/model.py +0 -0
  82. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/output.py +0 -0
  83. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/robotbuilder.py +0 -0
  84. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/standardtypes.py +0 -0
  85. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/writer.py +0 -0
  86. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/xmlbuilder.py +0 -0
  87. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libdocpkg/xmlwriter.py +0 -0
  88. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/BuiltIn.py +0 -0
  89. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/Collections.py +0 -0
  90. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/DateTime.py +0 -0
  91. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/Dialogs.py +0 -0
  92. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/Easter.py +0 -0
  93. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/OperatingSystem.py +0 -0
  94. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/Process.py +0 -0
  95. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/Remote.py +0 -0
  96. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/Screenshot.py +0 -0
  97. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/String.py +0 -0
  98. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/Telnet.py +0 -0
  99. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/XML.py +0 -0
  100. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/__init__.py +0 -0
  101. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/libraries/dialogs_py.py +0 -0
  102. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/__init__.py +0 -0
  103. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/body.py +0 -0
  104. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/configurer.py +0 -0
  105. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/control.py +0 -0
  106. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/filter.py +0 -0
  107. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/fixture.py +0 -0
  108. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/itemlist.py +0 -0
  109. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/keyword.py +0 -0
  110. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/message.py +0 -0
  111. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/metadata.py +0 -0
  112. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/modelobject.py +0 -0
  113. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/modifier.py +0 -0
  114. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/namepatterns.py +0 -0
  115. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/statistics.py +0 -0
  116. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/stats.py +0 -0
  117. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/suitestatistics.py +0 -0
  118. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/tags.py +0 -0
  119. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/tagsetter.py +0 -0
  120. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/tagstatistics.py +0 -0
  121. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/testcase.py +0 -0
  122. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/testsuite.py +0 -0
  123. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/totalstatistics.py +0 -0
  124. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/model/visitor.py +0 -0
  125. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/__init__.py +0 -0
  126. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/console/quiet.py +0 -0
  127. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/debugfile.py +0 -0
  128. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/filelogger.py +0 -0
  129. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/librarylogger.py +0 -0
  130. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/listeners.py +0 -0
  131. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/loggerapi.py +0 -0
  132. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/loggerhelper.py +0 -0
  133. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/output.py +0 -0
  134. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/pyloggingconf.py +0 -0
  135. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/stdoutlogsplitter.py +0 -0
  136. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/output/xmllogger.py +0 -0
  137. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/__init__.py +0 -0
  138. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/__init__.py +0 -0
  139. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/blocklexers.py +0 -0
  140. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/context.py +0 -0
  141. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/lexer.py +0 -0
  142. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/settings.py +0 -0
  143. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/statementlexers.py +0 -0
  144. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/tokenizer.py +0 -0
  145. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/lexer/tokens.py +0 -0
  146. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/model/__init__.py +0 -0
  147. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/model/blocks.py +0 -0
  148. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/model/statements.py +0 -0
  149. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/model/visitor.py +0 -0
  150. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/parser/__init__.py +0 -0
  151. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/parser/blockparsers.py +0 -0
  152. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/parser/fileparser.py +0 -0
  153. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/parser/parser.py +0 -0
  154. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/parsing/suitestructure.py +0 -0
  155. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/pythonpathsetter.py +0 -0
  156. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/__init__.py +0 -0
  157. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/expandkeywordmatcher.py +0 -0
  158. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/jsbuildingcontext.py +0 -0
  159. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/jsexecutionresult.py +0 -0
  160. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/jsmodelbuilders.py +0 -0
  161. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/jswriter.py +0 -0
  162. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/logreportwriters.py +0 -0
  163. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/outputwriter.py +0 -0
  164. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/resultwriter.py +0 -0
  165. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/stringcache.py +0 -0
  166. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/reporting/xunitwriter.py +0 -0
  167. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/__init__.py +0 -0
  168. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/configurer.py +0 -0
  169. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/executionerrors.py +0 -0
  170. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/executionresult.py +0 -0
  171. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/flattenkeywordmatcher.py +0 -0
  172. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/keywordremover.py +0 -0
  173. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/merger.py +0 -0
  174. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/messagefilter.py +0 -0
  175. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/model.py +0 -0
  176. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/modeldeprecation.py +0 -0
  177. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/resultbuilder.py +0 -0
  178. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/suiteteardownfailed.py +0 -0
  179. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/visitor.py +0 -0
  180. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/result/xmlelementhandlers.py +0 -0
  181. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/__init__.py +0 -0
  182. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/__init__.py +0 -0
  183. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/argumentconverter.py +0 -0
  184. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/argumentmapper.py +0 -0
  185. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/argumentparser.py +0 -0
  186. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/argumentresolver.py +0 -0
  187. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/argumentspec.py +0 -0
  188. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/argumentvalidator.py +0 -0
  189. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/customconverters.py +0 -0
  190. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/embedded.py +0 -0
  191. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/typeconverters.py +0 -0
  192. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/typeinfo.py +0 -0
  193. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/typeinfoparser.py +0 -0
  194. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/arguments/typevalidator.py +0 -0
  195. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/builder/__init__.py +0 -0
  196. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/builder/builders.py +0 -0
  197. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/builder/parsers.py +0 -0
  198. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/builder/settings.py +0 -0
  199. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/builder/transformers.py +0 -0
  200. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/context.py +0 -0
  201. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/dynamicmethods.py +0 -0
  202. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/importer.py +0 -0
  203. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/invalidkeyword.py +0 -0
  204. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/keywordfinder.py +0 -0
  205. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/keywordimplementation.py +0 -0
  206. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/librarykeyword.py +0 -0
  207. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/librarykeywordrunner.py +0 -0
  208. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/libraryscopes.py +0 -0
  209. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/model.py +0 -0
  210. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/namespace.py +0 -0
  211. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/outputcapture.py +0 -0
  212. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/randomizer.py +0 -0
  213. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/resourcemodel.py +0 -0
  214. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/runkwregister.py +0 -0
  215. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/signalhandler.py +0 -0
  216. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/status.py +0 -0
  217. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/statusreporter.py +0 -0
  218. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/suiterunner.py +0 -0
  219. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/testlibraries.py +0 -0
  220. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/timeouts/__init__.py +0 -0
  221. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/timeouts/nosupport.py +0 -0
  222. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/timeouts/posix.py +0 -0
  223. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/timeouts/windows.py +0 -0
  224. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/running/userkeywordrunner.py +0 -0
  225. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/testdoc.py +0 -0
  226. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/__init__.py +0 -0
  227. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/application.py +0 -0
  228. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/argumentparser.py +0 -0
  229. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/asserts.py +0 -0
  230. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/charwidth.py +0 -0
  231. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/compress.py +0 -0
  232. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/connectioncache.py +0 -0
  233. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/dotdict.py +0 -0
  234. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/encoding.py +0 -0
  235. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/encodingsniffer.py +0 -0
  236. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/error.py +0 -0
  237. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/escaping.py +0 -0
  238. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/etreewrapper.py +0 -0
  239. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/filereader.py +0 -0
  240. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/frange.py +0 -0
  241. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/htmlformatters.py +0 -0
  242. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/importer.py +0 -0
  243. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/markuputils.py +0 -0
  244. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/markupwriters.py +0 -0
  245. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/match.py +0 -0
  246. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/misc.py +0 -0
  247. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/normalizing.py +0 -0
  248. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/notset.py +0 -0
  249. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/platform.py +0 -0
  250. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/recommendations.py +0 -0
  251. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/restreader.py +0 -0
  252. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/robotenv.py +0 -0
  253. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/robotinspect.py +0 -0
  254. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/robotio.py +0 -0
  255. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/robotpath.py +0 -0
  256. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/robottime.py +0 -0
  257. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/robottypes.py +0 -0
  258. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/setter.py +0 -0
  259. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/sortable.py +0 -0
  260. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/text.py +0 -0
  261. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/typehints.py +0 -0
  262. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/utils/unic.py +0 -0
  263. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/__init__.py +0 -0
  264. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/assigner.py +0 -0
  265. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/evaluation.py +0 -0
  266. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/filesetter.py +0 -0
  267. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/finders.py +0 -0
  268. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/notfound.py +0 -0
  269. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/replacer.py +0 -0
  270. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/resolvable.py +0 -0
  271. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/scopes.py +0 -0
  272. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/search.py +0 -0
  273. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/store.py +0 -0
  274. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/tablesetter.py +0 -0
  275. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robot/variables/variables.py +0 -0
  276. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robotframework.egg-info/SOURCES.txt +0 -0
  277. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robotframework.egg-info/dependency_links.txt +0 -0
  278. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robotframework.egg-info/entry_points.txt +0 -0
  279. {robotframework-7.1rc1 → robotframework-7.1rc2}/src/robotframework.egg-info/top_level.txt +0 -0
  280. {robotframework-7.1rc1 → robotframework-7.1rc2}/tasks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotframework
3
- Version: 7.1rc1
3
+ Version: 7.1rc2
4
4
  Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
5
5
  Home-page: https://robotframework.org
6
6
  Author: Pekka Klärck
@@ -10,7 +10,7 @@ Download-URL: https://pypi.org/project/robotframework
10
10
  Project-URL: Source, https://github.com/robotframework/robotframework
11
11
  Project-URL: Issue Tracker, https://github.com/robotframework/robotframework/issues
12
12
  Project-URL: Documentation, https://robotframework.org/robotframework
13
- Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.1rc1.rst
13
+ Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.1rc2.rst
14
14
  Project-URL: Slack, http://slack.robotframework.org
15
15
  Description: Robot Framework
16
16
  ===============
@@ -6,7 +6,7 @@ from setuptools import find_packages, setup
6
6
 
7
7
  # Version number typically updated by running `invoke set-version <version>`.
8
8
  # Run `invoke --help set-version` or see tasks.py for details.
9
- VERSION = '7.1rc1'
9
+ VERSION = '7.1rc2'
10
10
  with open(join(dirname(abspath(__file__)), 'README.rst')) as f:
11
11
  LONG_DESCRIPTION = f.read()
12
12
  base_url = 'https://github.com/robotframework/robotframework/blob/master'
@@ -68,6 +68,7 @@ class _BaseSettings:
68
68
  'PreRebotModifiers': ('prerebotmodifier', []),
69
69
  'StatusRC' : ('statusrc', True),
70
70
  'ConsoleColors' : ('consolecolors', 'AUTO'),
71
+ 'ConsoleLinks' : ('consolelinks', 'AUTO'),
71
72
  'PythonPath' : ('pythonpath', []),
72
73
  'StdOut' : ('stdout', None),
73
74
  'StdErr' : ('stderr', None)}
@@ -454,6 +455,10 @@ class _BaseSettings:
454
455
  def console_colors(self):
455
456
  return self['ConsoleColors']
456
457
 
458
+ @property
459
+ def console_links(self):
460
+ return self['ConsoleLinks']
461
+
457
462
  @property
458
463
  def rpa(self):
459
464
  return self['RPA']
@@ -613,6 +618,7 @@ class RobotSettings(_BaseSettings):
613
618
  'type': self.console_type,
614
619
  'width': self.console_width,
615
620
  'colors': self.console_colors,
621
+ 'links': self.console_links,
616
622
  'markers': self.console_markers,
617
623
  'stdout': self['StdOut'],
618
624
  'stderr': self['StdErr']
@@ -736,6 +742,7 @@ class RebotSettings(_BaseSettings):
736
742
  def console_output_config(self):
737
743
  return {
738
744
  'colors': self.console_colors,
745
+ 'links': self.console_links,
739
746
  'stdout': self['StdOut'],
740
747
  'stderr': self['StdErr']
741
748
  }
@@ -20,13 +20,13 @@ from .quiet import NoOutput, QuietOutput
20
20
  from .verbose import VerboseOutput
21
21
 
22
22
 
23
- def ConsoleOutput(type='verbose', width=78, colors='AUTO', markers='AUTO',
23
+ def ConsoleOutput(type='verbose', width=78, colors='AUTO', links='AUTO', markers='AUTO',
24
24
  stdout=None, stderr=None):
25
25
  upper = type.upper()
26
26
  if upper == 'VERBOSE':
27
- return VerboseOutput(width, colors, markers, stdout, stderr)
27
+ return VerboseOutput(width, colors, links, markers, stdout, stderr)
28
28
  if upper == 'DOTTED':
29
- return DottedOutput(width, colors, stdout, stderr)
29
+ return DottedOutput(width, colors, links, stdout, stderr)
30
30
  if upper == 'QUIET':
31
31
  return QuietOutput(colors, stderr)
32
32
  if upper == 'NONE':
@@ -25,10 +25,10 @@ from ..loggerapi import LoggerApi
25
25
 
26
26
  class DottedOutput(LoggerApi):
27
27
 
28
- def __init__(self, width=78, colors='AUTO', stdout=None, stderr=None):
28
+ def __init__(self, width=78, colors='AUTO', links='AUTO', stdout=None, stderr=None):
29
29
  self.width = width
30
- self.stdout = HighlightingStream(stdout or sys.__stdout__, colors)
31
- self.stderr = HighlightingStream(stderr or sys.__stderr__, colors)
30
+ self.stdout = HighlightingStream(stdout or sys.__stdout__, colors, links)
31
+ self.stderr = HighlightingStream(stderr or sys.__stderr__, colors, links)
32
32
  self.markers_on_row = 0
33
33
 
34
34
  def start_suite(self, data, result):
@@ -19,6 +19,7 @@
19
19
 
20
20
  import errno
21
21
  import os
22
+ import socket
22
23
  import sys
23
24
  from contextlib import contextmanager
24
25
  try:
@@ -42,11 +43,11 @@ from robot.utils import console_encode, isatty, WINDOWS
42
43
 
43
44
  class HighlightingStream:
44
45
 
45
- def __init__(self, stream, colors='AUTO'):
46
+ def __init__(self, stream, colors='AUTO', links='AUTO'):
46
47
  self.stream = stream
47
- self._highlighter = self._get_highlighter(stream, colors)
48
+ self._highlighter = self._get_highlighter(stream, colors, links)
48
49
 
49
- def _get_highlighter(self, stream, colors):
50
+ def _get_highlighter(self, stream, colors, links):
50
51
  options = {'AUTO': Highlighter if isatty(stream) else NoHighlighting,
51
52
  'ON': Highlighter,
52
53
  'OFF': NoHighlighting,
@@ -54,9 +55,12 @@ class HighlightingStream:
54
55
  try:
55
56
  highlighter = options[colors.upper()]
56
57
  except KeyError:
57
- raise DataError("Invalid console color value '%s'. Available "
58
- "'AUTO', 'ON', 'OFF' and 'ANSI'." % colors)
59
- return highlighter(stream)
58
+ raise DataError(f"Invalid console color value '{colors}'. "
59
+ f"Available 'AUTO', 'ON', 'OFF' and 'ANSI'.")
60
+ if links.upper() not in ('AUTO', 'OFF'):
61
+ raise DataError(f"Invalid console link value '{links}. "
62
+ f"Available 'AUTO' and 'OFF'.")
63
+ return highlighter(stream, links.upper() == 'AUTO')
60
64
 
61
65
  def write(self, text, flush=True):
62
66
  self._write(console_encode(text, stream=self.stream))
@@ -120,13 +124,13 @@ class HighlightingStream:
120
124
  self.write(f"{kind + ':':8} {path}\n")
121
125
 
122
126
 
123
- def Highlighter(stream):
127
+ def Highlighter(stream, links=True):
124
128
  if os.sep == '/':
125
- return AnsiHighlighter(stream)
129
+ return AnsiHighlighter(stream, links)
126
130
  if not windll:
127
131
  return NoHighlighting(stream)
128
132
  if virtual_terminal_enabled(stream):
129
- return AnsiHighlighter(stream)
133
+ return AnsiHighlighter(stream, links)
130
134
  return DosHighlighter(stream)
131
135
 
132
136
 
@@ -136,8 +140,9 @@ class AnsiHighlighter:
136
140
  YELLOW = '\033[33m'
137
141
  RESET = '\033[0m'
138
142
 
139
- def __init__(self, stream):
143
+ def __init__(self, stream, links=True):
140
144
  self._stream = stream
145
+ self._links = links
141
146
 
142
147
  def green(self):
143
148
  self._set_color(self.GREEN)
@@ -152,7 +157,20 @@ class AnsiHighlighter:
152
157
  self._set_color(self.RESET)
153
158
 
154
159
  def link(self, path):
155
- return f'\033]8;;file:///{path}\033\\{path}\033]8;;\033\\'
160
+ if not self._links:
161
+ return path
162
+ try:
163
+ uri = path.as_uri()
164
+ except ValueError:
165
+ return path
166
+ # Add the host name to the URI to support opening links remotely.
167
+ # Windows Terminal doesn't yet support the host component, though:
168
+ # https://github.com/microsoft/terminal/issues/14116
169
+ if uri[:8] == 'file:///' and not WINDOWS:
170
+ uri = f'file://{socket.getfqdn()}/{uri[8:]}'
171
+ # The hyperlink format is documented here:
172
+ # https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
173
+ return f'\033]8;;{uri}\033\\{path}\033]8;;\033\\'
156
174
 
157
175
  def _set_color(self, color):
158
176
  self._stream.write(color)
@@ -24,9 +24,9 @@ from ..loggerapi import LoggerApi
24
24
 
25
25
  class VerboseOutput(LoggerApi):
26
26
 
27
- def __init__(self, width=78, colors='AUTO', markers='AUTO', stdout=None,
28
- stderr=None):
29
- self.writer = VerboseWriter(width, colors, markers, stdout, stderr)
27
+ def __init__(self, width=78, colors='AUTO', links='AUTO', markers='AUTO',
28
+ stdout=None, stderr=None):
29
+ self.writer = VerboseWriter(width, colors, links, markers, stdout, stderr)
30
30
  self.started = False
31
31
  self.started_keywords = 0
32
32
  self.running_test = False
@@ -73,11 +73,11 @@ class VerboseOutput(LoggerApi):
73
73
  class VerboseWriter:
74
74
  _status_length = len('| PASS |')
75
75
 
76
- def __init__(self, width=78, colors='AUTO', markers='AUTO', stdout=None,
77
- stderr=None):
76
+ def __init__(self, width=78, colors='AUTO', links='AUTO', markers='AUTO',
77
+ stdout=None, stderr=None):
78
78
  self.width = width
79
- self.stdout = HighlightingStream(stdout or sys.__stdout__, colors)
80
- self.stderr = HighlightingStream(stderr or sys.__stderr__, colors)
79
+ self.stdout = HighlightingStream(stdout or sys.__stdout__, colors, links)
80
+ self.stderr = HighlightingStream(stderr or sys.__stderr__, colors, links)
81
81
  self._keyword_marker = KeywordMarker(self.stdout, markers)
82
82
  self._last_info = None
83
83
 
@@ -104,8 +104,8 @@ class Logger(AbstractLogger):
104
104
  self.close()
105
105
 
106
106
  def register_console_logger(self, type='verbose', width=78, colors='AUTO',
107
- markers='AUTO', stdout=None, stderr=None):
108
- logger = ConsoleOutput(type, width, colors, markers, stdout, stderr)
107
+ links='AUTO', markers='AUTO', stdout=None, stderr=None):
108
+ logger = ConsoleOutput(type, width, colors, links, markers, stdout, stderr)
109
109
  self._console_logger = self._wrap_and_relay(logger)
110
110
 
111
111
  def _wrap_and_relay(self, logger):
@@ -262,6 +262,9 @@ Options
262
262
  on: always use colors
263
263
  ansi: like `on` but use ANSI colors also on Windows
264
264
  off: disable colors altogether
265
+ --consolelinks auto|off Control making paths to results files hyperlinks.
266
+ auto: use links when colors are enabled (default)
267
+ off: disable links unconditionally
265
268
  -P --pythonpath path * Additional locations to add to the module search path
266
269
  that is used when importing Python based extensions.
267
270
  -A --argumentfile path * Text file to read more arguments from. File can have
@@ -341,6 +341,9 @@ Options
341
341
  on: always use colors
342
342
  ansi: like `on` but use ANSI colors also on Windows
343
343
  off: disable colors altogether
344
+ --consolelinks auto|off Control making paths to results files hyperlinks.
345
+ auto: use links when colors are enabled (default)
346
+ off: disable links unconditionally
344
347
  -K --consolemarkers auto|on|off Show markers on the console when top level
345
348
  keywords in a test case end. Values have same
346
349
  semantics as with --consolecolors.
@@ -383,7 +383,6 @@ class WhileRunner:
383
383
  ctx = self._context
384
384
  error = None
385
385
  run = False
386
- limit = None
387
386
  result.start_time = datetime.now()
388
387
  iter_result = result.body.create_iteration(start_time=datetime.now())
389
388
  if self._run:
@@ -391,15 +390,17 @@ class WhileRunner:
391
390
  error = DataError(data.error, syntax=True)
392
391
  elif not ctx.dry_run:
393
392
  try:
394
- limit = WhileLimit.create(data.limit,
395
- data.on_limit,
396
- data.on_limit_message,
397
- ctx.variables)
398
393
  run = self._should_run(data.condition, ctx.variables)
399
394
  except DataError as err:
400
395
  error = err
401
396
  with StatusReporter(data, result, self._context, run):
402
397
  iter_data = data.get_iteration()
398
+ if run:
399
+ try:
400
+ limit = WhileLimit.create(data, ctx.variables)
401
+ except DataError as err:
402
+ error = err
403
+ run = False
403
404
  if ctx.dry_run or not run:
404
405
  self._run_iteration(iter_data, iter_result, run)
405
406
  if error:
@@ -651,29 +652,34 @@ class WhileLimit:
651
652
  self.on_limit_message = on_limit_message
652
653
 
653
654
  @classmethod
654
- def create(cls, limit, on_limit, on_limit_message, variables):
655
- if on_limit_message:
656
- try:
657
- on_limit_message = variables.replace_string(on_limit_message)
658
- except DataError as err:
659
- raise DataError(f"Invalid WHILE loop 'on_limit_message': '{err}")
660
- on_limit = cls._parse_on_limit(variables, on_limit)
655
+ def create(cls, data, variables):
656
+ limit = cls._parse_limit(data.limit, variables)
657
+ on_limit = cls._parse_on_limit(data.on_limit, variables)
658
+ on_limit_msg = cls._parse_on_limit_message(data.on_limit_message, variables)
661
659
  if not limit:
662
- return IterationCountLimit(DEFAULT_WHILE_LIMIT, on_limit, on_limit_message)
663
- limit = variables.replace_string(limit)
660
+ return IterationCountLimit(DEFAULT_WHILE_LIMIT, on_limit, on_limit_msg)
664
661
  if limit.upper() == 'NONE':
665
662
  return NoLimit()
666
663
  try:
667
664
  count = cls._parse_limit_as_count(limit)
668
665
  except ValueError:
669
666
  seconds = cls._parse_limit_as_timestr(limit)
670
- return DurationLimit(seconds, on_limit, on_limit_message)
667
+ return DurationLimit(seconds, on_limit, on_limit_msg)
671
668
  else:
672
- return IterationCountLimit(count, on_limit, on_limit_message)
669
+ return IterationCountLimit(count, on_limit, on_limit_msg)
673
670
 
674
671
  @classmethod
675
- def _parse_on_limit(cls, variables, on_limit):
676
- if on_limit is None:
672
+ def _parse_limit(cls, limit, variables):
673
+ if not limit:
674
+ return None
675
+ try:
676
+ return variables.replace_string(limit)
677
+ except DataError as err:
678
+ raise DataError(f"Invalid WHILE loop limit: {err}")
679
+
680
+ @classmethod
681
+ def _parse_on_limit(cls, on_limit, variables):
682
+ if not on_limit:
677
683
  return None
678
684
  try:
679
685
  on_limit = variables.replace_string(on_limit)
@@ -682,7 +688,16 @@ class WhileLimit:
682
688
  raise DataError(f"Value '{on_limit}' is not accepted. Valid values "
683
689
  f"are 'PASS' and 'FAIL'.")
684
690
  except DataError as err:
685
- raise DataError(f"Invalid WHILE loop 'on_limit' value: {err}")
691
+ raise DataError(f"Invalid WHILE loop 'on_limit': {err}")
692
+
693
+ @classmethod
694
+ def _parse_on_limit_message(cls, on_limit_message, variables):
695
+ if not on_limit_message:
696
+ return None
697
+ try:
698
+ return variables.replace_string(on_limit_message)
699
+ except DataError as err:
700
+ raise DataError(f"Invalid WHILE loop 'on_limit_message': '{err}")
686
701
 
687
702
  @classmethod
688
703
  def _parse_limit_as_count(cls, limit):
@@ -18,7 +18,7 @@ import sys
18
18
 
19
19
  # Version number typically updated by running `invoke set-version <version>`.
20
20
  # Run `invoke --help set-version` or see tasks.py for details.
21
- VERSION = '7.1rc1'
21
+ VERSION = '7.1rc2'
22
22
 
23
23
 
24
24
  def get_version(naked=False):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotframework
3
- Version: 7.1rc1
3
+ Version: 7.1rc2
4
4
  Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
5
5
  Home-page: https://robotframework.org
6
6
  Author: Pekka Klärck
@@ -10,7 +10,7 @@ Download-URL: https://pypi.org/project/robotframework
10
10
  Project-URL: Source, https://github.com/robotframework/robotframework
11
11
  Project-URL: Issue Tracker, https://github.com/robotframework/robotframework/issues
12
12
  Project-URL: Documentation, https://robotframework.org/robotframework
13
- Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.1rc1.rst
13
+ Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.1rc2.rst
14
14
  Project-URL: Slack, http://slack.robotframework.org
15
15
  Description: Robot Framework
16
16
  ===============