robotframework 6.1.1__zip → 7.0__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 (307) hide show
  1. {robotframework-6.1.1 → robotframework-7.0}/INSTALL.rst +25 -25
  2. {robotframework-6.1.1 → robotframework-7.0}/PKG-INFO +6 -8
  3. {robotframework-6.1.1 → robotframework-7.0}/README.rst +3 -2
  4. {robotframework-6.1.1 → robotframework-7.0}/setup.py +3 -6
  5. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/__init__.py +4 -1
  6. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/deco.py +60 -14
  7. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/exceptions.py +6 -6
  8. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/interfaces.py +402 -67
  9. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/logger.py +27 -20
  10. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/parsing.py +4 -2
  11. robotframework-7.0/src/robot/api/py.typed +0 -0
  12. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/gatherfailed.py +2 -2
  13. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/languages.py +0 -9
  14. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/settings.py +21 -14
  15. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/common/storage.js +11 -6
  16. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/htmlfilewriter.py +1 -1
  17. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/libdoc.css +10 -2
  18. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/libdoc.html +10 -0
  19. robotframework-7.0/src/robot/htmldata/rebot/common.css +362 -0
  20. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/doc_formatting.css +13 -7
  21. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/log.css +51 -10
  22. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/log.html +14 -23
  23. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/model.js +2 -4
  24. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/report.css +83 -19
  25. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/report.html +22 -7
  26. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/testdata.js +10 -3
  27. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/view.js +84 -0
  28. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/template.py +3 -3
  29. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/builder.py +0 -8
  30. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/datatypes.py +9 -10
  31. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/htmlutils.py +4 -7
  32. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/jsonbuilder.py +38 -20
  33. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/model.py +21 -28
  34. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/robotbuilder.py +50 -31
  35. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/standardtypes.py +9 -1
  36. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/xmlbuilder.py +35 -20
  37. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/xmlwriter.py +18 -38
  38. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/BuiltIn.py +255 -205
  39. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Collections.py +384 -240
  40. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/DateTime.py +73 -60
  41. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/OperatingSystem.py +6 -5
  42. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Process.py +26 -27
  43. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Remote.py +40 -36
  44. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/String.py +66 -76
  45. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/XML.py +66 -59
  46. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/__init__.py +2 -2
  47. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/__init__.py +5 -5
  48. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/body.py +44 -13
  49. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/configurer.py +15 -11
  50. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/control.py +226 -84
  51. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/filter.py +31 -25
  52. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/itemlist.py +9 -8
  53. robotframework-7.0/src/robot/model/keyword.py +77 -0
  54. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/message.py +19 -10
  55. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/modelobject.py +25 -7
  56. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/namepatterns.py +3 -25
  57. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/stats.py +9 -15
  58. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/tags.py +1 -1
  59. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/testcase.py +15 -27
  60. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/testsuite.py +17 -26
  61. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/visitor.py +35 -8
  62. robotframework-7.0/src/robot/output/console/dotted.py +90 -0
  63. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/quiet.py +3 -2
  64. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/verbose.py +61 -61
  65. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/debugfile.py +39 -24
  66. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/filelogger.py +18 -15
  67. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/librarylogger.py +3 -2
  68. robotframework-7.0/src/robot/output/listeners.py +753 -0
  69. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/logger.py +216 -80
  70. robotframework-7.0/src/robot/output/loggerapi.py +215 -0
  71. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/loggerhelper.py +23 -56
  72. robotframework-7.0/src/robot/output/output.py +185 -0
  73. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/stdoutlogsplitter.py +8 -5
  74. robotframework-7.0/src/robot/output/xmllogger.py +459 -0
  75. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/blocklexers.py +17 -13
  76. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/context.py +12 -2
  77. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/lexer.py +1 -1
  78. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/settings.py +6 -3
  79. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/statementlexers.py +39 -10
  80. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/tokens.py +27 -29
  81. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/model/blocks.py +19 -6
  82. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/model/statements.py +193 -94
  83. robotframework-7.0/src/robot/parsing/model/visitor.py +100 -0
  84. {robotframework-6.1.1 → robotframework-7.0}/src/robot/rebot.py +2 -0
  85. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/expandkeywordmatcher.py +1 -1
  86. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jsbuildingcontext.py +8 -6
  87. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jsmodelbuilders.py +88 -61
  88. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/logreportwriters.py +16 -10
  89. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/outputwriter.py +18 -2
  90. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/resultwriter.py +4 -4
  91. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/stringcache.py +3 -3
  92. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/xunitwriter.py +15 -21
  93. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/__init__.py +3 -2
  94. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/configurer.py +12 -9
  95. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/executionresult.py +56 -8
  96. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/flattenkeywordmatcher.py +48 -9
  97. robotframework-7.0/src/robot/result/keywordremover.py +207 -0
  98. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/merger.py +1 -1
  99. robotframework-7.0/src/robot/result/model.py +1185 -0
  100. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/modeldeprecation.py +9 -3
  101. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/resultbuilder.py +46 -36
  102. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/xmlelementhandlers.py +83 -43
  103. {robotframework-6.1.1 → robotframework-7.0}/src/robot/run.py +2 -0
  104. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/__init__.py +14 -4
  105. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/__init__.py +2 -1
  106. robotframework-7.0/src/robot/running/arguments/argumentconverter.py +100 -0
  107. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentmapper.py +26 -24
  108. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentparser.py +82 -60
  109. robotframework-7.0/src/robot/running/arguments/argumentresolver.py +158 -0
  110. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentspec.py +83 -116
  111. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentvalidator.py +33 -27
  112. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/customconverters.py +15 -12
  113. robotframework-7.0/src/robot/running/arguments/embedded.py +145 -0
  114. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/typeconverters.py +233 -213
  115. robotframework-7.0/src/robot/running/arguments/typeinfo.py +317 -0
  116. robotframework-7.0/src/robot/running/arguments/typeinfoparser.py +219 -0
  117. robotframework-7.0/src/robot/running/arguments/typevalidator.py +60 -0
  118. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/bodyrunner.py +147 -129
  119. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/builders.py +2 -1
  120. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/parsers.py +10 -11
  121. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/settings.py +9 -17
  122. robotframework-7.0/src/robot/running/builder/transformers.py +535 -0
  123. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/context.py +113 -31
  124. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/dynamicmethods.py +62 -34
  125. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/importer.py +27 -49
  126. robotframework-7.0/src/robot/running/invalidkeyword.py +67 -0
  127. robotframework-7.0/src/robot/running/keywordfinder.py +91 -0
  128. robotframework-7.0/src/robot/running/keywordimplementation.py +164 -0
  129. robotframework-7.0/src/robot/running/librarykeyword.py +392 -0
  130. robotframework-7.0/src/robot/running/librarykeywordrunner.py +250 -0
  131. robotframework-7.0/src/robot/running/libraryscopes.py +115 -0
  132. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/model.py +195 -377
  133. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/namespace.py +124 -137
  134. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/outputcapture.py +20 -12
  135. robotframework-7.0/src/robot/running/resourcemodel.py +448 -0
  136. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/statusreporter.py +16 -13
  137. robotframework-7.0/src/robot/running/suiterunner.py +265 -0
  138. robotframework-7.0/src/robot/running/testlibraries.py +500 -0
  139. robotframework-7.0/src/robot/running/userkeywordrunner.py +260 -0
  140. {robotframework-6.1.1 → robotframework-7.0}/src/robot/testdoc.py +18 -13
  141. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/__init__.py +53 -35
  142. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/connectioncache.py +64 -59
  143. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/dotdict.py +3 -0
  144. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/encodingsniffer.py +1 -1
  145. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/escaping.py +19 -19
  146. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/importer.py +2 -2
  147. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/markupwriters.py +23 -15
  148. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/misc.py +1 -2
  149. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/normalizing.py +9 -24
  150. robotframework-7.0/src/robot/utils/notset.py +33 -0
  151. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/platform.py +15 -5
  152. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotio.py +9 -9
  153. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotpath.py +1 -0
  154. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robottime.py +122 -90
  155. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robottypes.py +21 -31
  156. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/setter.py +0 -5
  157. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/text.py +7 -4
  158. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/unic.py +2 -2
  159. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/__init__.py +2 -2
  160. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/assigner.py +17 -19
  161. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/evaluation.py +20 -17
  162. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/filesetter.py +80 -80
  163. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/replacer.py +33 -36
  164. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/scopes.py +17 -12
  165. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/search.py +66 -41
  166. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/store.py +14 -16
  167. robotframework-7.0/src/robot/variables/tablesetter.py +164 -0
  168. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/variables.py +1 -1
  169. {robotframework-6.1.1 → robotframework-7.0}/src/robot/version.py +1 -1
  170. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/PKG-INFO +6 -8
  171. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/SOURCES.txt +10 -8
  172. {robotframework-6.1.1 → robotframework-7.0}/tasks.py +6 -6
  173. robotframework-6.1.1/src/robot/htmldata/rebot/common.css +0 -239
  174. robotframework-6.1.1/src/robot/libraries/Reserved.py +0 -48
  175. robotframework-6.1.1/src/robot/model/keyword.py +0 -173
  176. robotframework-6.1.1/src/robot/output/console/dotted.py +0 -90
  177. robotframework-6.1.1/src/robot/output/listenerarguments.py +0 -165
  178. robotframework-6.1.1/src/robot/output/listenermethods.py +0 -113
  179. robotframework-6.1.1/src/robot/output/listeners.py +0 -174
  180. robotframework-6.1.1/src/robot/output/output.py +0 -95
  181. robotframework-6.1.1/src/robot/output/xmllogger.py +0 -354
  182. robotframework-6.1.1/src/robot/parsing/model/visitor.py +0 -67
  183. robotframework-6.1.1/src/robot/result/keywordremover.py +0 -183
  184. robotframework-6.1.1/src/robot/result/model.py +0 -957
  185. robotframework-6.1.1/src/robot/running/arguments/argumentconverter.py +0 -79
  186. robotframework-6.1.1/src/robot/running/arguments/argumentresolver.py +0 -131
  187. robotframework-6.1.1/src/robot/running/arguments/embedded.py +0 -146
  188. robotframework-6.1.1/src/robot/running/arguments/typevalidator.py +0 -56
  189. robotframework-6.1.1/src/robot/running/builder/transformers.py +0 -642
  190. robotframework-6.1.1/src/robot/running/handlers.py +0 -321
  191. robotframework-6.1.1/src/robot/running/handlerstore.py +0 -66
  192. robotframework-6.1.1/src/robot/running/librarykeywordrunner.py +0 -238
  193. robotframework-6.1.1/src/robot/running/libraryscopes.py +0 -97
  194. robotframework-6.1.1/src/robot/running/modelcombiner.py +0 -32
  195. robotframework-6.1.1/src/robot/running/suiterunner.py +0 -248
  196. robotframework-6.1.1/src/robot/running/testlibraries.py +0 -423
  197. robotframework-6.1.1/src/robot/running/usererrorhandler.py +0 -75
  198. robotframework-6.1.1/src/robot/running/userkeyword.py +0 -111
  199. robotframework-6.1.1/src/robot/running/userkeywordrunner.py +0 -274
  200. robotframework-6.1.1/src/robot/variables/tablesetter.py +0 -156
  201. {robotframework-6.1.1 → robotframework-7.0}/AUTHORS.rst +0 -0
  202. {robotframework-6.1.1 → robotframework-7.0}/BUILD.rst +0 -0
  203. {robotframework-6.1.1 → robotframework-7.0}/CONTRIBUTING.rst +0 -0
  204. {robotframework-6.1.1 → robotframework-7.0}/COPYRIGHT.txt +0 -0
  205. {robotframework-6.1.1 → robotframework-7.0}/LICENSE.txt +0 -0
  206. {robotframework-6.1.1 → robotframework-7.0}/MANIFEST.in +0 -0
  207. {robotframework-6.1.1 → robotframework-7.0}/setup.cfg +0 -0
  208. {robotframework-6.1.1 → robotframework-7.0}/src/robot/__init__.py +0 -0
  209. {robotframework-6.1.1 → robotframework-7.0}/src/robot/__main__.py +0 -0
  210. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/__init__.py +0 -0
  211. {robotframework-6.1.1 → robotframework-7.0}/src/robot/errors.py +0 -0
  212. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/__init__.py +0 -0
  213. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/common/__init__.py +0 -0
  214. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/common/js_disabled.css +0 -0
  215. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/jsonwriter.py +0 -0
  216. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/__init__.py +0 -0
  217. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  218. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.min.js +0 -0
  219. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  220. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  221. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  222. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/__init__.py +0 -0
  223. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/doc_formatting.css +0 -0
  224. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/print.css +0 -0
  225. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/pygments.css +0 -0
  226. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/__init__.py +0 -0
  227. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/fileloading.js +0 -0
  228. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/log.js +0 -0
  229. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/print.css +0 -0
  230. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/util.js +0 -0
  231. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/testdoc/__init__.py +0 -0
  232. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  233. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  234. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdoc.py +0 -0
  235. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/__init__.py +0 -0
  236. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/consoleviewer.py +0 -0
  237. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/htmlwriter.py +0 -0
  238. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/jsonwriter.py +0 -0
  239. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/output.py +0 -0
  240. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/writer.py +0 -0
  241. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Dialogs.py +0 -0
  242. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Easter.py +0 -0
  243. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Screenshot.py +0 -0
  244. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Telnet.py +0 -0
  245. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/dialogs_py.py +0 -0
  246. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/fixture.py +0 -0
  247. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/metadata.py +0 -0
  248. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/modifier.py +0 -0
  249. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/statistics.py +0 -0
  250. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/suitestatistics.py +0 -0
  251. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/tagsetter.py +0 -0
  252. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/tagstatistics.py +0 -0
  253. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/totalstatistics.py +0 -0
  254. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/__init__.py +0 -0
  255. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/__init__.py +0 -0
  256. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/highlighting.py +0 -0
  257. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/pyloggingconf.py +0 -0
  258. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/__init__.py +0 -0
  259. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/__init__.py +0 -0
  260. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/tokenizer.py +0 -0
  261. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/model/__init__.py +0 -0
  262. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/__init__.py +0 -0
  263. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/blockparsers.py +0 -0
  264. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/fileparser.py +0 -0
  265. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/parser.py +0 -0
  266. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/suitestructure.py +0 -0
  267. {robotframework-6.1.1 → robotframework-7.0}/src/robot/pythonpathsetter.py +0 -0
  268. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/__init__.py +0 -0
  269. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jsexecutionresult.py +0 -0
  270. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jswriter.py +0 -0
  271. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/executionerrors.py +0 -0
  272. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/messagefilter.py +0 -0
  273. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/suiteteardownfailed.py +0 -0
  274. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/visitor.py +0 -0
  275. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/__init__.py +0 -0
  276. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/randomizer.py +0 -0
  277. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/runkwregister.py +0 -0
  278. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/signalhandler.py +0 -0
  279. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/status.py +0 -0
  280. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/timeouts/__init__.py +0 -0
  281. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/timeouts/posix.py +0 -0
  282. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/timeouts/windows.py +0 -0
  283. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/application.py +0 -0
  284. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/argumentparser.py +0 -0
  285. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/asserts.py +0 -0
  286. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/charwidth.py +0 -0
  287. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/compress.py +0 -0
  288. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/encoding.py +0 -0
  289. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/error.py +0 -0
  290. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/etreewrapper.py +0 -0
  291. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/filereader.py +0 -0
  292. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/frange.py +0 -0
  293. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/htmlformatters.py +0 -0
  294. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/markuputils.py +0 -0
  295. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/match.py +0 -0
  296. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/recommendations.py +0 -0
  297. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/restreader.py +0 -0
  298. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotenv.py +0 -0
  299. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotinspect.py +0 -0
  300. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/sortable.py +0 -0
  301. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/typehints.py +0 -0
  302. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/finders.py +0 -0
  303. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/notfound.py +0 -0
  304. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/resolvable.py +0 -0
  305. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/dependency_links.txt +0 -0
  306. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/entry_points.txt +0 -0
  307. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/top_level.txt +0 -0
@@ -0,0 +1,362 @@
1
+ :root {
2
+ --text-color: black;
3
+ --background-color: white;
4
+ --primary-color: #ddd;
5
+ --secondary-color: #ccc;
6
+ --link-color: #15c;
7
+ --link-hover-color: #61c;
8
+ --highlight-color: #eee;
9
+ --target-color: #f9f9f9;
10
+ --pass-color: #97bd61;
11
+ --fail-color: #ce3e01;
12
+ --warn-color: #fed84f;
13
+ --pass-link-color: #098a09;
14
+ --warn-link-color: #927201;
15
+ --fail-link-color: #ce3e01;
16
+ --ascending-icon: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlBWnFr3cnIr0WQOyBmvzp13CpxQAOw==);
17
+ --descending-icon: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlAWnBr3cnIr0WROyDmvzp13CpxQAOw==);
18
+ }
19
+ @media (prefers-color-scheme: dark) {
20
+ :root {
21
+ color-scheme: dark;
22
+ }
23
+ }
24
+ [data-theme="dark"] {
25
+ --text-color: #e2e1d7;
26
+ --background-color: #1c2227;
27
+ --primary-color: #26373b;
28
+ --secondary-color: #424f5a;
29
+ --link-color: #8cc4ff;
30
+ --link-hover-color: #bb86fc;
31
+ --highlight-color: #002b36;
32
+ --target-color: #1a252e;
33
+ --pass-link-color: #97bd61;
34
+ --warn-link-color: #fed84f;
35
+ --fail-link-color: #ff9b8f;
36
+ --ascending-icon: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAJAgMAAACZCj6+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAlQTFRFAAAAfn5+////f/cqYgAAAAN0Uk5TAP//RFDWIQAAACdJREFUeJxjYHBgYGAMYGBgDWFgEA1lAAOtVQwMXCsYGJgWADkNDAA78QP9oKr7vwAAAABJRU5ErkJggg==);
37
+ --descending-icon: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAJAgMAAACZCj6+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAlQTFRFAAAA////fn5+K6jOaAAAAAN0Uk5TAP//RFDWIQAAACdJREFUeJxjYHBgYGAMYGBgDWFgEA1lAAOtVQwMXCsYGJgWADkNDAA78QP9oKr7vwAAAABJRU5ErkJggg==);
38
+ }
39
+ /* Generic and misc styles */
40
+ body {
41
+ font-family: Helvetica, sans-serif;
42
+ font-size: 0.8em;
43
+ color: black; /* Fallback value */
44
+ color: var(--text-color);
45
+ padding: 6px;
46
+ background: white; /* Fallback value */
47
+ background: var(--background-color);
48
+ margin-left: 15px;
49
+ }
50
+ body[theme-toggled] {
51
+ transition: background 0.3s, background-color 0.3s, color 0.3s, border-color 0.3s;
52
+ }
53
+ table {
54
+ table-layout: fixed;
55
+ word-wrap: break-word;
56
+ empty-cells: show;
57
+ font-size: 1em;
58
+ }
59
+ th, td {
60
+ vertical-align: top;
61
+ }
62
+ br {
63
+ mso-data-placement: same-cell; /* maintain line breaks in Excel */
64
+ }
65
+ hr {
66
+ background: #ccc; /* Fallback value */
67
+ background: var(--secondary-color);
68
+ height: 1px;
69
+ border: 0;
70
+ }
71
+ a, a:link, a:visited {
72
+ text-decoration: none;
73
+ color: #15c; /* Fallback value */
74
+ color: var(--link-color);
75
+ }
76
+ a > img {
77
+ border-width: 1px !important;
78
+ border-style: solid !important;
79
+ border-color: #15c !important; /* Fallback value */
80
+ border-color: var(--link-color) !important;
81
+ }
82
+ a:hover, a:active {
83
+ text-decoration: underline;
84
+ color: #61c; /* Fallback value */
85
+ color: var(--link-hover-color);
86
+ }
87
+ select {
88
+ background-color: white; /* Fallback value */
89
+ background-color: var(--background-color);
90
+ color: black; /* Fallback value */
91
+ color: var(--text-color);
92
+ border-width: 2px;
93
+ border-style: solid;
94
+ border-color: #ccc; /* Fallback value */
95
+ border-color: var(--secondary-color);
96
+ border-radius: 4px;
97
+ }
98
+ .parent-name {
99
+ font-size: 0.7em;
100
+ letter-spacing: -0.07em;
101
+ }
102
+ .message {
103
+ white-space: pre-wrap;
104
+ }
105
+ /* Headers */
106
+ #header {
107
+ width: 65em;
108
+ height: 3em;
109
+ margin: 20px 0 6px 0;
110
+ }
111
+ h1 {
112
+ float: left;
113
+ margin: 0 0 0.5em 0;
114
+ width: 75%;
115
+ }
116
+ h2 {
117
+ clear: left;
118
+ }
119
+ #generated {
120
+ float: right;
121
+ text-align: right;
122
+ font-size: 0.9em;
123
+ white-space: nowrap;
124
+ }
125
+ /* Documentation headers */
126
+ .doc > h2 {
127
+ font-size: 1.2em;
128
+ }
129
+ .doc > h3 {
130
+ font-size: 1.1em;
131
+ }
132
+ .doc > h4 {
133
+ font-size: 1.0em;
134
+ }
135
+ /* Status text colors -- !important allows using them in links */
136
+ .fail {
137
+ color: #ce3e01 !important; /* Fallback value */
138
+ color: var(--fail-link-color) !important;
139
+ font-weight: bold;
140
+ }
141
+ .pass {
142
+ color: #098a09 !important; /* Fallback value */
143
+ color: var(--pass-link-color) !important;
144
+ }
145
+ .skip {
146
+ color: #927201 !important; /* Fallback value */
147
+ color: var(--warn-link-color) !important;
148
+ font-weight: bold;
149
+ }
150
+ .label {
151
+ padding: 2px 5px;
152
+ font-size: 0.75em;
153
+ letter-spacing: 1px;
154
+ white-space: nowrap;
155
+ color: black; /* Fallback value */
156
+ color: var(--text-color);
157
+ background-color: #ddd; /* Fallback value */
158
+ background-color: var(--primary-color);
159
+ border-radius: 3px;
160
+ }
161
+ .label.debug, .label.trace, .label.error, .label.keyword {
162
+ letter-spacing: 0;
163
+ }
164
+ .label.pass, .label.fail, .label.error, .label.skip, .label.warn {
165
+ font-weight: bold;
166
+ }
167
+ .label.pass {
168
+ background-color: #97bd61; /* Fallback value */
169
+ background-color: var(--pass-color);
170
+ color: #000 !important;
171
+ }
172
+ .label.fail, .label.error {
173
+ background-color: #ce3e01; /* Fallback value */
174
+ background-color: var(--fail-color);
175
+ color: #fff !important;
176
+ }
177
+ .label.skip, .label.warn {
178
+ background-color: #fed84f; /* Fallback value */
179
+ background-color: var(--warn-color);
180
+ color: #000 !important;
181
+ }
182
+ /* Top right header */
183
+ #top-right-header {
184
+ position: fixed;
185
+ top: 0;
186
+ right: 0;
187
+ z-index: 1000;
188
+ width: 12em;
189
+ text-align: center;
190
+ }
191
+ #report-or-log-link a {
192
+ display: block;
193
+ background: black;
194
+ color: white;
195
+ text-decoration: none;
196
+ font-weight: bold;
197
+ letter-spacing: 0.1em;
198
+ padding: 0.3em 0;
199
+ border-bottom-left-radius: 4px;
200
+ }
201
+ #report-or-log-link a:hover {
202
+ color: #ddd;
203
+ }
204
+ #log-level-selector {
205
+ padding: 0.3em 0;
206
+ font-size: 0.9em;
207
+ border-bottom-left-radius: 4px;
208
+ background: #ddd; /* Fallback value */
209
+ background: var(--primary-color);
210
+ }
211
+ /* Statistics table */
212
+ .statistics {
213
+ width: 65em;
214
+ border-collapse: collapse;
215
+ empty-cells: show;
216
+ margin-bottom: 1em;
217
+ }
218
+ .statistics tr:hover {
219
+ background: #eee; /* Fallback value */
220
+ background: var(--highlight-color);
221
+ cursor: pointer;
222
+ }
223
+ .statistics th, .statistics td {
224
+ border-width: 1px;
225
+ border-style: solid;
226
+ border-color: #ccc; /* Fallback value */
227
+ border-color: var(--secondary-color);
228
+ padding: 0.1em 0.3em;
229
+ }
230
+ .statistics th {
231
+ background-color: #ddd; /* Fallback value */
232
+ background-color: var(--primary-color);
233
+ padding: 0.2em 0.3em;
234
+ }
235
+ .statistics td {
236
+ vertical-align: middle;
237
+ }
238
+ .stats-col-stat {
239
+ width: 4.5em;
240
+ text-align: center;
241
+ }
242
+ .stats-col-elapsed {
243
+ width: 5.5em;
244
+ text-align: center;
245
+ }
246
+ .stats-col-graph {
247
+ width: 9em;
248
+ }
249
+ th.stats-col-graph:hover {
250
+ cursor: default;
251
+ }
252
+ .stat-name {
253
+ float: left;
254
+ }
255
+ .stat-name a, .stat-name span {
256
+ font-weight: bold;
257
+ }
258
+ .tag-links {
259
+ font-size: 0.9em;
260
+ float: right;
261
+ margin-top: 0.05em;
262
+ }
263
+ .tag-links span {
264
+ margin-left: 0.2em;
265
+ }
266
+ /* Statistics graph */
267
+ .graph, .empty-graph {
268
+ border-width: 1px;
269
+ border-style: solid;
270
+ border-color: #ccc; /* Fallback value */
271
+ border-color: var(--secondary-color);
272
+ width: auto;
273
+ height: 7px;
274
+ padding: 0;
275
+ }
276
+ .empty-graph {
277
+ background: #eee; /* Fallback value */
278
+ background: var(--highlight-color);
279
+ }
280
+ .pass-bar, .fail-bar, .skip-bar {
281
+ float: left;
282
+ height: 100%;
283
+ }
284
+ .fail-bar {
285
+ background: #ce3e01; /* Fallback value */
286
+ background: var(--fail-color);
287
+ }
288
+ .pass-bar {
289
+ background: #97bd61; /* Fallback value */
290
+ background: var(--pass-color);
291
+ }
292
+ .skip-bar {
293
+ background: #fed84f; /* Fallback value */
294
+ background: var(--warn-color);
295
+ }
296
+ /* Tablesorter - adapted from provided Blue Skin */
297
+ .tablesorter-header {
298
+ background-image: url(data:image/gif;base64,R0lGODlhCwAJAIAAAH9/fwAAACH5BAEAAAEALAAAAAALAAkAAAIRjAOnBr3cnIr0WUjTrC9e9BQAOw==);
299
+ background-repeat: no-repeat;
300
+ background-position: center right;
301
+ cursor: pointer;
302
+ }
303
+ .tablesorter-header:hover {
304
+ background-color: #ccc; /* Fallback value */
305
+ background-color: var(--secondary-color);
306
+ }
307
+ .tablesorter-headerAsc {
308
+ background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlBWnFr3cnIr0WQOyBmvzp13CpxQAOw==); /* Fallback value */
309
+ background-image: var(--ascending-icon);
310
+ background-color: #ccc !important; /* Fallback value */
311
+ background-color: var(--secondary-color) !important;
312
+ }
313
+ .tablesorter-headerDesc {
314
+ background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlAWnBr3cnIr0WROyDmvzp13CpxQAOw==); /* Fallback value */
315
+ background-image: var(--descending-icon);
316
+ background-color: #ccc !important; /* Fallback value */
317
+ background-color: var(--secondary-color) !important;
318
+ }
319
+ .sorter-false {
320
+ background-image: none;
321
+ cursor: default;
322
+ }
323
+ .sorter-false:hover {
324
+ background-color: #ddd; /* Fallback value */
325
+ background-color: var(--primary-color);
326
+ }
327
+ #theme-toggle {
328
+ position: fixed;
329
+ right: 0;
330
+ bottom: 0;
331
+ width: 28px;
332
+ height: 28px;
333
+ border: none;
334
+ padding: 4px;
335
+ z-index: 1000;
336
+ border-top-left-radius: 3px;
337
+ border-top-right-radius: 3px;
338
+ background: var(--highlight-color);
339
+ }
340
+ [data-theme="dark"] .dark-mode-icon,
341
+ [data-theme="light"] .light-mode-icon {
342
+ display: none;
343
+ }
344
+ [data-theme="dark"] .light-mode-icon,
345
+ [data-theme="light"] .dark-mode-icon {
346
+ display: block;
347
+ }
348
+
349
+ @keyframes highlight {
350
+ 0% {
351
+ background: var(--primary-color)
352
+ }
353
+ 100% {
354
+ background: var(--target-color);
355
+ }
356
+ }
357
+
358
+ :target {
359
+ background: var(--target-color);
360
+ transition: background 0.3s;
361
+ animation: highlight 4s;
362
+ }
@@ -9,14 +9,12 @@
9
9
  margin-top: 0.1em;
10
10
  }
11
11
  .doc table {
12
- border: 1px solid #ccc;
13
12
  background: transparent;
14
13
  border-collapse: collapse;
15
14
  empty-cells: show;
16
15
  font-size: 0.9em;
17
16
  }
18
17
  .doc table th, .doc table td {
19
- border: 1px solid #ccc;
20
18
  background: transparent;
21
19
  padding: 0.1em 0.3em;
22
20
  height: 1.2em;
@@ -26,24 +24,32 @@
26
24
  letter-spacing: 0.1em;
27
25
  }
28
26
  .doc pre {
27
+ border-radius: 2px;
29
28
  font-size: 1.1em;
30
29
  letter-spacing: 0.05em;
31
- background: #f4f4f4;
30
+ background: #eee; /* Fallback value */
31
+ background: var(--highlight-color);
32
32
  }
33
33
  .doc code {
34
+ border-radius: 2px;
34
35
  padding: 0 0.2em;
35
36
  letter-spacing: 0.05em;
36
- background: #eee;
37
+ background: #eee; /* Fallback value */
38
+ background: var(--highlight-color);
37
39
  }
38
40
  .doc li {
39
41
  list-style-position: inside;
40
42
  list-style-type: square;
41
43
  }
42
- .doc img {
43
- border: 1px solid #ccc;
44
+ .doc img, .doc table, .doc table th, .doc table td {
45
+ border-width: 1px;
46
+ border-style: solid;
47
+ border-color: #ccc; /* Fallback value */
48
+ border-color: var(--secondary-color);
44
49
  }
45
50
  .doc hr {
46
- background: #ccc;
51
+ background: #ccc; /* Fallback value */
52
+ background: var(--secondary-color);
47
53
  height: 1px;
48
54
  border: 0;
49
55
  }
@@ -1,8 +1,25 @@
1
1
  /* Icons are from Open Iconic <https://useiconic.com/open/>.
2
2
  Licensed under the MIT License. */
3
+ :root {
4
+ --icon-filter: invert(0);
5
+ --icon-highlight: var(--secondary-color);
6
+ --elapsed-color: #666;
7
+ }
8
+
9
+ /* @media (prefers-color-scheme: dark) { */
10
+
11
+ [data-theme="dark"] {
12
+ --icon-filter: invert(1);
13
+ --icon-highlight: #a39990;
14
+ --elapsed-color: #999;
15
+ }
16
+
3
17
  /* Containers */
4
18
  .suite, .test, #errors {
5
- border: 1px solid #ccc;
19
+ border-color: #ccc; /* Fallback value */
20
+ border-color: var(--secondary-color);
21
+ border-width: 1px;
22
+ border-style: solid;
6
23
  padding: 0.3em 0.2em;
7
24
  margin: 0.2em 0;
8
25
  }
@@ -31,8 +48,10 @@
31
48
  }
32
49
  .element-header:hover {
33
50
  cursor: pointer;
34
- background-color: #eee;
35
- border-color: #ccc;
51
+ background-color: #eee; /* Fallback value */
52
+ background-color: var(--highlight-color);
53
+ border-color: #ccc; /* Fallback value */
54
+ border-color: var(--secondary-color);
36
55
  }
37
56
  .element-header-toggle {
38
57
  position: absolute;
@@ -42,10 +61,14 @@
42
61
  background-position: center;
43
62
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAQAAABKxSfDAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCR0JChSkZz20AAAAGklEQVQI12NgQAKMDKzInP8IDhOqMk4G7AAANQwBE427PYUAAAAASUVORK5CYII=);
44
63
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0wIDB2Mmg4di0yaC04eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzKSIgLz4KPC9zdmc+), none;
64
+ filter: var(--icon-filter);
45
65
  height: 10px;
46
66
  width: 10px;
47
67
  background-size: 6px 6px;
48
- border: 1px solid #ccc;
68
+ border-color: #ccc; /* Fallback value */
69
+ border-color: var(--icon-highlight);
70
+ border-width: 1px;
71
+ border-style: solid;
49
72
  border-radius: 2px;
50
73
  }
51
74
  .closed > .element-header-toggle {
@@ -53,7 +76,8 @@
53
76
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zIDB2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTN2LTNoLTJ6IiAvPgo8L3N2Zz4=), none;
54
77
  }
55
78
  .element-header:hover > .element-header-toggle {
56
- background-color: #ccc;
79
+ background-color: #ccc; /* Fallback value */
80
+ background-color: var(--icon-highlight);
57
81
  }
58
82
  .element-header-right:hover ~ .element-header-toggle {
59
83
  background-color: transparent;
@@ -73,23 +97,31 @@
73
97
  }
74
98
  .name {
75
99
  font-weight: bold;
100
+ white-space: pre-wrap;
101
+ }
102
+ .arg, .assign {
103
+ white-space: pre-wrap;
76
104
  }
77
105
  .elapsed {
78
106
  float: right;
79
- color: #666;
107
+ color: #666; /* Fallback value */
108
+ color: var(--elapsed-color);
80
109
  padding-left: 1em;
81
110
  }
82
111
  .link {
83
112
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHlJREFUGJVtzrEJwmAQBtCn6ASuIKTIBhY2gmghBiJYB1udwk10B8FJbKMBcQFbtbkfJHrVwfu+4/idJR64Y9H7E3higj5O3S8Y44ApLnjhnXCNGhV2yNGggDJwiC02gavUbpDFvscRo4QdXOMKDHBufz3HLYKzNn4AbSkV3fncGQYAAAAASUVORK5CYII=);
84
113
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik01Ljg4LjAzYy0uMTguMDEtLjM2LjAzLS41My4wOS0uMjcuMS0uNTMuMjUtLjc1LjQ3YS41LjUgMCAxIDAgLjY5LjY5Yy4xMS0uMTEuMjQtLjE3LjM4LS4yMi4zNS0uMTIuNzgtLjA3IDEuMDYuMjIuMzkuMzkuMzkgMS4wNCAwIDEuNDRsLTEuNSAxLjVjLS40NC40NC0uOC40OC0xLjA2LjQ3LS4yNi0uMDEtLjQxLS4xMy0uNDEtLjEzYS41LjUgMCAxIDAtLjUuODhzLjM0LjIyLjg0LjI1Yy41LjAzIDEuMi0uMTYgMS44MS0uNzhsMS41LTEuNWMuNzgtLjc4Ljc4LTIuMDQgMC0yLjgxLS4yOC0uMjgtLjYxLS40NS0uOTctLjUzLS4xOC0uMDQtLjM4LS4wNC0uNTYtLjAzem0tMiAyLjMxYy0uNS0uMDItMS4xOS4xNS0xLjc4Ljc1bC0xLjUgMS41Yy0uNzguNzgtLjc4IDIuMDQgMCAyLjgxLjU2LjU2IDEuMzYuNzIgMi4wNi40Ny4yNy0uMS41My0uMjUuNzUtLjQ3YS41LjUgMCAxIDAtLjY5LS42OWMtLjExLjExLS4yNC4xNy0uMzguMjItLjM1LjEyLS43OC4wNy0xLjA2LS4yMi0uMzktLjM5LS4zOS0xLjA0IDAtMS40NGwxLjUtMS41Yy40LS40Ljc1LS40NSAxLjAzLS40NC4yOC4wMS40Ny4wOS40Ny4wOWEuNS41IDAgMSAwIC40NC0uODhzLS4zNC0uMi0uODQtLjIyeiIKICAvPgo8L3N2Zz4=), none;
114
+ filter: var(--icon-filter);
85
115
  }
86
116
  .expand {
87
117
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAADtJREFUGJVjYCACKDAwMByA0ljFDjAwMPxnYGB4ABVQgLL/Q+VQBB6gseGmIivCkERXhFUSWRFOSawAAEl7E3uv1iMcAAAAAElFTkSuQmCC);
88
118
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0xLjUgMGwtMS41IDEuNSA0IDQgNC00LTEuNS0xLjUtMi41IDIuNS0yLjUtMi41eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxKSIgLz4KPC9zdmc+), none;
119
+ filter: var(--icon-filter);
89
120
  }
90
121
  .collapse {
91
122
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAC5JREFUGJVjYCARNEAxTsn/UIyhCFkSQxG6ThQ+C5IpjWhG1yNb4YDFTdjEMAEACi8Q++9Y9TAAAAAASUVORK5CYII=);
92
123
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik00IDBsLTQgNCAxLjUgMS41IDIuNS0yLjUgMi41IDIuNSAxLjUtMS41LTQtNHoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMSkiIC8+Cjwvc3ZnPg==), none;
124
+ filter: var(--icon-filter);
93
125
  }
94
126
  .expand, .collapse, .link {
95
127
  float: left;
@@ -101,7 +133,10 @@
101
133
  background-size: 8px 8px;
102
134
  background-repeat: no-repeat;
103
135
  background-position: center;
104
- border: 1px solid #ccc;
136
+ border-color: #ccc; /* Fallback value */
137
+ border-color: var(--icon-highlight);
138
+ border-width: 1px;
139
+ border-style: solid;
105
140
  border-radius: 2px;
106
141
  }
107
142
  .link {
@@ -111,7 +146,8 @@
111
146
  visibility: visible;
112
147
  }
113
148
  .expand:hover, .collapse:hover, .link:hover {
114
- background-color: #ccc;
149
+ background-color: #ccc; /* Fallback value */
150
+ background-color: var(--icon-highlight);
115
151
  }
116
152
  /* Messages and errors */
117
153
  .messages .time, .messages .message {
@@ -152,11 +188,16 @@
152
188
  .message-row:hover .select-message div {
153
189
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCR0MOzhWKZQOAAAASUlEQVQY032PsRHAIAwDX9BkicD+W8UMEqegAQJWKZ/+3sLZJhFGQEZzNaIa4ibh66En867VNaIeoP5WppNuIGoAlOm3g5VC1AdYeQv1BZPRSgAAAABJRU5ErkJggg==);
154
190
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0wIDB2MWg4di0xaC04em0wIDJ2MWg2di0xaC02em0wIDJ2MWg4di0xaC04em0wIDJ2MWg2di0xaC02eiIgLz4KPC9zdmc+), none;
155
- border: 1px solid #ccc;
191
+ filter: var(--icon-filter);
192
+ border-color: #ccc; /* Fallback value */
193
+ border-color: var(--icon-highlight);
194
+ border-width: 1px;
195
+ border-style: solid;
156
196
  border-radius: 2px;
157
197
  }
158
198
  .select-message:hover div {
159
- background-color: #ccc;
199
+ background-color: #ccc; /* Fallback value */
200
+ background-color: var(--icon-highlight);
160
201
  cursor: pointer;
161
202
  }
162
203
  /* Message tables - these MUST NOT be combined together because otherwise
@@ -22,10 +22,11 @@
22
22
  <script type="text/javascript" src="util.js"></script>
23
23
  <script type="text/javascript" src="testdata.js"></script>
24
24
  <script type="text/javascript" src="view.js"></script>
25
+ <script type="text/javascript" src="../common/storage.js"></script>
25
26
  <!-- JS MODEL --><script type="text/javascript" src="../testdata/data.js"></script>
26
27
  <title></title>
27
28
  </head>
28
- <body>
29
+ <body data-theme="dark">
29
30
  <div id="javascript-disabled">
30
31
  <h1>Opening Robot Framework log failed</h1>
31
32
  <ul>
@@ -35,12 +36,13 @@
35
36
  </ul>
36
37
  </div>
37
38
  <script type="text/javascript">removeJavaScriptDisabledWarning();</script>
38
-
39
39
  <div id="header"></div>
40
40
  <div id="statistics-container"></div>
41
41
 
42
42
  <script type="text/javascript">
43
43
  $(document).ready(function() {
44
+ storage.init();
45
+ theme.init(storage);
44
46
  try {
45
47
  var topsuite = window.testdata.suite();
46
48
  } catch (error) {
@@ -48,6 +50,7 @@ $(document).ready(function() {
48
50
  return;
49
51
  }
50
52
  initLayout(topsuite.name, 'Log');
53
+ theme.reflectPreference();
51
54
  addStatistics();
52
55
  addErrors();
53
56
  addExecutionLog(topsuite);
@@ -88,25 +91,6 @@ function drawErrorsRecursively(errors, target) {
88
91
  // Errors may have moved scroll position. Resetting location re-scrolls.
89
92
  if (window.location.hash)
90
93
  window.location.replace(window.location.hash);
91
- highlightLinkTarget();
92
- }
93
- }
94
-
95
- function highlightLinkTarget() {
96
- if (window.location.hash) {
97
- var target = $(window.location.hash);
98
- highlight(target);
99
- }
100
- }
101
-
102
- function highlight(element, color) {
103
- if (color === undefined)
104
- color = 242;
105
- if (color < 255) {
106
- element.css({'background-color': 'rgb('+color+','+color+','+color+')'});
107
- setTimeout(function () { highlight(element, color+1); }, 300);
108
- } else {
109
- element.css({'background-color': ''});
110
94
  }
111
95
  }
112
96
 
@@ -124,7 +108,6 @@ function makeElementVisible(id) {
124
108
  expandFailed(window.testdata.findLoaded(util.last(ids)));
125
109
  window.location.hash = id;
126
110
  document.getElementById(id).scrollIntoView();
127
- highlightLinkTarget();
128
111
  }
129
112
  });
130
113
  }
@@ -322,8 +305,9 @@ function addExecutionLog(main) {
322
305
  <div class="element-header-left" title="${type} {{if name}}{{html fullName}} {{/if}}[${status}]">
323
306
  <span class="elapsed" title="Elapsed time">${times.elapsedTime}</span>
324
307
  <span class="label ${status.toLowerCase()}">${type}</span>
325
- <span>{{html assign}}</span>
308
+ <span class="assign">{{html assign}}</span>
326
309
  <span class="name"><span class="parent-name">{{html libname}}{{if libname}} . {{/if}}</span>{{html name}}</span>
310
+ &nbsp;
327
311
  <span class="arg">{{html arguments}}</span>
328
312
  </div>
329
313
  <div class="element-header-right" onclick="stopPropagation(event)">
@@ -357,6 +341,12 @@ function addExecutionLog(main) {
357
341
  <th>Start / End / Elapsed:</th>
358
342
  <td>${times.startTime} / ${times.endTime} / ${times.elapsedTime}</td>
359
343
  </tr>
344
+ {{if message()}}
345
+ <tr>
346
+ <th>Message:</th>
347
+ <td class="message">{{html message()}}</td>
348
+ </tr>
349
+ {{/if}}
360
350
  </table>
361
351
  </div>
362
352
  </div>
@@ -379,6 +369,7 @@ function addExecutionLog(main) {
379
369
  <div id="log-level-selector">
380
370
  Log level:
381
371
  <select onchange="logLevelSelected(this.options[selectedIndex].value)">
372
+ <option value="3">WARN</option>
382
373
  <option value="2">INFO</option>
383
374
  <option value="1">DEBUG</option>
384
375
  {{if showTrace()}}<option value="0">TRACE</option>{{/if}}
@@ -14,7 +14,6 @@ window.model = (function () {
14
14
  suite.populateSuites = createIterablePopulator('Suite');
15
15
  suite.childrenNames = ['keyword', 'suite', 'test'];
16
16
  suite.callWhenChildrenReady = function (callable) { callable(); };
17
- suite.message = data.message;
18
17
  suite.children = function () {
19
18
  return suite.keywords().concat(suite.tests()).concat(suite.suites());
20
19
  };
@@ -110,6 +109,7 @@ window.model = (function () {
110
109
  name: data.name,
111
110
  doc: data.doc,
112
111
  status: data.status,
112
+ message: data.message,
113
113
  times: data.times,
114
114
  id: data.parent ? data.parent.id + '-' + data.id : data.id
115
115
  };
@@ -131,7 +131,6 @@ window.model = (function () {
131
131
  return test.keywords();
132
132
  };
133
133
  test.tags = data.tags;
134
- test.message = data.message;
135
134
  test.matchesTagPattern = function (pattern) {
136
135
  return containsTagPattern(test.tags, pattern);
137
136
  };
@@ -143,13 +142,12 @@ window.model = (function () {
143
142
 
144
143
  function Keyword(data) {
145
144
  var kw = createModelObject(data);
146
- var flatTypes = ['RETURN', 'BREAK', 'CONTINUE'];
147
145
  kw.libname = data.libname;
148
146
  kw.fullName = (kw.libname ? kw.libname + '.' : '') + kw.name;
149
147
  kw.type = data.type;
150
148
  kw.template = 'keywordTemplate';
151
149
  kw.arguments = data.args;
152
- kw.assign = data.assign + (data.assign ? ' =' : '');
150
+ kw.assign = data.assign + (data.assign ? ' = ' : '');
153
151
  kw.tags = data.tags;
154
152
  kw.timeout = data.timeout;
155
153
  kw.populateKeywords = createIterablePopulator('Keyword');