robotframework 6.1rc1__zip → 7.0a1__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.
- {robotframework-6.1rc1/src/robotframework.egg-info → robotframework-7.0a1}/PKG-INFO +3 -6
- {robotframework-6.1rc1 → robotframework-7.0a1}/setup.py +2 -5
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/interfaces.py +36 -49
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/parsing.py +4 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/gatherfailed.py +2 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/languages.py +61 -25
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/settings.py +8 -5
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.css +4 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.html +9 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/model.js +2 -4
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/testdata.js +10 -3
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/template.py +3 -3
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/builder.py +0 -8
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/datatypes.py +9 -10
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/htmlutils.py +4 -7
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/jsonbuilder.py +14 -10
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/model.py +13 -25
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/robotbuilder.py +14 -4
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/xmlbuilder.py +8 -8
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/xmlwriter.py +12 -38
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/BuiltIn.py +215 -189
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Collections.py +2 -9
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/DateTime.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/OperatingSystem.py +4 -3
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Process.py +26 -27
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Remote.py +40 -36
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/String.py +4 -4
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/XML.py +7 -8
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/__init__.py +2 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/dialogs_py.py +14 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/__init__.py +4 -4
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/body.py +14 -6
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/configurer.py +19 -15
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/control.py +155 -85
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/filter.py +31 -25
- robotframework-7.0a1/src/robot/model/keyword.py +70 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/message.py +19 -10
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/modelobject.py +2 -8
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/modifier.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/namepatterns.py +3 -25
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/stats.py +9 -15
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/tags.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/testcase.py +12 -21
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/testsuite.py +43 -24
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/visitor.py +35 -8
- robotframework-7.0a1/src/robot/output/console/dotted.py +90 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/quiet.py +3 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/verbose.py +60 -60
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/debugfile.py +36 -23
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/filelogger.py +16 -13
- robotframework-7.0a1/src/robot/output/listeners.py +586 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/logger.py +164 -77
- robotframework-7.0a1/src/robot/output/loggerapi.py +152 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/loggerhelper.py +23 -56
- robotframework-7.0a1/src/robot/output/output.py +158 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/stdoutlogsplitter.py +8 -5
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/xmllogger.py +163 -109
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/blocklexers.py +17 -13
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/context.py +12 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/lexer.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/settings.py +6 -3
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/statementlexers.py +39 -10
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/tokens.py +27 -29
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/model/blocks.py +19 -6
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/model/statements.py +184 -84
- robotframework-7.0a1/src/robot/parsing/model/visitor.py +102 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/expandkeywordmatcher.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jsbuildingcontext.py +8 -6
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jsmodelbuilders.py +88 -61
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/stringcache.py +4 -3
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/xunitwriter.py +15 -21
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/__init__.py +3 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/configurer.py +12 -9
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/flattenkeywordmatcher.py +8 -8
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/keywordremover.py +71 -54
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/merger.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/model.py +400 -316
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/modeldeprecation.py +9 -3
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/resultbuilder.py +21 -23
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/xmlelementhandlers.py +76 -40
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/run.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/__init__.py +1 -1
- robotframework-7.0a1/src/robot/running/arguments/argumentconverter.py +101 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentmapper.py +16 -14
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentparser.py +3 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentresolver.py +41 -33
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentspec.py +24 -90
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentvalidator.py +34 -27
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/customconverters.py +14 -11
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/embedded.py +23 -26
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/typeconverters.py +210 -220
- robotframework-7.0a1/src/robot/running/arguments/typeinfo.py +367 -0
- robotframework-7.0a1/src/robot/running/arguments/typevalidator.py +62 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/bodyrunner.py +83 -68
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/builders.py +15 -25
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/parsers.py +15 -10
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/settings.py +9 -17
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/transformers.py +166 -308
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/context.py +80 -25
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/handlers.py +11 -16
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/handlerstore.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/librarykeywordrunner.py +9 -17
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/model.py +156 -36
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/namespace.py +18 -19
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/statusreporter.py +13 -12
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/suiterunner.py +18 -21
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/testlibraries.py +35 -39
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/usererrorhandler.py +8 -8
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/userkeyword.py +13 -8
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/userkeywordrunner.py +18 -21
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/testdoc.py +18 -13
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/__init__.py +50 -35
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/connectioncache.py +64 -59
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/encodingsniffer.py +9 -4
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/escaping.py +11 -9
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/markupwriters.py +20 -13
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/normalizing.py +9 -24
- robotframework-7.0a1/src/robot/utils/notset.py +33 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/platform.py +15 -5
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotpath.py +1 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robottime.py +120 -88
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robottypes.py +16 -31
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/setter.py +0 -5
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/text.py +7 -4
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/unic.py +2 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/__init__.py +2 -2
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/assigner.py +17 -19
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/evaluation.py +20 -17
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/filesetter.py +80 -80
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/replacer.py +33 -36
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/scopes.py +3 -3
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/search.py +66 -41
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/store.py +14 -16
- robotframework-7.0a1/src/robot/variables/tablesetter.py +164 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/variables.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/version.py +1 -1
- {robotframework-6.1rc1 → robotframework-7.0a1/src/robotframework.egg-info}/PKG-INFO +3 -6
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/SOURCES.txt +3 -4
- {robotframework-6.1rc1 → robotframework-7.0a1}/tasks.py +6 -6
- robotframework-6.1rc1/src/robot/libraries/Reserved.py +0 -48
- robotframework-6.1rc1/src/robot/model/keyword.py +0 -173
- robotframework-6.1rc1/src/robot/output/console/dotted.py +0 -90
- robotframework-6.1rc1/src/robot/output/listenerarguments.py +0 -165
- robotframework-6.1rc1/src/robot/output/listenermethods.py +0 -113
- robotframework-6.1rc1/src/robot/output/listeners.py +0 -174
- robotframework-6.1rc1/src/robot/output/output.py +0 -95
- robotframework-6.1rc1/src/robot/parsing/model/visitor.py +0 -67
- robotframework-6.1rc1/src/robot/running/arguments/argumentconverter.py +0 -79
- robotframework-6.1rc1/src/robot/running/arguments/typevalidator.py +0 -56
- robotframework-6.1rc1/src/robot/running/modelcombiner.py +0 -32
- robotframework-6.1rc1/src/robot/variables/tablesetter.py +0 -156
- {robotframework-6.1rc1 → robotframework-7.0a1}/AUTHORS.rst +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/BUILD.rst +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/CONTRIBUTING.rst +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/COPYRIGHT.txt +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/INSTALL.rst +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/LICENSE.txt +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/MANIFEST.in +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/README.rst +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/setup.cfg +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/__main__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/deco.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/exceptions.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/logger.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/errors.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/common/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/common/js_disabled.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/common/storage.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/htmlfilewriter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/jsonwriter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.min.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/doc_formatting.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/libdoc.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/libdoc.html +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/print.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/pygments.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/common.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/fileloading.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/print.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/report.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/report.html +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/util.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/view.js +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/testdoc.html +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdoc.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/consoleviewer.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/htmlwriter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/jsonwriter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/output.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/standardtypes.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/writer.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Dialogs.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Easter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Screenshot.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Telnet.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/fixture.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/itemlist.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/metadata.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/statistics.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/suitestatistics.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/tagsetter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/tagstatistics.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/totalstatistics.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/highlighting.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/librarylogger.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/pyloggingconf.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/tokenizer.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/model/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/blockparsers.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/fileparser.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/parser.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/suitestructure.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/pythonpathsetter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/rebot.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jsexecutionresult.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jswriter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/logreportwriters.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/outputwriter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/resultwriter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/executionerrors.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/executionresult.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/messagefilter.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/suiteteardownfailed.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/visitor.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/dynamicmethods.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/importer.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/libraryscopes.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/outputcapture.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/randomizer.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/runkwregister.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/signalhandler.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/status.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/timeouts/__init__.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/timeouts/posix.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/timeouts/windows.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/application.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/argumentparser.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/asserts.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/charwidth.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/compress.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/dotdict.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/encoding.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/error.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/etreewrapper.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/filereader.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/frange.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/htmlformatters.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/importer.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/markuputils.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/match.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/misc.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/recommendations.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/restreader.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotenv.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotinspect.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotio.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/sortable.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/typehints.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/finders.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/notfound.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/resolvable.py +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/dependency_links.txt +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/entry_points.txt +0 -0
- {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: robotframework
|
|
3
|
-
Version:
|
|
3
|
+
Version: 7.0a1
|
|
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,9 +10,8 @@ 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-
|
|
13
|
+
Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.0a1.rst
|
|
14
14
|
Project-URL: Slack, http://slack.robotframework.org
|
|
15
|
-
Project-URL: Twitter, https://twitter.com/robotframework
|
|
16
15
|
Description: Robot Framework
|
|
17
16
|
===============
|
|
18
17
|
|
|
@@ -171,8 +170,6 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
171
170
|
Classifier: Operating System :: OS Independent
|
|
172
171
|
Classifier: Programming Language :: Python :: 3
|
|
173
172
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
174
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
175
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
176
173
|
Classifier: Programming Language :: Python :: 3.8
|
|
177
174
|
Classifier: Programming Language :: Python :: 3.9
|
|
178
175
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -184,5 +181,5 @@ Classifier: Topic :: Software Development :: Testing
|
|
|
184
181
|
Classifier: Topic :: Software Development :: Testing :: Acceptance
|
|
185
182
|
Classifier: Topic :: Software Development :: Testing :: BDD
|
|
186
183
|
Classifier: Framework :: Robot Framework
|
|
187
|
-
Requires-Python: >=3.
|
|
184
|
+
Requires-Python: >=3.8
|
|
188
185
|
Description-Content-Type: text/x-rst
|
|
@@ -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 = '
|
|
9
|
+
VERSION = '7.0a1'
|
|
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'
|
|
@@ -22,8 +22,6 @@ License :: OSI Approved :: Apache Software License
|
|
|
22
22
|
Operating System :: OS Independent
|
|
23
23
|
Programming Language :: Python :: 3
|
|
24
24
|
Programming Language :: Python :: 3 :: Only
|
|
25
|
-
Programming Language :: Python :: 3.6
|
|
26
|
-
Programming Language :: Python :: 3.7
|
|
27
25
|
Programming Language :: Python :: 3.8
|
|
28
26
|
Programming Language :: Python :: 3.9
|
|
29
27
|
Programming Language :: Python :: 3.10
|
|
@@ -57,7 +55,6 @@ setup(
|
|
|
57
55
|
'Documentation': 'https://robotframework.org/robotframework',
|
|
58
56
|
'Release Notes': f'https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-{VERSION}.rst',
|
|
59
57
|
'Slack': 'http://slack.robotframework.org',
|
|
60
|
-
'Twitter': 'https://twitter.com/robotframework',
|
|
61
58
|
},
|
|
62
59
|
download_url = 'https://pypi.org/project/robotframework',
|
|
63
60
|
license = 'Apache License 2.0',
|
|
@@ -66,7 +63,7 @@ setup(
|
|
|
66
63
|
long_description_content_type = 'text/x-rst',
|
|
67
64
|
keywords = KEYWORDS,
|
|
68
65
|
platforms = 'any',
|
|
69
|
-
python_requires='>=3.
|
|
66
|
+
python_requires='>=3.8',
|
|
70
67
|
classifiers = CLASSIFIERS,
|
|
71
68
|
package_dir = {'': 'src'},
|
|
72
69
|
package_data = {'robot': PACKAGE_DATA},
|
|
@@ -34,9 +34,6 @@ base class.
|
|
|
34
34
|
.. note:: These classes are not exposed via the top level :mod:`robot.api`
|
|
35
35
|
package and need to imported via :mod:`robot.api.interfaces`.
|
|
36
36
|
|
|
37
|
-
.. note:: Using this module requires having the typing_extensions__ module
|
|
38
|
-
installed when using Python 3.6 or 3.7.
|
|
39
|
-
|
|
40
37
|
This module is new in Robot Framework 6.1.
|
|
41
38
|
|
|
42
39
|
__ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#dynamic-library-api
|
|
@@ -44,22 +41,12 @@ __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#
|
|
|
44
41
|
__ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-version-2
|
|
45
42
|
__ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-version-3
|
|
46
43
|
__ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#parser-interface
|
|
47
|
-
__ https://pypi.org/project/typing-extensions/
|
|
48
44
|
"""
|
|
49
45
|
|
|
50
46
|
import sys
|
|
51
47
|
from abc import ABC, abstractmethod
|
|
52
48
|
from pathlib import Path
|
|
53
|
-
from typing import Any,
|
|
54
|
-
# Need to use version check and not try/except to support Mypy's stubgen.
|
|
55
|
-
if sys.version_info >= (3, 8):
|
|
56
|
-
from typing import TypedDict
|
|
57
|
-
else:
|
|
58
|
-
try:
|
|
59
|
-
from typing_extensions import TypedDict
|
|
60
|
-
except ImportError:
|
|
61
|
-
raise ImportError("Using the 'robot.api.interfaces' module requires having "
|
|
62
|
-
"the 'typing_extensions' module installed with Python < 3.8.")
|
|
49
|
+
from typing import Any, Optional, Mapping, Sequence, TypedDict, Union
|
|
63
50
|
if sys.version_info >= (3, 10):
|
|
64
51
|
from types import UnionType
|
|
65
52
|
else:
|
|
@@ -72,32 +59,32 @@ from robot.running import TestDefaults, TestSuite
|
|
|
72
59
|
|
|
73
60
|
# Type aliases used by DynamicLibrary and HybridLibrary.
|
|
74
61
|
Name = str
|
|
75
|
-
PositArgs =
|
|
76
|
-
NamedArgs =
|
|
62
|
+
PositArgs = Sequence[Any]
|
|
63
|
+
NamedArgs = Mapping[str, Any]
|
|
77
64
|
Documentation = str
|
|
78
|
-
Arguments =
|
|
65
|
+
Arguments = Sequence[
|
|
79
66
|
Union[
|
|
80
|
-
str,
|
|
81
|
-
|
|
82
|
-
|
|
67
|
+
str, # Name with possible default like `arg` or `arg=1`.
|
|
68
|
+
'tuple[str]', # Name without a default like `('arg',)`.
|
|
69
|
+
'tuple[str, Any]' # Name and default like `('arg', 1)`.
|
|
83
70
|
]
|
|
84
71
|
]
|
|
85
|
-
|
|
86
|
-
type,
|
|
87
|
-
str,
|
|
88
|
-
UnionType,
|
|
89
|
-
|
|
72
|
+
TypeHint = Union[
|
|
73
|
+
type, # Actual type.
|
|
74
|
+
str, # Type name or alias.
|
|
75
|
+
UnionType, # Union syntax (e.g. `int | float`).
|
|
76
|
+
'tuple[TypeHint, ...]' # Tuple of type hints. Behaves like a union.
|
|
90
77
|
]
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
78
|
+
TypeHints = Union[
|
|
79
|
+
Mapping[str, TypeHint], # Types by name.
|
|
80
|
+
Sequence[ # Types by position.
|
|
94
81
|
Union[
|
|
95
|
-
|
|
96
|
-
None
|
|
82
|
+
TypeHint, # Type hint.
|
|
83
|
+
None # No type hint.
|
|
97
84
|
]
|
|
98
85
|
]
|
|
99
86
|
]
|
|
100
|
-
Tags =
|
|
87
|
+
Tags = Sequence[str]
|
|
101
88
|
Source = str
|
|
102
89
|
|
|
103
90
|
|
|
@@ -112,7 +99,7 @@ class DynamicLibrary(ABC):
|
|
|
112
99
|
"""
|
|
113
100
|
|
|
114
101
|
@abstractmethod
|
|
115
|
-
def get_keyword_names(self) ->
|
|
102
|
+
def get_keyword_names(self) -> Sequence[Name]:
|
|
116
103
|
"""Return names of the keywords this library implements.
|
|
117
104
|
|
|
118
105
|
:return: Keyword names as a list of strings.
|
|
@@ -179,7 +166,7 @@ class DynamicLibrary(ABC):
|
|
|
179
166
|
- If keyword does not accept varargs, a lone ``*`` can be used
|
|
180
167
|
a separator between normal and named-only arguments like
|
|
181
168
|
``['normal', '*', 'named']``.
|
|
182
|
-
- Kwargs must have a ``**`` prefix like [
|
|
169
|
+
- Kwargs must have a ``**`` prefix like ``['**config']``. There can
|
|
183
170
|
be only one kwargs, and it must be last.
|
|
184
171
|
|
|
185
172
|
Both normal arguments and named-only arguments can have default values:
|
|
@@ -198,7 +185,7 @@ class DynamicLibrary(ABC):
|
|
|
198
185
|
"""
|
|
199
186
|
return None
|
|
200
187
|
|
|
201
|
-
def get_keyword_types(self, name: Name) -> Optional[
|
|
188
|
+
def get_keyword_types(self, name: Name) -> Optional[TypeHints]:
|
|
202
189
|
"""Optional method to return keyword's type specification.
|
|
203
190
|
|
|
204
191
|
Type information is used for automatic argument conversion during
|
|
@@ -281,7 +268,7 @@ class HybridLibrary(ABC):
|
|
|
281
268
|
"""
|
|
282
269
|
|
|
283
270
|
@abstractmethod
|
|
284
|
-
def get_keyword_names(self) ->
|
|
271
|
+
def get_keyword_names(self) -> Sequence[Name]:
|
|
285
272
|
"""Return names of the implemented keyword methods as a list or strings.
|
|
286
273
|
|
|
287
274
|
Returned names must match names of the implemented keyword methods.
|
|
@@ -301,8 +288,8 @@ class StartSuiteAttributes(TypedDict):
|
|
|
301
288
|
doc: str
|
|
302
289
|
metadata: dict
|
|
303
290
|
source: str
|
|
304
|
-
suites:
|
|
305
|
-
tests:
|
|
291
|
+
suites: 'list[str]'
|
|
292
|
+
tests: 'list[str]'
|
|
306
293
|
totaltests: int
|
|
307
294
|
starttime: str
|
|
308
295
|
|
|
@@ -328,7 +315,7 @@ class StartTestAttributes(TypedDict):
|
|
|
328
315
|
longname: str
|
|
329
316
|
originalname: str
|
|
330
317
|
doc: str
|
|
331
|
-
tags:
|
|
318
|
+
tags: 'list[str]'
|
|
332
319
|
template: str
|
|
333
320
|
source: str
|
|
334
321
|
lineno: int
|
|
@@ -353,21 +340,21 @@ class OptionalKeywordAttributes(TypedDict, total=False):
|
|
|
353
340
|
IF structures attributes include ``condition``.
|
|
354
341
|
"""
|
|
355
342
|
# FOR
|
|
356
|
-
variables:
|
|
343
|
+
variables: 'list[str]'
|
|
357
344
|
flavor: str
|
|
358
|
-
values:
|
|
345
|
+
values: 'list[str]'
|
|
359
346
|
# ITERATION with FOR
|
|
360
|
-
variables:
|
|
347
|
+
variables: 'dict[str, str]'
|
|
361
348
|
# WHILE and IF
|
|
362
349
|
condition: str
|
|
363
350
|
# WHILE
|
|
364
351
|
limit: str
|
|
365
352
|
# EXCEPT
|
|
366
|
-
patterns:
|
|
353
|
+
patterns: 'list[str]'
|
|
367
354
|
pattern_type: str
|
|
368
355
|
variable: str
|
|
369
356
|
# RETURN
|
|
370
|
-
values:
|
|
357
|
+
values: 'list[str]'
|
|
371
358
|
|
|
372
359
|
|
|
373
360
|
class StartKeywordAttributes(OptionalKeywordAttributes):
|
|
@@ -379,9 +366,9 @@ class StartKeywordAttributes(OptionalKeywordAttributes):
|
|
|
379
366
|
kwname: str
|
|
380
367
|
libname: str
|
|
381
368
|
doc: str
|
|
382
|
-
args:
|
|
383
|
-
assign:
|
|
384
|
-
tags:
|
|
369
|
+
args: 'list[str]'
|
|
370
|
+
assign: 'list[str]'
|
|
371
|
+
tags: 'list[str]'
|
|
385
372
|
source: str
|
|
386
373
|
lineno: int
|
|
387
374
|
status: str
|
|
@@ -413,7 +400,7 @@ class LibraryAttributes(TypedDict):
|
|
|
413
400
|
|
|
414
401
|
See the User Guide for more information.
|
|
415
402
|
"""
|
|
416
|
-
args:
|
|
403
|
+
args: 'list[str]'
|
|
417
404
|
originalname: str
|
|
418
405
|
source: str
|
|
419
406
|
importer: Union[str, None]
|
|
@@ -433,7 +420,7 @@ class VariablesAttributes(TypedDict):
|
|
|
433
420
|
|
|
434
421
|
See the User Guide for more information.
|
|
435
422
|
"""
|
|
436
|
-
args:
|
|
423
|
+
args: 'list[str]'
|
|
437
424
|
source: str
|
|
438
425
|
importer: Union[str, None]
|
|
439
426
|
|
|
@@ -531,7 +518,7 @@ class ListenerV3:
|
|
|
531
518
|
"""Called when a test or task starts."""
|
|
532
519
|
|
|
533
520
|
def end_test(self, data: running.TestCase, result: result.TestCase):
|
|
534
|
-
"""Called when a test or ends
|
|
521
|
+
"""Called when a test or tasks ends."""
|
|
535
522
|
|
|
536
523
|
def log_message(self, message: Message):
|
|
537
524
|
"""Called when a normal log message are emitted.
|
|
@@ -223,7 +223,7 @@ Statements:
|
|
|
223
223
|
- :class:`~robot.parsing.model.statements.Template`
|
|
224
224
|
- :class:`~robot.parsing.model.statements.Timeout`
|
|
225
225
|
- :class:`~robot.parsing.model.statements.Arguments`
|
|
226
|
-
- :class:`~robot.parsing.model.statements.Return` (deprecated, will mean ``ReturnStatement`` in RF
|
|
226
|
+
- :class:`~robot.parsing.model.statements.Return` (deprecated, will mean ``ReturnStatement`` in RF 8.0)
|
|
227
227
|
- :class:`~robot.parsing.model.statements.ReturnSetting` (alias for ``Return``, new in RF 6.1)
|
|
228
228
|
- :class:`~robot.parsing.model.statements.KeywordCall`
|
|
229
229
|
- :class:`~robot.parsing.model.statements.TemplateArguments`
|
|
@@ -236,6 +236,7 @@ Statements:
|
|
|
236
236
|
- :class:`~robot.parsing.model.statements.FinallyHeader`
|
|
237
237
|
- :class:`~robot.parsing.model.statements.ForHeader`
|
|
238
238
|
- :class:`~robot.parsing.model.statements.WhileHeader`
|
|
239
|
+
- :class:`~robot.parsing.model.statements.Var` (new in RF 7.0)
|
|
239
240
|
- :class:`~robot.parsing.model.statements.End`
|
|
240
241
|
- :class:`~robot.parsing.model.statements.ReturnStatement`
|
|
241
242
|
- :class:`~robot.parsing.model.statements.Break`
|
|
@@ -519,7 +520,7 @@ from robot.parsing.model.statements import (
|
|
|
519
520
|
TestTeardown,
|
|
520
521
|
TestTemplate,
|
|
521
522
|
TestTimeout,
|
|
522
|
-
|
|
523
|
+
TestTags,
|
|
523
524
|
DefaultTags,
|
|
524
525
|
KeywordTags,
|
|
525
526
|
Variable,
|
|
@@ -545,6 +546,7 @@ from robot.parsing.model.statements import (
|
|
|
545
546
|
ForHeader,
|
|
546
547
|
WhileHeader,
|
|
547
548
|
End,
|
|
549
|
+
Var,
|
|
548
550
|
ReturnStatement,
|
|
549
551
|
Continue,
|
|
550
552
|
Break,
|
|
@@ -26,7 +26,7 @@ class GatherFailedTests(SuiteVisitor):
|
|
|
26
26
|
|
|
27
27
|
def visit_test(self, test):
|
|
28
28
|
if test.failed:
|
|
29
|
-
self.tests.append(glob_escape(test.
|
|
29
|
+
self.tests.append(glob_escape(test.full_name))
|
|
30
30
|
|
|
31
31
|
def visit_keyword(self, kw):
|
|
32
32
|
pass
|
|
@@ -39,7 +39,7 @@ class GatherFailedSuites(SuiteVisitor):
|
|
|
39
39
|
|
|
40
40
|
def start_suite(self, suite):
|
|
41
41
|
if any(test.failed for test in suite.tests):
|
|
42
|
-
self.suites.append(glob_escape(suite.
|
|
42
|
+
self.suites.append(glob_escape(suite.full_name))
|
|
43
43
|
|
|
44
44
|
def visit_test(self, test):
|
|
45
45
|
pass
|
|
@@ -130,15 +130,6 @@ class Languages:
|
|
|
130
130
|
languages = [languages]
|
|
131
131
|
if add_english:
|
|
132
132
|
languages.append(En())
|
|
133
|
-
# The English singular forms are added for backwards compatibility
|
|
134
|
-
self.headers = {
|
|
135
|
-
'Setting': 'Settings',
|
|
136
|
-
'Variable': 'Variables',
|
|
137
|
-
'Test Case': 'Test Cases',
|
|
138
|
-
'Task': 'Tasks',
|
|
139
|
-
'Keyword': 'Keywords',
|
|
140
|
-
'Comment': 'Comments'
|
|
141
|
-
}
|
|
142
133
|
return languages
|
|
143
134
|
|
|
144
135
|
def _get_available_languages(self) -> 'dict[str, type[Language]]':
|
|
@@ -732,9 +723,9 @@ class Pl(Language):
|
|
|
732
723
|
"""Polish"""
|
|
733
724
|
settings_header = 'Ustawienia'
|
|
734
725
|
variables_header = 'Zmienne'
|
|
735
|
-
test_cases_header = 'Przypadki
|
|
726
|
+
test_cases_header = 'Przypadki Testowe'
|
|
736
727
|
tasks_header = 'Zadania'
|
|
737
|
-
keywords_header = 'Słowa
|
|
728
|
+
keywords_header = 'Słowa Kluczowe'
|
|
738
729
|
comments_header = 'Komentarze'
|
|
739
730
|
library_setting = 'Biblioteka'
|
|
740
731
|
resource_setting = 'Zasób'
|
|
@@ -742,24 +733,24 @@ class Pl(Language):
|
|
|
742
733
|
name_setting = 'Nazwa'
|
|
743
734
|
documentation_setting = 'Dokumentacja'
|
|
744
735
|
metadata_setting = 'Metadane'
|
|
745
|
-
suite_setup_setting = 'Inicjalizacja
|
|
746
|
-
suite_teardown_setting = 'Ukończenie
|
|
747
|
-
test_setup_setting = 'Inicjalizacja
|
|
748
|
-
test_teardown_setting = 'Ukończenie
|
|
749
|
-
test_template_setting = 'Szablon
|
|
750
|
-
test_timeout_setting = 'Limit
|
|
751
|
-
test_tags_setting = 'Znaczniki
|
|
752
|
-
task_setup_setting = 'Inicjalizacja
|
|
753
|
-
task_teardown_setting = 'Ukończenie
|
|
754
|
-
task_template_setting = 'Szablon
|
|
755
|
-
task_timeout_setting = 'Limit
|
|
756
|
-
task_tags_setting = 'Znaczniki
|
|
757
|
-
keyword_tags_setting = 'Znaczniki
|
|
736
|
+
suite_setup_setting = 'Inicjalizacja Zestawu'
|
|
737
|
+
suite_teardown_setting = 'Ukończenie Zestawu'
|
|
738
|
+
test_setup_setting = 'Inicjalizacja Testu'
|
|
739
|
+
test_teardown_setting = 'Ukończenie Testu'
|
|
740
|
+
test_template_setting = 'Szablon Testu'
|
|
741
|
+
test_timeout_setting = 'Limit Czasowy Testu'
|
|
742
|
+
test_tags_setting = 'Znaczniki Testu'
|
|
743
|
+
task_setup_setting = 'Inicjalizacja Zadania'
|
|
744
|
+
task_teardown_setting = 'Ukończenie Zadania'
|
|
745
|
+
task_template_setting = 'Szablon Zadania'
|
|
746
|
+
task_timeout_setting = 'Limit Czasowy Zadania'
|
|
747
|
+
task_tags_setting = 'Znaczniki Zadania'
|
|
748
|
+
keyword_tags_setting = 'Znaczniki Słowa Kluczowego'
|
|
758
749
|
tags_setting = 'Znaczniki'
|
|
759
750
|
setup_setting = 'Inicjalizacja'
|
|
760
751
|
teardown_setting = 'Ukończenie'
|
|
761
752
|
template_setting = 'Szablon'
|
|
762
|
-
timeout_setting = 'Limit
|
|
753
|
+
timeout_setting = 'Limit Czasowy'
|
|
763
754
|
arguments_setting = 'Argumenty'
|
|
764
755
|
given_prefixes = ['Zakładając', 'Zakładając, że', 'Mając']
|
|
765
756
|
when_prefixes = ['Jeżeli', 'Jeśli', 'Gdy', 'Kiedy']
|
|
@@ -1219,3 +1210,48 @@ class Hi(Language):
|
|
|
1219
1210
|
but_prefixes = ['परंतु']
|
|
1220
1211
|
true_strings = ['यथार्थ', 'निश्चित', 'हां', 'पर']
|
|
1221
1212
|
false_strings = ['गलत', 'नहीं', 'हालाँकि', 'यद्यपि', 'नहीं', 'हैं']
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
class Vi(Language):
|
|
1216
|
+
"""Vietnamese
|
|
1217
|
+
|
|
1218
|
+
New in Robot Framework 6.1.
|
|
1219
|
+
"""
|
|
1220
|
+
settings_header = 'Cài Đặt'
|
|
1221
|
+
variables_header = 'Các biến số'
|
|
1222
|
+
test_cases_header = 'Các kịch bản kiểm thử'
|
|
1223
|
+
tasks_header = 'Các nghiệm vụ'
|
|
1224
|
+
keywords_header = 'Các từ khóa'
|
|
1225
|
+
comments_header = 'Các chú thích'
|
|
1226
|
+
library_setting = 'Thư viện'
|
|
1227
|
+
resource_setting = 'Tài nguyên'
|
|
1228
|
+
variables_setting = 'Biến số'
|
|
1229
|
+
name_setting = 'Tên'
|
|
1230
|
+
documentation_setting = 'Tài liệu hướng dẫn'
|
|
1231
|
+
metadata_setting = 'Dữ liệu tham chiếu'
|
|
1232
|
+
suite_setup_setting = 'Tiền thiết lập bộ kịch bản kiểm thử'
|
|
1233
|
+
suite_teardown_setting = 'Hậu thiết lập bộ kịch bản kiểm thử'
|
|
1234
|
+
test_setup_setting = 'Tiền thiết lập kịch bản kiểm thử'
|
|
1235
|
+
test_teardown_setting = 'Hậu thiết lập kịch bản kiểm thử'
|
|
1236
|
+
test_template_setting = 'Mẫu kịch bản kiểm thử'
|
|
1237
|
+
test_timeout_setting = 'Thời gian chờ kịch bản kiểm thử'
|
|
1238
|
+
test_tags_setting = 'Các nhãn kịch bản kiểm thử'
|
|
1239
|
+
task_setup_setting = 'Tiền thiểt lập nhiệm vụ'
|
|
1240
|
+
task_teardown_setting = 'Hậu thiết lập nhiệm vụ'
|
|
1241
|
+
task_template_setting = 'Mẫu nhiễm vụ'
|
|
1242
|
+
task_timeout_setting = 'Thời gian chờ nhiệm vụ'
|
|
1243
|
+
task_tags_setting = 'Các nhãn nhiệm vụ'
|
|
1244
|
+
keyword_tags_setting = 'Các từ khóa nhãn'
|
|
1245
|
+
tags_setting = 'Các thẻ'
|
|
1246
|
+
setup_setting = 'Tiền thiết lập'
|
|
1247
|
+
teardown_setting = 'Hậu thiết lập'
|
|
1248
|
+
template_setting = 'Mẫu'
|
|
1249
|
+
timeout_setting = 'Thời gian chờ'
|
|
1250
|
+
arguments_setting = 'Các đối số'
|
|
1251
|
+
given_prefixes = ['Đã cho']
|
|
1252
|
+
when_prefixes = ['Khi']
|
|
1253
|
+
then_prefixes = ['Thì']
|
|
1254
|
+
and_prefixes = ['Và']
|
|
1255
|
+
but_prefixes = ['Nhưng']
|
|
1256
|
+
true_strings = ['Đúng', 'Vâng', 'Mở']
|
|
1257
|
+
false_strings = ['Sai', 'Không', 'Tắt', 'Không Có Gì']
|
|
@@ -20,13 +20,14 @@ import string
|
|
|
20
20
|
import sys
|
|
21
21
|
import time
|
|
22
22
|
import warnings
|
|
23
|
+
from datetime import datetime
|
|
23
24
|
from pathlib import Path
|
|
24
25
|
|
|
25
26
|
from robot.errors import DataError, FrameworkError
|
|
26
27
|
from robot.output import LOGGER, loggerhelper
|
|
27
28
|
from robot.result.keywordremover import KeywordRemover
|
|
28
29
|
from robot.result.flattenkeywordmatcher import validate_flatten_keyword
|
|
29
|
-
from robot.utils import (abspath, create_destination_directory, escape,
|
|
30
|
+
from robot.utils import (abspath, create_destination_directory, escape,
|
|
30
31
|
get_link_path, html_escape, is_list_like, plural_or_not as s,
|
|
31
32
|
seq2str, split_args_from_name_or_path)
|
|
32
33
|
|
|
@@ -73,7 +74,7 @@ class _BaseSettings:
|
|
|
73
74
|
_output_opts = ['Output', 'Log', 'Report', 'XUnit', 'DebugFile']
|
|
74
75
|
|
|
75
76
|
def __init__(self, options=None, **extra_options):
|
|
76
|
-
self.
|
|
77
|
+
self.start_time = datetime.now()
|
|
77
78
|
self._opts = {}
|
|
78
79
|
self._cli_opts = self._cli_opts.copy()
|
|
79
80
|
self._cli_opts.update(self._extra_cli_opts)
|
|
@@ -230,7 +231,9 @@ class _BaseSettings:
|
|
|
230
231
|
def _process_output_name(self, option, name):
|
|
231
232
|
base, ext = os.path.splitext(name)
|
|
232
233
|
if self['TimestampOutputs']:
|
|
233
|
-
|
|
234
|
+
s = self.start_time
|
|
235
|
+
base = (f'{base}-{s.year}{s.month:02}{s.day:02}-'
|
|
236
|
+
f'{s.hour:02}{s.minute:02}{s.second:02}')
|
|
234
237
|
ext = self._get_output_extension(ext, option)
|
|
235
238
|
return base + ext
|
|
236
239
|
|
|
@@ -336,7 +339,7 @@ class _BaseSettings:
|
|
|
336
339
|
def _validate_remove_keywords(self, values):
|
|
337
340
|
for value in values:
|
|
338
341
|
try:
|
|
339
|
-
KeywordRemover(value)
|
|
342
|
+
KeywordRemover.from_config(value)
|
|
340
343
|
except DataError as err:
|
|
341
344
|
self._raise_invalid('RemoveKeywords', err)
|
|
342
345
|
|
|
@@ -488,7 +491,7 @@ class RobotSettings(_BaseSettings):
|
|
|
488
491
|
|
|
489
492
|
def get_rebot_settings(self):
|
|
490
493
|
settings = RebotSettings()
|
|
491
|
-
settings.
|
|
494
|
+
settings.start_time = self.start_time
|
|
492
495
|
not_copied = {'Include', 'Exclude', 'TestNames', 'SuiteNames', 'ParseInclude',
|
|
493
496
|
'Name', 'Doc', 'Metadata', 'SetTag', 'Output', 'LogLevel',
|
|
494
497
|
'TimestampOutputs'}
|
|
@@ -322,8 +322,9 @@ function addExecutionLog(main) {
|
|
|
322
322
|
<div class="element-header-left" title="${type} {{if name}}{{html fullName}} {{/if}}[${status}]">
|
|
323
323
|
<span class="elapsed" title="Elapsed time">${times.elapsedTime}</span>
|
|
324
324
|
<span class="label ${status.toLowerCase()}">${type}</span>
|
|
325
|
-
<span>{{html assign}}</span>
|
|
325
|
+
<span class="assign">{{html assign}}</span>
|
|
326
326
|
<span class="name"><span class="parent-name">{{html libname}}{{if libname}} . {{/if}}</span>{{html name}}</span>
|
|
327
|
+
|
|
327
328
|
<span class="arg">{{html arguments}}</span>
|
|
328
329
|
</div>
|
|
329
330
|
<div class="element-header-right" onclick="stopPropagation(event)">
|
|
@@ -357,6 +358,12 @@ function addExecutionLog(main) {
|
|
|
357
358
|
<th>Start / End / Elapsed:</th>
|
|
358
359
|
<td>${times.startTime} / ${times.endTime} / ${times.elapsedTime}</td>
|
|
359
360
|
</tr>
|
|
361
|
+
{{if message()}}
|
|
362
|
+
<tr>
|
|
363
|
+
<th>Message:</th>
|
|
364
|
+
<td class="message">{{html message()}}</td>
|
|
365
|
+
</tr>
|
|
366
|
+
{{/if}}
|
|
360
367
|
</table>
|
|
361
368
|
</div>
|
|
362
369
|
</div>
|
|
@@ -379,6 +386,7 @@ function addExecutionLog(main) {
|
|
|
379
386
|
<div id="log-level-selector">
|
|
380
387
|
Log level:
|
|
381
388
|
<select onchange="logLevelSelected(this.options[selectedIndex].value)">
|
|
389
|
+
<option value="3">WARN</option>
|
|
382
390
|
<option value="2">INFO</option>
|
|
383
391
|
<option value="1">DEBUG</option>
|
|
384
392
|
{{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');
|
|
@@ -5,8 +5,9 @@ window.testdata = function () {
|
|
|
5
5
|
var _statistics = null;
|
|
6
6
|
var LEVELS = ['TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FAIL', 'SKIP'];
|
|
7
7
|
var STATUSES = ['FAIL', 'PASS', 'SKIP', 'NOT RUN'];
|
|
8
|
-
var KEYWORD_TYPES = ['KEYWORD', 'SETUP', 'TEARDOWN', 'FOR', 'ITERATION', 'IF',
|
|
9
|
-
'
|
|
8
|
+
var KEYWORD_TYPES = ['KEYWORD', 'SETUP', 'TEARDOWN', 'FOR', 'ITERATION', 'IF',
|
|
9
|
+
'ELSE IF', 'ELSE', 'RETURN', 'VAR', 'TRY', 'EXCEPT', 'FINALLY',
|
|
10
|
+
'WHILE', 'CONTINUE', 'BREAK', 'ERROR'];
|
|
10
11
|
|
|
11
12
|
function addElement(elem) {
|
|
12
13
|
if (!elem.id)
|
|
@@ -57,6 +58,7 @@ window.testdata = function () {
|
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
function createKeyword(parent, element, strings, index) {
|
|
61
|
+
var status = element[8];
|
|
60
62
|
var kw = model.Keyword({
|
|
61
63
|
parent: parent,
|
|
62
64
|
type: KEYWORD_TYPES[element[0]],
|
|
@@ -72,7 +74,12 @@ window.testdata = function () {
|
|
|
72
74
|
this.doc = function () { return doc; };
|
|
73
75
|
return doc;
|
|
74
76
|
},
|
|
75
|
-
status: parseStatus(
|
|
77
|
+
status: parseStatus(status),
|
|
78
|
+
message: function () {
|
|
79
|
+
var msg = status.length == 4 ? strings.get(status[3]) : '';
|
|
80
|
+
this.message = function () { return msg; };
|
|
81
|
+
return msg;
|
|
82
|
+
},
|
|
76
83
|
times: model.Times(times(element[8])),
|
|
77
84
|
isChildrenLoaded: typeof(element[9]) !== 'number'
|
|
78
85
|
});
|
|
@@ -27,13 +27,13 @@ if sys.version_info < (3, 9) and not Path(__file__).exists(): # zipsafe
|
|
|
27
27
|
except ImportError:
|
|
28
28
|
raise ImportError(
|
|
29
29
|
"'importlib_resources' backport module needs to be installed with "
|
|
30
|
-
"Python 3.8
|
|
31
|
-
"
|
|
30
|
+
"Python 3.8 when Robot Framework is distributed as a zip package "
|
|
31
|
+
"or '__file__' does not exist for other reasons."
|
|
32
32
|
)
|
|
33
33
|
else:
|
|
34
34
|
try:
|
|
35
35
|
from importlib.resources import files
|
|
36
|
-
except ImportError: # Python 3.8
|
|
36
|
+
except ImportError: # Python 3.8
|
|
37
37
|
BASE_DIR = Path(__file__).absolute().parent.parent.parent # zipsafe
|
|
38
38
|
|
|
39
39
|
def files(module):
|
|
@@ -71,14 +71,6 @@ class DocumentationBuilder:
|
|
|
71
71
|
instead.
|
|
72
72
|
"""
|
|
73
73
|
|
|
74
|
-
def __init__(self, library_or_resource=None):
|
|
75
|
-
"""`library_or_resource` is accepted for backwards compatibility reasons.
|
|
76
|
-
|
|
77
|
-
It is not used for anything internally and passing it to the builder is
|
|
78
|
-
considered deprecated starting from RF 6.0.1.
|
|
79
|
-
"""
|
|
80
|
-
pass
|
|
81
|
-
|
|
82
74
|
def build(self, source):
|
|
83
75
|
# Source can contain arguments separated with `::` so we cannot convert
|
|
84
76
|
# it to Path and instead need to make sure it's a string. It would be
|