busser-robot 0.1.3

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 (1968) hide show
  1. checksums.yaml +7 -0
  2. data/.cane +0 -0
  3. data/.gitignore +17 -0
  4. data/.tailor +4 -0
  5. data/.travis.yml +11 -0
  6. data/CHANGELOG.md +3 -0
  7. data/Gemfile +3 -0
  8. data/LICENSE +15 -0
  9. data/README.md +41 -0
  10. data/Rakefile +68 -0
  11. data/busser-robot.gemspec +30 -0
  12. data/features/plugin_install_command.feature +11 -0
  13. data/features/plugin_list_command.feature +8 -0
  14. data/features/support/env.rb +13 -0
  15. data/features/test_command.feature +31 -0
  16. data/lib/busser/robot/version.rb +26 -0
  17. data/lib/busser/runner_plugin/robot.rb +37 -0
  18. data/vendor/robot/.gitignore +19 -0
  19. data/vendor/robot/AUTHORS.txt +76 -0
  20. data/vendor/robot/BUILD.rst +212 -0
  21. data/vendor/robot/CONTRIBUTING.rst +309 -0
  22. data/vendor/robot/COPYRIGHT.txt +14 -0
  23. data/vendor/robot/INSTALL.rst +726 -0
  24. data/vendor/robot/LICENSE.txt +202 -0
  25. data/vendor/robot/MANIFEST.in +4 -0
  26. data/vendor/robot/README.rst +150 -0
  27. data/vendor/robot/atest/README.rst +235 -0
  28. data/vendor/robot/atest/genrunner.py +52 -0
  29. data/vendor/robot/atest/interpreter.py +217 -0
  30. data/vendor/robot/atest/requirements.txt +12 -0
  31. data/vendor/robot/atest/resources/TestCheckerLibrary.py +258 -0
  32. data/vendor/robot/atest/resources/TestHelper.py +31 -0
  33. data/vendor/robot/atest/resources/atest_resource.robot +335 -0
  34. data/vendor/robot/atest/resources/atest_variables.py +10 -0
  35. data/vendor/robot/atest/resources/read_interpreter.py +27 -0
  36. data/vendor/robot/atest/resources/rebot_resource.robot +25 -0
  37. data/vendor/robot/atest/resources/unicode_vars.py +15 -0
  38. data/vendor/robot/atest/robot/cli/console/colors_and_width.robot +66 -0
  39. data/vendor/robot/atest/robot/cli/console/console_resource.robot +24 -0
  40. data/vendor/robot/atest/robot/cli/console/console_type.robot +54 -0
  41. data/vendor/robot/atest/robot/cli/console/encoding_from_env_vars.robot +31 -0
  42. data/vendor/robot/atest/robot/cli/console/expected_output/ExpectedOutputLibrary.py +27 -0
  43. data/vendor/robot/atest/robot/cli/console/expected_output/dotted_fatal_error.txt +14 -0
  44. data/vendor/robot/atest/robot/cli/console/expected_output/empty.txt +0 -0
  45. data/vendor/robot/atest/robot/cli/console/expected_output/warnings_and_errors_stderr.txt +6 -0
  46. data/vendor/robot/atest/robot/cli/console/expected_output/warnings_and_errors_stdout.txt +14 -0
  47. data/vendor/robot/atest/robot/cli/console/expected_output/warnings_and_errors_stdout_dotted.txt +11 -0
  48. data/vendor/robot/atest/robot/cli/console/expected_output/warnings_and_errors_stdout_dotted_10.txt +19 -0
  49. data/vendor/robot/atest/robot/cli/console/markers.robot +81 -0
  50. data/vendor/robot/atest/robot/cli/console/non_ascii.robot +15 -0
  51. data/vendor/robot/atest/robot/cli/console/verbose_layout.robot +50 -0
  52. data/vendor/robot/atest/robot/cli/dryrun/args.robot +22 -0
  53. data/vendor/robot/atest/robot/cli/dryrun/dryrun.robot +149 -0
  54. data/vendor/robot/atest/robot/cli/dryrun/executed_builtin_keywords.robot +15 -0
  55. data/vendor/robot/atest/robot/cli/dryrun/java_arguments.robot +62 -0
  56. data/vendor/robot/atest/robot/cli/dryrun/kwargs.robot +16 -0
  57. data/vendor/robot/atest/robot/cli/dryrun/run_keyword_variants.robot +101 -0
  58. data/vendor/robot/atest/robot/cli/dryrun/run_keyword_variants_in_suite_teardown.robot +10 -0
  59. data/vendor/robot/atest/robot/cli/model_modifiers/ModelModifier.py +18 -0
  60. data/vendor/robot/atest/robot/cli/model_modifiers/modifier_resource.robot +38 -0
  61. data/vendor/robot/atest/robot/cli/model_modifiers/pre_rebot.robot +64 -0
  62. data/vendor/robot/atest/robot/cli/model_modifiers/pre_rebot_when_running.robot +59 -0
  63. data/vendor/robot/atest/robot/cli/model_modifiers/pre_run.robot +57 -0
  64. data/vendor/robot/atest/robot/cli/rebot/REBOT_OPTIONS.robot +22 -0
  65. data/vendor/robot/atest/robot/cli/rebot/__init__.robot +3 -0
  66. data/vendor/robot/atest/robot/cli/rebot/argumentfile.robot +28 -0
  67. data/vendor/robot/atest/robot/cli/rebot/help_and_version.robot +26 -0
  68. data/vendor/robot/atest/robot/cli/rebot/invalid_usage.robot +55 -0
  69. data/vendor/robot/atest/robot/cli/rebot/log_level.robot +48 -0
  70. data/vendor/robot/atest/robot/cli/rebot/output_files.robot +56 -0
  71. data/vendor/robot/atest/robot/cli/rebot/process_empty_suite.robot +38 -0
  72. data/vendor/robot/atest/robot/cli/rebot/rebot_cli_resource.robot +24 -0
  73. data/vendor/robot/atest/robot/cli/rebot/remove_keywords/all_passed_tag_and_name.robot +159 -0
  74. data/vendor/robot/atest/robot/cli/rebot/remove_keywords/combinations.robot +43 -0
  75. data/vendor/robot/atest/robot/cli/rebot/remove_keywords/for_loop_keywords.robot +51 -0
  76. data/vendor/robot/atest/robot/cli/rebot/remove_keywords/remove_keywords_resource.robot +25 -0
  77. data/vendor/robot/atest/robot/cli/rebot/remove_keywords/wait_until_keyword_succeeds.robot +37 -0
  78. data/vendor/robot/atest/robot/cli/rebot/status_rc.robot +53 -0
  79. data/vendor/robot/atest/robot/cli/rebot/suite_name_doc_and_metadata.robot +39 -0
  80. data/vendor/robot/atest/robot/cli/rebot/syslog.robot +46 -0
  81. data/vendor/robot/atest/robot/cli/rebot/timestamp_outputs.robot +16 -0
  82. data/vendor/robot/atest/robot/cli/runner/ROBOT_OPTIONS.robot +17 -0
  83. data/vendor/robot/atest/robot/cli/runner/argumentfile.robot +111 -0
  84. data/vendor/robot/atest/robot/cli/runner/cli_resource.robot +44 -0
  85. data/vendor/robot/atest/robot/cli/runner/debugfile.robot +75 -0
  86. data/vendor/robot/atest/robot/cli/runner/exit_on_error.robot +67 -0
  87. data/vendor/robot/atest/robot/cli/runner/exit_on_failure.robot +71 -0
  88. data/vendor/robot/atest/robot/cli/runner/extension.robot +25 -0
  89. data/vendor/robot/atest/robot/cli/runner/help_and_version.robot +33 -0
  90. data/vendor/robot/atest/robot/cli/runner/invalid_usage.robot +34 -0
  91. data/vendor/robot/atest/robot/cli/runner/log_level.robot +88 -0
  92. data/vendor/robot/atest/robot/cli/runner/multisource.robot +57 -0
  93. data/vendor/robot/atest/robot/cli/runner/output_files.robot +75 -0
  94. data/vendor/robot/atest/robot/cli/runner/pythonpath.robot +31 -0
  95. data/vendor/robot/atest/robot/cli/runner/randomize.robot +112 -0
  96. data/vendor/robot/atest/robot/cli/runner/remove_keywords.robot +147 -0
  97. data/vendor/robot/atest/robot/cli/runner/report_background.robot +26 -0
  98. data/vendor/robot/atest/robot/cli/runner/rerunfailed.robot +50 -0
  99. data/vendor/robot/atest/robot/cli/runner/rerunfailed_corners.robot +44 -0
  100. data/vendor/robot/atest/robot/cli/runner/rerunfailedsuites.robot +44 -0
  101. data/vendor/robot/atest/robot/cli/runner/rerunfailedsuites_corners.robot +44 -0
  102. data/vendor/robot/atest/robot/cli/runner/run_empty_suite.robot +36 -0
  103. data/vendor/robot/atest/robot/cli/runner/status_rc.robot +39 -0
  104. data/vendor/robot/atest/robot/cli/runner/suite_name_doc_and_metadata.robot +40 -0
  105. data/vendor/robot/atest/robot/cli/runner/syslog.robot +56 -0
  106. data/vendor/robot/atest/robot/cli/runner/timestamp_outputs.robot +25 -0
  107. data/vendor/robot/atest/robot/core/binary_data.robot +54 -0
  108. data/vendor/robot/atest/robot/core/empty_tc_and_uk.robot +35 -0
  109. data/vendor/robot/atest/robot/core/filter_by_names.robot +191 -0
  110. data/vendor/robot/atest/robot/core/keyword_teardown.robot +69 -0
  111. data/vendor/robot/atest/robot/core/overriding_default_settings_with_none.robot +48 -0
  112. data/vendor/robot/atest/robot/core/resource_and_variable_imports.robot +164 -0
  113. data/vendor/robot/atest/robot/core/same_test_multiple_times_in_suite.robot +30 -0
  114. data/vendor/robot/atest/robot/core/suite_execution_order.robot +10 -0
  115. data/vendor/robot/atest/robot/core/suite_setup_and_teardown.robot +183 -0
  116. data/vendor/robot/atest/robot/core/test_case_status.robot +52 -0
  117. data/vendor/robot/atest/robot/core/test_suite_dir.robot +55 -0
  118. data/vendor/robot/atest/robot/core/test_suite_init_file.robot +111 -0
  119. data/vendor/robot/atest/robot/core/timeouts.robot +153 -0
  120. data/vendor/robot/atest/robot/core/timeouts_with_custom_messages.robot +69 -0
  121. data/vendor/robot/atest/robot/core/unicode.robot +46 -0
  122. data/vendor/robot/atest/robot/core/unicode_with_java_libs.robot +21 -0
  123. data/vendor/robot/atest/robot/external/unit_tests.robot +15 -0
  124. data/vendor/robot/atest/robot/keywords/dots_in_keyword_name.robot +48 -0
  125. data/vendor/robot/atest/robot/keywords/duplicate_dynamic_keywords.robot +26 -0
  126. data/vendor/robot/atest/robot/keywords/duplicate_hybrid_keywords.robot +26 -0
  127. data/vendor/robot/atest/robot/keywords/duplicate_static_keywords.robot +31 -0
  128. data/vendor/robot/atest/robot/keywords/duplicate_user_keywords.robot +37 -0
  129. data/vendor/robot/atest/robot/keywords/embedded_arguments.robot +153 -0
  130. data/vendor/robot/atest/robot/keywords/embedded_arguments_library_keywords.robot +97 -0
  131. data/vendor/robot/atest/robot/keywords/java_argument_type_coercion.robot +23 -0
  132. data/vendor/robot/atest/robot/keywords/java_arguments.robot +98 -0
  133. data/vendor/robot/atest/robot/keywords/keyword_names.robot +138 -0
  134. data/vendor/robot/atest/robot/keywords/keyword_namespaces.robot +67 -0
  135. data/vendor/robot/atest/robot/keywords/keyword_not_found.robot +25 -0
  136. data/vendor/robot/atest/robot/keywords/keyword_recommendations.robot +145 -0
  137. data/vendor/robot/atest/robot/keywords/keyword_tags.robot +48 -0
  138. data/vendor/robot/atest/robot/keywords/named_args/variables_in_names.robot +34 -0
  139. data/vendor/robot/atest/robot/keywords/named_args/with_dynamic_keywords.robot +55 -0
  140. data/vendor/robot/atest/robot/keywords/named_args/with_dynamic_kwargs_support.robot +79 -0
  141. data/vendor/robot/atest/robot/keywords/named_args/with_python_keywords.robot +95 -0
  142. data/vendor/robot/atest/robot/keywords/named_args/with_user_keywords.robot +58 -0
  143. data/vendor/robot/atest/robot/keywords/optional_given_when_then.robot +48 -0
  144. data/vendor/robot/atest/robot/keywords/python_arguments.robot +42 -0
  145. data/vendor/robot/atest/robot/keywords/trace_log_keyword_arguments.robot +104 -0
  146. data/vendor/robot/atest/robot/keywords/trace_log_return_value.robot +60 -0
  147. data/vendor/robot/atest/robot/keywords/user_keyword_arguments.robot +98 -0
  148. data/vendor/robot/atest/robot/keywords/user_keyword_kwargs.robot +62 -0
  149. data/vendor/robot/atest/robot/keywords/user_keyword_return_values.robot +34 -0
  150. data/vendor/robot/atest/robot/libdoc/LibDocLib.py +49 -0
  151. data/vendor/robot/atest/robot/libdoc/__init__.robot +4 -0
  152. data/vendor/robot/atest/robot/libdoc/cli.robot +58 -0
  153. data/vendor/robot/atest/robot/libdoc/console_viewer.robot +97 -0
  154. data/vendor/robot/atest/robot/libdoc/doc_format.robot +72 -0
  155. data/vendor/robot/atest/robot/libdoc/dynamic_library.robot +67 -0
  156. data/vendor/robot/atest/robot/libdoc/dynamic_library_without_get_kw_args_and_doc.robot +38 -0
  157. data/vendor/robot/atest/robot/libdoc/internal_linking.robot +83 -0
  158. data/vendor/robot/atest/robot/libdoc/invalid_library_keywords.robot +30 -0
  159. data/vendor/robot/atest/robot/libdoc/invalid_usage.robot +61 -0
  160. data/vendor/robot/atest/robot/libdoc/invalid_user_keywords.robot +29 -0
  161. data/vendor/robot/atest/robot/libdoc/java_library.robot +80 -0
  162. data/vendor/robot/atest/robot/libdoc/libdoc_resource.robot +141 -0
  163. data/vendor/robot/atest/robot/libdoc/library_version.robot +31 -0
  164. data/vendor/robot/atest/robot/libdoc/module_library.robot +60 -0
  165. data/vendor/robot/atest/robot/libdoc/no_inits.robot +29 -0
  166. data/vendor/robot/atest/robot/libdoc/python_library.robot +68 -0
  167. data/vendor/robot/atest/robot/libdoc/resource_file.robot +81 -0
  168. data/vendor/robot/atest/robot/libdoc/spec_library.robot +64 -0
  169. data/vendor/robot/atest/robot/output/flatten_keyword.robot +106 -0
  170. data/vendor/robot/atest/robot/output/html_output_stats.py +41 -0
  171. data/vendor/robot/atest/robot/output/js_model.robot +49 -0
  172. data/vendor/robot/atest/robot/output/listener_interface/importing_listeners.robot +84 -0
  173. data/vendor/robot/atest/robot/output/listener_interface/listener_failing.robot +61 -0
  174. data/vendor/robot/atest/robot/output/listener_interface/listener_logging.robot +99 -0
  175. data/vendor/robot/atest/robot/output/listener_interface/listener_methods.robot +169 -0
  176. data/vendor/robot/atest/robot/output/listener_interface/listener_resource.robot +50 -0
  177. data/vendor/robot/atest/robot/output/listener_interface/listener_v3.robot +68 -0
  178. data/vendor/robot/atest/robot/output/listener_interface/listening_imports.robot +53 -0
  179. data/vendor/robot/atest/robot/output/listener_interface/log_levels.robot +39 -0
  180. data/vendor/robot/atest/robot/output/listener_interface/output_files.robot +42 -0
  181. data/vendor/robot/atest/robot/output/listener_interface/unsupported_listener_version.robot +34 -0
  182. data/vendor/robot/atest/robot/output/names_needing_escaping.robot +37 -0
  183. data/vendor/robot/atest/robot/output/outputs_have_correct_line_separators.robot +32 -0
  184. data/vendor/robot/atest/robot/output/processing_output.robot +118 -0
  185. data/vendor/robot/atest/robot/output/statistics.robot +90 -0
  186. data/vendor/robot/atest/robot/output/statistics_in_log_and_report.robot +79 -0
  187. data/vendor/robot/atest/robot/output/statistics_with_rebot.robot +70 -0
  188. data/vendor/robot/atest/robot/output/suite_and_test_id_in_output.robot +23 -0
  189. data/vendor/robot/atest/robot/output/test_criticality.robot +22 -0
  190. data/vendor/robot/atest/robot/output/timeouts.robot +27 -0
  191. data/vendor/robot/atest/robot/output/xunit.robot +84 -0
  192. data/vendor/robot/atest/robot/parsing/caching_libs_and_resources.robot +59 -0
  193. data/vendor/robot/atest/robot/parsing/data_formats/formats_resource.robot +71 -0
  194. data/vendor/robot/atest/robot/parsing/data_formats/html.robot +19 -0
  195. data/vendor/robot/atest/robot/parsing/data_formats/mixed.robot +99 -0
  196. data/vendor/robot/atest/robot/parsing/data_formats/rest.robot +22 -0
  197. data/vendor/robot/atest/robot/parsing/data_formats/rest_directives.robot +8 -0
  198. data/vendor/robot/atest/robot/parsing/data_formats/robot.robot +18 -0
  199. data/vendor/robot/atest/robot/parsing/data_formats/tsv.robot +18 -0
  200. data/vendor/robot/atest/robot/parsing/data_formats/txt.robot +18 -0
  201. data/vendor/robot/atest/robot/parsing/data_formats/txt_special_cases.robot +49 -0
  202. data/vendor/robot/atest/robot/parsing/deprecated_settings.robot +66 -0
  203. data/vendor/robot/atest/robot/parsing/escaping.robot +87 -0
  204. data/vendor/robot/atest/robot/parsing/failing_init.robot +12 -0
  205. data/vendor/robot/atest/robot/parsing/html_entityrefs.robot +22 -0
  206. data/vendor/robot/atest/robot/parsing/ignore_bom.robot +21 -0
  207. data/vendor/robot/atest/robot/parsing/invalid.robot +57 -0
  208. data/vendor/robot/atest/robot/parsing/multirow.robot +63 -0
  209. data/vendor/robot/atest/robot/parsing/non_ascii_paths.robot +54 -0
  210. data/vendor/robot/atest/robot/parsing/non_breaking_space.robot +19 -0
  211. data/vendor/robot/atest/robot/parsing/paths_are_not_case_normalized.robot +14 -0
  212. data/vendor/robot/atest/robot/parsing/same_setting_multiple_times.robot +127 -0
  213. data/vendor/robot/atest/robot/parsing/suite_metadata.robot +32 -0
  214. data/vendor/robot/atest/robot/parsing/suite_settings.robot +61 -0
  215. data/vendor/robot/atest/robot/parsing/table_names.robot +55 -0
  216. data/vendor/robot/atest/robot/parsing/test_case_settings.robot +162 -0
  217. data/vendor/robot/atest/robot/parsing/test_suite_names.robot +47 -0
  218. data/vendor/robot/atest/robot/parsing/user_keyword_settings.robot +103 -0
  219. data/vendor/robot/atest/robot/parsing/utf8_data/utf8_in_html.robot +25 -0
  220. data/vendor/robot/atest/robot/parsing/utf8_data/utf8_in_html5.robot +25 -0
  221. data/vendor/robot/atest/robot/parsing/utf8_data/utf8_in_tsv.robot +25 -0
  222. data/vendor/robot/atest/robot/parsing/utf8_data/utf8_in_txt.robot +25 -0
  223. data/vendor/robot/atest/robot/rebot/combine.robot +208 -0
  224. data/vendor/robot/atest/robot/rebot/filter_by_names.robot +160 -0
  225. data/vendor/robot/atest/robot/rebot/merge.robot +237 -0
  226. data/vendor/robot/atest/robot/rebot/output_file.robot +23 -0
  227. data/vendor/robot/atest/robot/rebot/start_and_endtime_from_cli.robot +75 -0
  228. data/vendor/robot/atest/robot/rebot/xunit.robot +61 -0
  229. data/vendor/robot/atest/robot/running/ProcessManager.py +73 -0
  230. data/vendor/robot/atest/robot/running/continue_for_loop.robot +54 -0
  231. data/vendor/robot/atest/robot/running/continue_on_failure.robot +106 -0
  232. data/vendor/robot/atest/robot/running/dynamic_teardown.robot +7 -0
  233. data/vendor/robot/atest/robot/running/empty_and_none_setup_and_teardown_are_ignored.robot +31 -0
  234. data/vendor/robot/atest/robot/running/exit_for_loop.robot +57 -0
  235. data/vendor/robot/atest/robot/running/failures_in_teardown.robot +60 -0
  236. data/vendor/robot/atest/robot/running/fatal_exception.robot +72 -0
  237. data/vendor/robot/atest/robot/running/for.robot +437 -0
  238. data/vendor/robot/atest/robot/running/html_error_message.robot +57 -0
  239. data/vendor/robot/atest/robot/running/long_error_messages.robot +65 -0
  240. data/vendor/robot/atest/robot/running/non_ascii_bytes.robot +33 -0
  241. data/vendor/robot/atest/robot/running/pass_execution.robot +162 -0
  242. data/vendor/robot/atest/robot/running/prevent_recursion.robot +22 -0
  243. data/vendor/robot/atest/robot/running/return_from_keyword.robot +60 -0
  244. data/vendor/robot/atest/robot/running/stopping_with_signal.robot +128 -0
  245. data/vendor/robot/atest/robot/running/test_template.robot +86 -0
  246. data/vendor/robot/atest/robot/running/test_template_with_embeded_args.robot +47 -0
  247. data/vendor/robot/atest/robot/standard_libraries/builtin/builtin_resource.robot +16 -0
  248. data/vendor/robot/atest/robot/standard_libraries/builtin/call_method.robot +34 -0
  249. data/vendor/robot/atest/robot/standard_libraries/builtin/convert_to_bytes.robot +88 -0
  250. data/vendor/robot/atest/robot/standard_libraries/builtin/converter.robot +72 -0
  251. data/vendor/robot/atest/robot/standard_libraries/builtin/count.robot +42 -0
  252. data/vendor/robot/atest/robot/standard_libraries/builtin/create_dictionary.robot +70 -0
  253. data/vendor/robot/atest/robot/standard_libraries/builtin/evaluate.robot +66 -0
  254. data/vendor/robot/atest/robot/standard_libraries/builtin/exit_on_failure.robot +24 -0
  255. data/vendor/robot/atest/robot/standard_libraries/builtin/fail.robot +49 -0
  256. data/vendor/robot/atest/robot/standard_libraries/builtin/fatal_error.robot +15 -0
  257. data/vendor/robot/atest/robot/standard_libraries/builtin/get_library_instance.robot +42 -0
  258. data/vendor/robot/atest/robot/standard_libraries/builtin/get_time.robot +38 -0
  259. data/vendor/robot/atest/robot/standard_libraries/builtin/get_variable_value.robot +26 -0
  260. data/vendor/robot/atest/robot/standard_libraries/builtin/get_variables.robot +47 -0
  261. data/vendor/robot/atest/robot/standard_libraries/builtin/import_library.robot +39 -0
  262. data/vendor/robot/atest/robot/standard_libraries/builtin/import_resource.robot +29 -0
  263. data/vendor/robot/atest/robot/standard_libraries/builtin/import_variables.robot +31 -0
  264. data/vendor/robot/atest/robot/standard_libraries/builtin/imports_without_path_set.robot +20 -0
  265. data/vendor/robot/atest/robot/standard_libraries/builtin/keyword_should_exist.robot +48 -0
  266. data/vendor/robot/atest/robot/standard_libraries/builtin/length.robot +52 -0
  267. data/vendor/robot/atest/robot/standard_libraries/builtin/listener_printing_start_end_kw.py +14 -0
  268. data/vendor/robot/atest/robot/standard_libraries/builtin/listener_using_builtin.py +9 -0
  269. data/vendor/robot/atest/robot/standard_libraries/builtin/log.robot +165 -0
  270. data/vendor/robot/atest/robot/standard_libraries/builtin/log_variables.robot +180 -0
  271. data/vendor/robot/atest/robot/standard_libraries/builtin/misc.robot +19 -0
  272. data/vendor/robot/atest/robot/standard_libraries/builtin/reload_library.robot +39 -0
  273. data/vendor/robot/atest/robot/standard_libraries/builtin/reload_with_name.robot +14 -0
  274. data/vendor/robot/atest/robot/standard_libraries/builtin/repeat_keyword.robot +96 -0
  275. data/vendor/robot/atest/robot/standard_libraries/builtin/replace_variables.robot +22 -0
  276. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword.robot +84 -0
  277. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_and_continue_on_failure.robot +40 -0
  278. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_and_return.robot +56 -0
  279. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_and_return_status.robot +12 -0
  280. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_based_on_suite_stats.robot +51 -0
  281. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_if_test_passed_failed.robot +81 -0
  282. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_if_timeout_occurred.robot +37 -0
  283. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_if_unless.robot +127 -0
  284. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_variants_registering.robot +23 -0
  285. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_variants_variable_handling.robot +54 -0
  286. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_variants_with_escaping_control_arguments.robot +36 -0
  287. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keyword_with_errors.robot +148 -0
  288. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keywords.robot +58 -0
  289. data/vendor/robot/atest/robot/standard_libraries/builtin/run_keywords_with_arguments.robot +56 -0
  290. data/vendor/robot/atest/robot/standard_libraries/builtin/set_documentation.robot +39 -0
  291. data/vendor/robot/atest/robot/standard_libraries/builtin/set_library_search_order.robot +41 -0
  292. data/vendor/robot/atest/robot/standard_libraries/builtin/set_log_level.robot +30 -0
  293. data/vendor/robot/atest/robot/standard_libraries/builtin/set_resource_search_order.robot +40 -0
  294. data/vendor/robot/atest/robot/standard_libraries/builtin/set_suite_metadata.robot +63 -0
  295. data/vendor/robot/atest/robot/standard_libraries/builtin/set_test_message.robot +70 -0
  296. data/vendor/robot/atest/robot/standard_libraries/builtin/set_variable_if.robot +48 -0
  297. data/vendor/robot/atest/robot/standard_libraries/builtin/setting_variables.robot +140 -0
  298. data/vendor/robot/atest/robot/standard_libraries/builtin/should_be_equal.robot +64 -0
  299. data/vendor/robot/atest/robot/standard_libraries/builtin/should_be_equal_as_xxx.robot +50 -0
  300. data/vendor/robot/atest/robot/standard_libraries/builtin/should_be_true.robot +28 -0
  301. data/vendor/robot/atest/robot/standard_libraries/builtin/should_contain.robot +22 -0
  302. data/vendor/robot/atest/robot/standard_libraries/builtin/should_contain_any.robot +34 -0
  303. data/vendor/robot/atest/robot/standard_libraries/builtin/should_match.robot +36 -0
  304. data/vendor/robot/atest/robot/standard_libraries/builtin/should_xxx_with.robot +34 -0
  305. data/vendor/robot/atest/robot/standard_libraries/builtin/sleep.robot +28 -0
  306. data/vendor/robot/atest/robot/standard_libraries/builtin/tags.robot +89 -0
  307. data/vendor/robot/atest/robot/standard_libraries/builtin/used_in_custom_libs_and_listeners.robot +20 -0
  308. data/vendor/robot/atest/robot/standard_libraries/builtin/variable_should_exist.robot +82 -0
  309. data/vendor/robot/atest/robot/standard_libraries/builtin/wait_until_keyword_succeeds.robot +96 -0
  310. data/vendor/robot/atest/robot/standard_libraries/collections/dictionary.robot +159 -0
  311. data/vendor/robot/atest/robot/standard_libraries/collections/list.robot +318 -0
  312. data/vendor/robot/atest/robot/standard_libraries/datetime/add_time_to_date.robot +10 -0
  313. data/vendor/robot/atest/robot/standard_libraries/datetime/convert_date_input_format.robot +28 -0
  314. data/vendor/robot/atest/robot/standard_libraries/datetime/convert_date_result_format.robot +28 -0
  315. data/vendor/robot/atest/robot/standard_libraries/datetime/convert_time_input_format.robot +28 -0
  316. data/vendor/robot/atest/robot/standard_libraries/datetime/convert_time_result_format.robot +28 -0
  317. data/vendor/robot/atest/robot/standard_libraries/datetime/date_ranges.robot +22 -0
  318. data/vendor/robot/atest/robot/standard_libraries/datetime/get_current_date.robot +28 -0
  319. data/vendor/robot/atest/robot/standard_libraries/datetime/subtract_date_from_date.robot +10 -0
  320. data/vendor/robot/atest/robot/standard_libraries/datetime/subtract_time_from_date.robot +10 -0
  321. data/vendor/robot/atest/robot/standard_libraries/datetime/time_calculations.robot +10 -0
  322. data/vendor/robot/atest/robot/standard_libraries/dialogs/dialogs.robot +55 -0
  323. data/vendor/robot/atest/robot/standard_libraries/easter.robot +14 -0
  324. data/vendor/robot/atest/robot/standard_libraries/operating_system/create_and_remove_dir.robot +37 -0
  325. data/vendor/robot/atest/robot/standard_libraries/operating_system/create_file.robot +40 -0
  326. data/vendor/robot/atest/robot/standard_libraries/operating_system/env_vars.robot +64 -0
  327. data/vendor/robot/atest/robot/standard_libraries/operating_system/file_and_dir_empty_or_not.robot +52 -0
  328. data/vendor/robot/atest/robot/standard_libraries/operating_system/file_and_dir_existence.robot +82 -0
  329. data/vendor/robot/atest/robot/standard_libraries/operating_system/get_file.robot +113 -0
  330. data/vendor/robot/atest/robot/standard_libraries/operating_system/get_file_size.robot +21 -0
  331. data/vendor/robot/atest/robot/standard_libraries/operating_system/list_dir.robot +64 -0
  332. data/vendor/robot/atest/robot/standard_libraries/operating_system/modified_time.robot +56 -0
  333. data/vendor/robot/atest/robot/standard_libraries/operating_system/move_copy_directory.robot +34 -0
  334. data/vendor/robot/atest/robot/standard_libraries/operating_system/move_copy_file.robot +93 -0
  335. data/vendor/robot/atest/robot/standard_libraries/operating_system/move_copy_files.robot +76 -0
  336. data/vendor/robot/atest/robot/standard_libraries/operating_system/path.robot +28 -0
  337. data/vendor/robot/atest/robot/standard_libraries/operating_system/path_expansion.robot +11 -0
  338. data/vendor/robot/atest/robot/standard_libraries/operating_system/remove_file.robot +33 -0
  339. data/vendor/robot/atest/robot/standard_libraries/operating_system/run.robot +44 -0
  340. data/vendor/robot/atest/robot/standard_libraries/operating_system/special_names.robot +32 -0
  341. data/vendor/robot/atest/robot/standard_libraries/operating_system/touch.robot +28 -0
  342. data/vendor/robot/atest/robot/standard_libraries/operating_system/wait_until_removed_created.robot +52 -0
  343. data/vendor/robot/atest/robot/standard_libraries/process/active_process.robot +22 -0
  344. data/vendor/robot/atest/robot/standard_libraries/process/commandline.robot +25 -0
  345. data/vendor/robot/atest/robot/standard_libraries/process/env_config.robot +25 -0
  346. data/vendor/robot/atest/robot/standard_libraries/process/get_process_result.robot +25 -0
  347. data/vendor/robot/atest/robot/standard_libraries/process/is_process_alive.robot +13 -0
  348. data/vendor/robot/atest/robot/standard_libraries/process/newlines.robot +13 -0
  349. data/vendor/robot/atest/robot/standard_libraries/process/no_active_process.robot +13 -0
  350. data/vendor/robot/atest/robot/standard_libraries/process/output_encoding.robot +19 -0
  351. data/vendor/robot/atest/robot/standard_libraries/process/passing_arguments.robot +68 -0
  352. data/vendor/robot/atest/robot/standard_libraries/process/process_library.robot +27 -0
  353. data/vendor/robot/atest/robot/standard_libraries/process/run_process_with_timeout.robot +38 -0
  354. data/vendor/robot/atest/robot/standard_libraries/process/sending_signal.robot +48 -0
  355. data/vendor/robot/atest/robot/standard_libraries/process/stdout_and_stderr.robot +43 -0
  356. data/vendor/robot/atest/robot/standard_libraries/process/terminate_process.robot +51 -0
  357. data/vendor/robot/atest/robot/standard_libraries/process/wait_for_process.robot +32 -0
  358. data/vendor/robot/atest/robot/standard_libraries/remote/argument_coersion.robot +97 -0
  359. data/vendor/robot/atest/robot/standard_libraries/remote/arguments.robot +64 -0
  360. data/vendor/robot/atest/robot/standard_libraries/remote/binary_result.robot +27 -0
  361. data/vendor/robot/atest/robot/standard_libraries/remote/dict_result.robot +10 -0
  362. data/vendor/robot/atest/robot/standard_libraries/remote/documentation.robot +52 -0
  363. data/vendor/robot/atest/robot/standard_libraries/remote/invalid.robot +20 -0
  364. data/vendor/robot/atest/robot/standard_libraries/remote/keyword_tags.robot +29 -0
  365. data/vendor/robot/atest/robot/standard_libraries/remote/remote_resource.robot +30 -0
  366. data/vendor/robot/atest/robot/standard_libraries/remote/simple_server.robot +42 -0
  367. data/vendor/robot/atest/robot/standard_libraries/remote/special_errors.robot +19 -0
  368. data/vendor/robot/atest/robot/standard_libraries/remote/timeouts.robot +10 -0
  369. data/vendor/robot/atest/robot/standard_libraries/reserved.robot +20 -0
  370. data/vendor/robot/atest/robot/standard_libraries/screenshot/set_screenshot_directory.robot +8 -0
  371. data/vendor/robot/atest/robot/standard_libraries/screenshot/take_screenshot.robot +42 -0
  372. data/vendor/robot/atest/robot/standard_libraries/string/convert_to.robot +10 -0
  373. data/vendor/robot/atest/robot/standard_libraries/string/encode_decode.robot +36 -0
  374. data/vendor/robot/atest/robot/standard_libraries/string/generate_random_string.robot +29 -0
  375. data/vendor/robot/atest/robot/standard_libraries/string/get_matching_lines.robot +90 -0
  376. data/vendor/robot/atest/robot/standard_libraries/string/get_regexp_matches.robot +28 -0
  377. data/vendor/robot/atest/robot/standard_libraries/string/remove_from_string.robot +25 -0
  378. data/vendor/robot/atest/robot/standard_libraries/string/replace_string.robot +32 -0
  379. data/vendor/robot/atest/robot/standard_libraries/string/should_be.robot +64 -0
  380. data/vendor/robot/atest/robot/standard_libraries/string/split_string.robot +65 -0
  381. data/vendor/robot/atest/robot/standard_libraries/string/string.robot +71 -0
  382. data/vendor/robot/atest/robot/standard_libraries/telnet/__init__.robot +2 -0
  383. data/vendor/robot/atest/robot/standard_libraries/telnet/configuration.robot +108 -0
  384. data/vendor/robot/atest/robot/standard_libraries/telnet/connections.robot +22 -0
  385. data/vendor/robot/atest/robot/standard_libraries/telnet/login.robot +40 -0
  386. data/vendor/robot/atest/robot/standard_libraries/telnet/read_and_write.robot +101 -0
  387. data/vendor/robot/atest/robot/standard_libraries/telnet/telnet_resource.robot +3 -0
  388. data/vendor/robot/atest/robot/standard_libraries/telnet/terminal_emulation.robot +68 -0
  389. data/vendor/robot/atest/robot/standard_libraries/xml/add_and_remove_elements.robot +75 -0
  390. data/vendor/robot/atest/robot/standard_libraries/xml/add_and_remove_elements_with_lxml.robot +74 -0
  391. data/vendor/robot/atest/robot/standard_libraries/xml/clear_element.robot +17 -0
  392. data/vendor/robot/atest/robot/standard_libraries/xml/clear_element_with_lxml.robot +17 -0
  393. data/vendor/robot/atest/robot/standard_libraries/xml/copy_element.robot +17 -0
  394. data/vendor/robot/atest/robot/standard_libraries/xml/copy_element_with_lxml.robot +17 -0
  395. data/vendor/robot/atest/robot/standard_libraries/xml/element_attribute.robot +52 -0
  396. data/vendor/robot/atest/robot/standard_libraries/xml/element_attribute_with_lxml.robot +51 -0
  397. data/vendor/robot/atest/robot/standard_libraries/xml/element_should_exist.robot +39 -0
  398. data/vendor/robot/atest/robot/standard_libraries/xml/element_should_exist_with_lxml.robot +39 -0
  399. data/vendor/robot/atest/robot/standard_libraries/xml/element_text.robot +52 -0
  400. data/vendor/robot/atest/robot/standard_libraries/xml/element_text_with_lxml.robot +53 -0
  401. data/vendor/robot/atest/robot/standard_libraries/xml/elements_should_be_equal.robot +40 -0
  402. data/vendor/robot/atest/robot/standard_libraries/xml/elements_should_be_equal_with_lxml.robot +41 -0
  403. data/vendor/robot/atest/robot/standard_libraries/xml/elements_should_match.robot +38 -0
  404. data/vendor/robot/atest/robot/standard_libraries/xml/elements_should_match_with_lxml.robot +38 -0
  405. data/vendor/robot/atest/robot/standard_libraries/xml/etree_namespaces.robot +23 -0
  406. data/vendor/robot/atest/robot/standard_libraries/xml/etree_namespaces_with_lxml.robot +23 -0
  407. data/vendor/robot/atest/robot/standard_libraries/xml/get_elements.robot +44 -0
  408. data/vendor/robot/atest/robot/standard_libraries/xml/get_elements_with_lxml.robot +44 -0
  409. data/vendor/robot/atest/robot/standard_libraries/xml/namespaces.robot +26 -0
  410. data/vendor/robot/atest/robot/standard_libraries/xml/namespaces_with_lxml.robot +26 -0
  411. data/vendor/robot/atest/robot/standard_libraries/xml/parsing.robot +25 -0
  412. data/vendor/robot/atest/robot/standard_libraries/xml/parsing_with_lxml.robot +26 -0
  413. data/vendor/robot/atest/robot/standard_libraries/xml/save_xml.robot +52 -0
  414. data/vendor/robot/atest/robot/standard_libraries/xml/save_xml_with_lxml.robot +47 -0
  415. data/vendor/robot/atest/robot/standard_libraries/xml/set_element_information.robot +64 -0
  416. data/vendor/robot/atest/robot/standard_libraries/xml/set_element_information_with_lxml.robot +65 -0
  417. data/vendor/robot/atest/robot/standard_libraries/xml/strip_namespaces.robot +19 -0
  418. data/vendor/robot/atest/robot/standard_libraries/xml/strip_namespaces_with_lxml.robot +20 -0
  419. data/vendor/robot/atest/robot/standard_libraries/xml/to_string.robot +23 -0
  420. data/vendor/robot/atest/robot/standard_libraries/xml/to_string_with_lxml.robot +24 -0
  421. data/vendor/robot/atest/robot/standard_libraries/xml/xml_resource.robot +6 -0
  422. data/vendor/robot/atest/robot/standard_libraries/xml/xpath.robot +69 -0
  423. data/vendor/robot/atest/robot/standard_libraries/xml/xpath_with_lxml.robot +59 -0
  424. data/vendor/robot/atest/robot/tags/critical_tags.robot +58 -0
  425. data/vendor/robot/atest/robot/tags/critical_tags_with_rebot.robot +64 -0
  426. data/vendor/robot/atest/robot/tags/default_and_force_tags.robot +13 -0
  427. data/vendor/robot/atest/robot/tags/default_tags.robot +13 -0
  428. data/vendor/robot/atest/robot/tags/force_tags.robot +13 -0
  429. data/vendor/robot/atest/robot/tags/include_and_exclude.robot +122 -0
  430. data/vendor/robot/atest/robot/tags/include_and_exclude_with_rebot.robot +171 -0
  431. data/vendor/robot/atest/robot/tags/no_force_nor_default_tags.robot +13 -0
  432. data/vendor/robot/atest/robot/tags/set_tag.robot +33 -0
  433. data/vendor/robot/atest/robot/tags/set_tag_with_rebot.robot +38 -0
  434. data/vendor/robot/atest/robot/tags/tag_doc.robot +40 -0
  435. data/vendor/robot/atest/robot/tags/tag_doc_with_rebot.robot +43 -0
  436. data/vendor/robot/atest/robot/tags/tag_stat_include_and_exclude.robot +73 -0
  437. data/vendor/robot/atest/robot/tags/tag_stat_include_and_exclude_with_rebot.robot +77 -0
  438. data/vendor/robot/atest/robot/tags/tag_stat_link.robot +42 -0
  439. data/vendor/robot/atest/robot/tags/tag_stat_link_with_rebot.robot +44 -0
  440. data/vendor/robot/atest/robot/tags/tags_are_not_normalized.robot +37 -0
  441. data/vendor/robot/atest/robot/test_libraries/as_listener.robot +87 -0
  442. data/vendor/robot/atest/robot/test_libraries/as_listener_in_java.robot +26 -0
  443. data/vendor/robot/atest/robot/test_libraries/as_listener_with_empty_library.robot +13 -0
  444. data/vendor/robot/atest/robot/test_libraries/as_listener_with_import_library.robot +10 -0
  445. data/vendor/robot/atest/robot/test_libraries/as_listener_with_log_level.robot +15 -0
  446. data/vendor/robot/atest/robot/test_libraries/as_listenerv3.robot +41 -0
  447. data/vendor/robot/atest/robot/test_libraries/avoid_properties_when_creating_libraries.robot +18 -0
  448. data/vendor/robot/atest/robot/test_libraries/deprecated_keywords.robot +45 -0
  449. data/vendor/robot/atest/robot/test_libraries/dynamic_kwargs_support_java.robot +26 -0
  450. data/vendor/robot/atest/robot/test_libraries/dynamic_kwargs_support_python.robot +44 -0
  451. data/vendor/robot/atest/robot/test_libraries/dynamic_libraries_with_invalid_argspec.robot +48 -0
  452. data/vendor/robot/atest/robot/test_libraries/dynamic_library_args_and_docs.robot +92 -0
  453. data/vendor/robot/atest/robot/test_libraries/dynamic_library_java.robot +19 -0
  454. data/vendor/robot/atest/robot/test_libraries/dynamic_library_python.robot +60 -0
  455. data/vendor/robot/atest/robot/test_libraries/dynamic_library_tags.robot +25 -0
  456. data/vendor/robot/atest/robot/test_libraries/error_msg_and_details.robot +130 -0
  457. data/vendor/robot/atest/robot/test_libraries/hybrid_library.robot +49 -0
  458. data/vendor/robot/atest/robot/test_libraries/import_and_init_logging.robot +57 -0
  459. data/vendor/robot/atest/robot/test_libraries/internal_modules_not_importable.robot +28 -0
  460. data/vendor/robot/atest/robot/test_libraries/invalid_java_libraries.robot +42 -0
  461. data/vendor/robot/atest/robot/test_libraries/java_libraries.robot +89 -0
  462. data/vendor/robot/atest/robot/test_libraries/java_library_imports_with_args.robot +48 -0
  463. data/vendor/robot/atest/robot/test_libraries/libraries_extending_existing_classes.robot +45 -0
  464. data/vendor/robot/atest/robot/test_libraries/library_import_by_path.robot +60 -0
  465. data/vendor/robot/atest/robot/test_libraries/library_import_failing.robot +58 -0
  466. data/vendor/robot/atest/robot/test_libraries/library_import_from_archive.robot +19 -0
  467. data/vendor/robot/atest/robot/test_libraries/library_imports.robot +70 -0
  468. data/vendor/robot/atest/robot/test_libraries/library_imports_with_args.robot +49 -0
  469. data/vendor/robot/atest/robot/test_libraries/library_scope.robot +18 -0
  470. data/vendor/robot/atest/robot/test_libraries/library_version.robot +21 -0
  471. data/vendor/robot/atest/robot/test_libraries/logging_api.robot +58 -0
  472. data/vendor/robot/atest/robot/test_libraries/logging_with_logging.robot +66 -0
  473. data/vendor/robot/atest/robot/test_libraries/module_library.robot +76 -0
  474. data/vendor/robot/atest/robot/test_libraries/named_args_in_imports.robot +20 -0
  475. data/vendor/robot/atest/robot/test_libraries/new_style_classes.robot +18 -0
  476. data/vendor/robot/atest/robot/test_libraries/non_main_threads_logging.robot +16 -0
  477. data/vendor/robot/atest/robot/test_libraries/package_library.robot +58 -0
  478. data/vendor/robot/atest/robot/test_libraries/print_logging.robot +77 -0
  479. data/vendor/robot/atest/robot/test_libraries/print_logging_java.robot +45 -0
  480. data/vendor/robot/atest/robot/test_libraries/resource_for_importing_libs_with_args.robot +15 -0
  481. data/vendor/robot/atest/robot/test_libraries/timestamps_for_stdout_messages.robot +33 -0
  482. data/vendor/robot/atest/robot/test_libraries/with_name.robot +159 -0
  483. data/vendor/robot/atest/robot/testdoc/testdoc.robot +92 -0
  484. data/vendor/robot/atest/robot/tidy/TidyLib.py +86 -0
  485. data/vendor/robot/atest/robot/tidy/empty_tables.robot +12 -0
  486. data/vendor/robot/atest/robot/tidy/format_documentation.robot +21 -0
  487. data/vendor/robot/atest/robot/tidy/inplace.robot +24 -0
  488. data/vendor/robot/atest/robot/tidy/line_separator.robot +33 -0
  489. data/vendor/robot/atest/robot/tidy/tidy.robot +71 -0
  490. data/vendor/robot/atest/robot/tidy/tidy_resource.robot +31 -0
  491. data/vendor/robot/atest/robot/variables/automatic_variables.robot +69 -0
  492. data/vendor/robot/atest/robot/variables/builtin_variables.robot +67 -0
  493. data/vendor/robot/atest/robot/variables/catenate_scalars_in_variable_table.robot +59 -0
  494. data/vendor/robot/atest/robot/variables/commandline_variable_files.robot +64 -0
  495. data/vendor/robot/atest/robot/variables/commandline_variables.robot +27 -0
  496. data/vendor/robot/atest/robot/variables/dict_variable_in_variable_table.robot +65 -0
  497. data/vendor/robot/atest/robot/variables/dict_variable_items.robot +34 -0
  498. data/vendor/robot/atest/robot/variables/environment_variables.robot +58 -0
  499. data/vendor/robot/atest/robot/variables/extended_assign.robot +38 -0
  500. data/vendor/robot/atest/robot/variables/extended_variables.robot +76 -0
  501. data/vendor/robot/atest/robot/variables/getting_vars_from_dynamic_var_file.robot +23 -0
  502. data/vendor/robot/atest/robot/variables/keyword_status_and_message.robot +40 -0
  503. data/vendor/robot/atest/robot/variables/list_and_dict_from_variable_file.robot +64 -0
  504. data/vendor/robot/atest/robot/variables/list_as_scalar.robot +19 -0
  505. data/vendor/robot/atest/robot/variables/list_variable_items.robot +32 -0
  506. data/vendor/robot/atest/robot/variables/non_string_variables.robot +18 -0
  507. data/vendor/robot/atest/robot/variables/outputfile_variables.robot +26 -0
  508. data/vendor/robot/atest/robot/variables/recursive_definition.robot +67 -0
  509. data/vendor/robot/atest/robot/variables/reserved_syntax.robot +22 -0
  510. data/vendor/robot/atest/robot/variables/return_values.robot +213 -0
  511. data/vendor/robot/atest/robot/variables/return_values_java.robot +71 -0
  512. data/vendor/robot/atest/robot/variables/same_variable_file_names.robot +16 -0
  513. data/vendor/robot/atest/robot/variables/scalar_as_list.robot +25 -0
  514. data/vendor/robot/atest/robot/variables/shared_scope.robot +13 -0
  515. data/vendor/robot/atest/robot/variables/suite_source.robot +16 -0
  516. data/vendor/robot/atest/robot/variables/using_dict_variables.robot +62 -0
  517. data/vendor/robot/atest/robot/variables/variable_file_implemented_as_class.robot +37 -0
  518. data/vendor/robot/atest/robot/variables/variable_priorities.robot +36 -0
  519. data/vendor/robot/atest/robot/variables/variable_recommendations.robot +82 -0
  520. data/vendor/robot/atest/robot/variables/variable_scopes.robot +17 -0
  521. data/vendor/robot/atest/robot/variables/variable_table.robot +94 -0
  522. data/vendor/robot/atest/robot/variables/variable_table_in_resource_file.robot +88 -0
  523. data/vendor/robot/atest/robot/variables/variables_from_resource_files.robot +61 -0
  524. data/vendor/robot/atest/robot/variables/variables_from_variable_files.robot +52 -0
  525. data/vendor/robot/atest/robot/variables/variables_in_import_settings.robot +14 -0
  526. data/vendor/robot/atest/robot/variables/variables_inside_variables.robot +26 -0
  527. data/vendor/robot/atest/robot/variables/yaml_variable_file.robot +62 -0
  528. data/vendor/robot/atest/run.py +135 -0
  529. data/vendor/robot/atest/testdata/cli/console/markers.robot +64 -0
  530. data/vendor/robot/atest/testdata/cli/dryrun/EmbeddedArgs.py +7 -0
  531. data/vendor/robot/atest/testdata/cli/dryrun/Library.py +22 -0
  532. data/vendor/robot/atest/testdata/cli/dryrun/args.robot +50 -0
  533. data/vendor/robot/atest/testdata/cli/dryrun/dryrun.robot +172 -0
  534. data/vendor/robot/atest/testdata/cli/dryrun/executed_builtin_keywords.robot +20 -0
  535. data/vendor/robot/atest/testdata/cli/dryrun/kwargs.robot +27 -0
  536. data/vendor/robot/atest/testdata/cli/dryrun/more_tests.robot +9 -0
  537. data/vendor/robot/atest/testdata/cli/dryrun/resource.robot +17 -0
  538. data/vendor/robot/atest/testdata/cli/dryrun/run_keyword_variants.robot +226 -0
  539. data/vendor/robot/atest/testdata/cli/dryrun/run_keyword_variants_in_suite_teardown.robot +24 -0
  540. data/vendor/robot/atest/testdata/cli/dryrun/vars.py +1 -0
  541. data/vendor/robot/atest/testdata/cli/error/import_error.robot +8 -0
  542. data/vendor/robot/atest/testdata/cli/error/parsing_error.robot +8 -0
  543. data/vendor/robot/atest/testdata/cli/error/resource_error.robot +8 -0
  544. data/vendor/robot/atest/testdata/cli/error/resource_with_error.robot +6 -0
  545. data/vendor/robot/atest/testdata/cli/error/runtime_error.robot +14 -0
  546. data/vendor/robot/atest/testdata/cli/remove_keywords/all_combinations.robot +147 -0
  547. data/vendor/robot/atest/testdata/cli/remove_keywords/wait_until_keyword_succeeds.robot +39 -0
  548. data/vendor/robot/atest/testdata/cli/runfailed/onlypassing/passing.robot +3 -0
  549. data/vendor/robot/atest/testdata/cli/runfailed/runfailed1.robot +11 -0
  550. data/vendor/robot/atest/testdata/cli/runfailed/runfailed2.robot +8 -0
  551. data/vendor/robot/atest/testdata/cli/runfailed/suite/subsuite/suite_failed.robot +7 -0
  552. data/vendor/robot/atest/testdata/cli/runfailed/suite/subsuite/suite_failed_with_excluded_tag.robot +8 -0
  553. data/vendor/robot/atest/testdata/cli/runfailed/suite/subsuite/suite_succeed.robot +4 -0
  554. data/vendor/robot/atest/testdata/cli/runfailed/suite/suite_teardown_failing.robot +7 -0
  555. data/vendor/robot/atest/testdata/core/binary_data.robot +20 -0
  556. data/vendor/robot/atest/testdata/core/empty_testcase_and_uk.robot +68 -0
  557. data/vendor/robot/atest/testdata/core/erroring_suite_setup.robot +19 -0
  558. data/vendor/robot/atest/testdata/core/erroring_suite_teardown.robot +22 -0
  559. data/vendor/robot/atest/testdata/core/failing_higher_level_suite_setup/__init__.robot +2 -0
  560. data/vendor/robot/atest/testdata/core/failing_higher_level_suite_setup/suite1.robot +14 -0
  561. data/vendor/robot/atest/testdata/core/failing_higher_level_suite_setup/suite2.robot +5 -0
  562. data/vendor/robot/atest/testdata/core/failing_suite_setup.robot +12 -0
  563. data/vendor/robot/atest/testdata/core/failing_suite_setup_and_teardown.robot +24 -0
  564. data/vendor/robot/atest/testdata/core/failing_suite_teardown.robot +29 -0
  565. data/vendor/robot/atest/testdata/core/failing_suite_teardown_2.robot +41 -0
  566. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/__init__.robot +2 -0
  567. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/failing_teardown.robot +23 -0
  568. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/failing_teardown_dir/__init__.robot +2 -0
  569. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/failing_teardown_dir/ftd_failing_teardown.robot +29 -0
  570. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/failing_teardown_dir/ftd_passing_teardown.robot +20 -0
  571. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/passing_teardown.robot +14 -0
  572. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/passing_teardown_dir/ptd_failing_teardown.robot +23 -0
  573. data/vendor/robot/atest/testdata/core/failing_suite_teardown_dir/passing_teardown_dir/ptd_passing_teardown.robot +14 -0
  574. data/vendor/robot/atest/testdata/core/keyword_teardown.robot +109 -0
  575. data/vendor/robot/atest/testdata/core/long_suite_setup_and_teardown_errors.robot +21 -0
  576. data/vendor/robot/atest/testdata/core/overriding_default_settings_with_none.robot +60 -0
  577. data/vendor/robot/atest/testdata/core/passing_suite_setup.robot +6 -0
  578. data/vendor/robot/atest/testdata/core/passing_suite_setup_and_teardown.robot +26 -0
  579. data/vendor/robot/atest/testdata/core/passing_suite_teardown.robot +11 -0
  580. data/vendor/robot/atest/testdata/core/resource_and_variable_imports.robot +130 -0
  581. data/vendor/robot/atest/testdata/core/resources.robot +8 -0
  582. data/vendor/robot/atest/testdata/core/resources_and_variables/dynamicVariables.py +6 -0
  583. data/vendor/robot/atest/testdata/core/resources_and_variables/dynamic_variables.py +20 -0
  584. data/vendor/robot/atest/testdata/core/resources_and_variables/empty_resource.robot +1 -0
  585. data/vendor/robot/atest/testdata/core/resources_and_variables/invalid_list_variable.py +2 -0
  586. data/vendor/robot/atest/testdata/core/resources_and_variables/invalid_variable_file.py +1 -0
  587. data/vendor/robot/atest/testdata/core/resources_and_variables/resource_with_testcase_table.robot +4 -0
  588. data/vendor/robot/atest/testdata/core/resources_and_variables/resources.robot +17 -0
  589. data/vendor/robot/atest/testdata/core/resources_and_variables/resources2.robot +7 -0
  590. data/vendor/robot/atest/testdata/core/resources_and_variables/resources_imported_by_resource.robot +7 -0
  591. data/vendor/robot/atest/testdata/core/resources_and_variables/variables.py +6 -0
  592. data/vendor/robot/atest/testdata/core/resources_and_variables/variables2.py +1 -0
  593. data/vendor/robot/atest/testdata/core/resources_and_variables/variables_imported_by_resource.py +1 -0
  594. data/vendor/robot/atest/testdata/core/resources_and_variables/vars_from_cli.py +5 -0
  595. data/vendor/robot/atest/testdata/core/resources_and_variables/vars_from_cli2.py +11 -0
  596. data/vendor/robot/atest/testdata/core/same_test_multiple_times_in_suite.robot +27 -0
  597. data/vendor/robot/atest/testdata/core/test_case_status.robot +81 -0
  598. data/vendor/robot/atest/testdata/core/test_suite_dir/_ignore_this_dir/ignore_this_file.robot +3 -0
  599. data/vendor/robot/atest/testdata/core/test_suite_dir/_ignore_this_file.robot +3 -0
  600. data/vendor/robot/atest/testdata/core/test_suite_dir/no_extension +2 -0
  601. data/vendor/robot/atest/testdata/core/test_suite_dir/no_tests_dir_1/some.txt +1 -0
  602. data/vendor/robot/atest/testdata/core/test_suite_dir/no_tests_file_1.robot +7 -0
  603. data/vendor/robot/atest/testdata/core/test_suite_dir/test_dir_1/no_tests_dir_2/no_tests_file_3.robot +7 -0
  604. data/vendor/robot/atest/testdata/core/test_suite_dir/test_dir_1/no_tests_file_2.robot +7 -0
  605. data/vendor/robot/atest/testdata/core/test_suite_dir/test_dir_1/test_dir_2/test_dir_3/test_file_3.robot +3 -0
  606. data/vendor/robot/atest/testdata/core/test_suite_dir/test_dir_1/test_file_2.robot +3 -0
  607. data/vendor/robot/atest/testdata/core/test_suite_dir/test_file_1.robot +3 -0
  608. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/__init__.robot +31 -0
  609. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/sub_suite_with_init_file/__INIT__.robot +23 -0
  610. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/sub_suite_with_init_file/test_cases_1.robot +26 -0
  611. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/sub_suite_with_init_file/test_cases_2.robot +16 -0
  612. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/sub_suite_without_init_file/test_cases_1.robot +26 -0
  613. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/sub_suite_without_init_file/test_cases_2.robot +16 -0
  614. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/test_cases_1.robot +26 -0
  615. data/vendor/robot/atest/testdata/core/test_suite_dir_with_init_file/test_cases_2.robot +16 -0
  616. data/vendor/robot/atest/testdata/core/timeouts.robot +329 -0
  617. data/vendor/robot/atest/testdata/core/timeouts_with_custom_messages.robot +61 -0
  618. data/vendor/robot/atest/testdata/core/unicode_failure_in_suite_setup_and_teardown.robot +13 -0
  619. data/vendor/robot/atest/testdata/core/unicode_with_java_libs.robot +14 -0
  620. data/vendor/robot/atest/testdata/core/variables.py +3 -0
  621. data/vendor/robot/atest/testdata/keywords/DupeDynamicKeywords.py +10 -0
  622. data/vendor/robot/atest/testdata/keywords/DupeHybridKeywords.py +12 -0
  623. data/vendor/robot/atest/testdata/keywords/DupeKeywords.py +26 -0
  624. data/vendor/robot/atest/testdata/keywords/DynamicLibraryWithKeywordTags.py +10 -0
  625. data/vendor/robot/atest/testdata/keywords/LibraryWithKeywordTags.py +32 -0
  626. data/vendor/robot/atest/testdata/keywords/TraceLogArgsLibrary.py +42 -0
  627. data/vendor/robot/atest/testdata/keywords/dots_in_keyword_name.robot +85 -0
  628. data/vendor/robot/atest/testdata/keywords/dupe_keywords.robot +12 -0
  629. data/vendor/robot/atest/testdata/keywords/duplicate_dynamic_keywords.robot +20 -0
  630. data/vendor/robot/atest/testdata/keywords/duplicate_hybrid_keywords.robot +20 -0
  631. data/vendor/robot/atest/testdata/keywords/duplicate_static_keywords.robot +28 -0
  632. data/vendor/robot/atest/testdata/keywords/duplicate_user_keywords.robot +61 -0
  633. data/vendor/robot/atest/testdata/keywords/embedded_arguments.robot +274 -0
  634. data/vendor/robot/atest/testdata/keywords/embedded_arguments_library_keywords.robot +152 -0
  635. data/vendor/robot/atest/testdata/keywords/embedded_arguments_match_all.robot +14 -0
  636. data/vendor/robot/atest/testdata/keywords/java_argument_type_coercion.robot +41 -0
  637. data/vendor/robot/atest/testdata/keywords/java_arguments.robot +276 -0
  638. data/vendor/robot/atest/testdata/keywords/keyword_names.robot +127 -0
  639. data/vendor/robot/atest/testdata/keywords/keyword_namespaces.robot +106 -0
  640. data/vendor/robot/atest/testdata/keywords/keyword_not_found.robot +38 -0
  641. data/vendor/robot/atest/testdata/keywords/keyword_recommendations.robot +315 -0
  642. data/vendor/robot/atest/testdata/keywords/keyword_tags.robot +67 -0
  643. data/vendor/robot/atest/testdata/keywords/library/__init__.py +0 -0
  644. data/vendor/robot/atest/testdata/keywords/library/with/__init__.py +0 -0
  645. data/vendor/robot/atest/testdata/keywords/library/with/dots/__init__.py +8 -0
  646. data/vendor/robot/atest/testdata/keywords/library/with/dots/in/__init__.py +0 -0
  647. data/vendor/robot/atest/testdata/keywords/library/with/dots/in/name/__init__.py +12 -0
  648. data/vendor/robot/atest/testdata/keywords/library_with_keywords_with_dots_in_name.py +9 -0
  649. data/vendor/robot/atest/testdata/keywords/named_args/DynamicLibrary.py +40 -0
  650. data/vendor/robot/atest/testdata/keywords/named_args/DynamicLibraryWithKwargsSupport.py +15 -0
  651. data/vendor/robot/atest/testdata/keywords/named_args/KwargsLibrary.py +16 -0
  652. data/vendor/robot/atest/testdata/keywords/named_args/helper.py +21 -0
  653. data/vendor/robot/atest/testdata/keywords/named_args/python_library.py +19 -0
  654. data/vendor/robot/atest/testdata/keywords/named_args/variables_in_names.robot +63 -0
  655. data/vendor/robot/atest/testdata/keywords/named_args/with_dynamic_keywords.robot +131 -0
  656. data/vendor/robot/atest/testdata/keywords/named_args/with_dynamic_kwargs_support.robot +94 -0
  657. data/vendor/robot/atest/testdata/keywords/named_args/with_python_keywords.robot +250 -0
  658. data/vendor/robot/atest/testdata/keywords/named_args/with_user_keywords.robot +172 -0
  659. data/vendor/robot/atest/testdata/keywords/optional_given_when_then.robot +71 -0
  660. data/vendor/robot/atest/testdata/keywords/python_arguments.robot +95 -0
  661. data/vendor/robot/atest/testdata/keywords/resource.with.dots.in.name.robot +12 -0
  662. data/vendor/robot/atest/testdata/keywords/resource_with_keywords_with_dots_in_name.robot +9 -0
  663. data/vendor/robot/atest/testdata/keywords/resources/MyLibrary1.py +78 -0
  664. data/vendor/robot/atest/testdata/keywords/resources/MyLibrary2.py +34 -0
  665. data/vendor/robot/atest/testdata/keywords/resources/RecLibrary1.py +82 -0
  666. data/vendor/robot/atest/testdata/keywords/resources/RecLibrary2.py +21 -0
  667. data/vendor/robot/atest/testdata/keywords/resources/embedded_args_in_lk_1.py +118 -0
  668. data/vendor/robot/atest/testdata/keywords/resources/embedded_args_in_lk_2.py +7 -0
  669. data/vendor/robot/atest/testdata/keywords/resources/embedded_args_in_uk_1.robot +10 -0
  670. data/vendor/robot/atest/testdata/keywords/resources/embedded_args_in_uk_2.robot +4 -0
  671. data/vendor/robot/atest/testdata/keywords/resources/my_resource_1.robot +42 -0
  672. data/vendor/robot/atest/testdata/keywords/resources/my_resource_2.robot +15 -0
  673. data/vendor/robot/atest/testdata/keywords/resources/optional_given_when_then.robot +10 -0
  674. data/vendor/robot/atest/testdata/keywords/resources/recommendation_resource_1.robot +18 -0
  675. data/vendor/robot/atest/testdata/keywords/resources/recommendation_resource_2.robot +15 -0
  676. data/vendor/robot/atest/testdata/keywords/trace_log_keyword_arguments.robot +115 -0
  677. data/vendor/robot/atest/testdata/keywords/trace_log_return_value.robot +36 -0
  678. data/vendor/robot/atest/testdata/keywords/user_keyword_arguments.robot +306 -0
  679. data/vendor/robot/atest/testdata/keywords/user_keyword_kwargs.robot +186 -0
  680. data/vendor/robot/atest/testdata/keywords/user_keyword_return_values.robot +84 -0
  681. data/vendor/robot/atest/testdata/libdoc/DocFormat.py +39 -0
  682. data/vendor/robot/atest/testdata/libdoc/DocFormatHtml.java +20 -0
  683. data/vendor/robot/atest/testdata/libdoc/DocFormatHtml.py +8 -0
  684. data/vendor/robot/atest/testdata/libdoc/DocFormatInvalid.py +8 -0
  685. data/vendor/robot/atest/testdata/libdoc/DocSetInInit.py +4 -0
  686. data/vendor/robot/atest/testdata/libdoc/DynamicLibrary.py +48 -0
  687. data/vendor/robot/atest/testdata/libdoc/DynamicLibraryWithoutGetKwArgsAndDoc.py +13 -0
  688. data/vendor/robot/atest/testdata/libdoc/Example.java +113 -0
  689. data/vendor/robot/atest/testdata/libdoc/ExampleSpec.xml +56 -0
  690. data/vendor/robot/atest/testdata/libdoc/InternalLinking.py +68 -0
  691. data/vendor/robot/atest/testdata/libdoc/InvalidKeywords.py +23 -0
  692. data/vendor/robot/atest/testdata/libdoc/NewStyleNoInit.py +5 -0
  693. data/vendor/robot/atest/testdata/libdoc/NoArgConstructor.java +17 -0
  694. data/vendor/robot/atest/testdata/libdoc/NoConstructor.java +5 -0
  695. data/vendor/robot/atest/testdata/libdoc/invalid_user_keywords.robot +13 -0
  696. data/vendor/robot/atest/testdata/libdoc/module.py +54 -0
  697. data/vendor/robot/atest/testdata/libdoc/no_arg_init.py +8 -0
  698. data/vendor/robot/atest/testdata/libdoc/resource.robot +62 -0
  699. data/vendor/robot/atest/testdata/misc/dummy_lib_test.robot +6 -0
  700. data/vendor/robot/atest/testdata/misc/for_loops.robot +12 -0
  701. data/vendor/robot/atest/testdata/misc/formatting_and_escaping.robot +26 -0
  702. data/vendor/robot/atest/testdata/misc/many_tests.robot +24 -0
  703. data/vendor/robot/atest/testdata/misc/multiple_suites/01__suite_first.robot +36 -0
  704. data/vendor/robot/atest/testdata/misc/multiple_suites/02__sub.suite.1/first__suite4.robot +36 -0
  705. data/vendor/robot/atest/testdata/misc/multiple_suites/02__sub.suite.1/second__.Sui.te.2..robot +36 -0
  706. data/vendor/robot/atest/testdata/misc/multiple_suites/03__suite3.robot +36 -0
  707. data/vendor/robot/atest/testdata/misc/multiple_suites/04__suite4.robot +36 -0
  708. data/vendor/robot/atest/testdata/misc/multiple_suites/05__suite5.robot +36 -0
  709. data/vendor/robot/atest/testdata/misc/multiple_suites/10__suite10.robot +36 -0
  710. data/vendor/robot/atest/testdata/misc/multiple_suites/SUite7.robot +39 -0
  711. data/vendor/robot/atest/testdata/misc/multiple_suites/suiTe_8.robot +36 -0
  712. data/vendor/robot/atest/testdata/misc/multiple_suites/suite 6.robot +39 -0
  713. data/vendor/robot/atest/testdata/misc/multiple_suites/suite_9_name.robot +36 -0
  714. data/vendor/robot/atest/testdata/misc/normal.robot +24 -0
  715. data/vendor/robot/atest/testdata/misc/pass_and_fail.robot +28 -0
  716. data/vendor/robot/atest/testdata/misc/setups_and_teardowns.robot +61 -0
  717. data/vendor/robot/atest/testdata/misc/suites/__init__.robot +7 -0
  718. data/vendor/robot/atest/testdata/misc/suites/fourth.robot +15 -0
  719. data/vendor/robot/atest/testdata/misc/suites/subsuites/sub1.robot +20 -0
  720. data/vendor/robot/atest/testdata/misc/suites/subsuites/sub2.robot +14 -0
  721. data/vendor/robot/atest/testdata/misc/suites/subsuites2/sub.suite.4.robot +3 -0
  722. data/vendor/robot/atest/testdata/misc/suites/subsuites2/subsuite3.robot +15 -0
  723. data/vendor/robot/atest/testdata/misc/suites/tsuite1.robot +18 -0
  724. data/vendor/robot/atest/testdata/misc/suites/tsuite2.robot +11 -0
  725. data/vendor/robot/atest/testdata/misc/suites/tsuite3.robot +12 -0
  726. data/vendor/robot/atest/testdata/misc/timeouts.robot +26 -0
  727. data/vendor/robot/atest/testdata/misc/unicode.robot +38 -0
  728. data/vendor/robot/atest/testdata/misc/warnings_and_errors.robot +29 -0
  729. data/vendor/robot/atest/testdata/output/flatten_keywords.robot +45 -0
  730. data/vendor/robot/atest/testdata/output/js_model.robot +22 -0
  731. data/vendor/robot/atest/testdata/output/listeners/LibraryWithFailingListener.py +4 -0
  732. data/vendor/robot/atest/testdata/output/listeners/RunKeywordWithNonStringArguments.py +5 -0
  733. data/vendor/robot/atest/testdata/output/listeners/failing_library_listener.robot +10 -0
  734. data/vendor/robot/atest/testdata/output/listeners/failing_listener.py +19 -0
  735. data/vendor/robot/atest/testdata/output/listeners/imports/another_resource.robot +3 -0
  736. data/vendor/robot/atest/testdata/output/listeners/imports/dynamically_imported_resource.robot +3 -0
  737. data/vendor/robot/atest/testdata/output/listeners/imports/imports.robot +29 -0
  738. data/vendor/robot/atest/testdata/output/listeners/imports/local_lib.py +7 -0
  739. data/vendor/robot/atest/testdata/output/listeners/imports/resource_with_imports.robot +7 -0
  740. data/vendor/robot/atest/testdata/output/listeners/imports/vars.py +2 -0
  741. data/vendor/robot/atest/testdata/output/listeners/keyword_argument_types.robot +16 -0
  742. data/vendor/robot/atest/testdata/output/listeners/logging_listener.py +23 -0
  743. data/vendor/robot/atest/testdata/output/listeners/test_template.robot +22 -0
  744. data/vendor/robot/atest/testdata/output/listeners/v3.py +103 -0
  745. data/vendor/robot/atest/testdata/output/listeners/verify_template_listener.py +12 -0
  746. data/vendor/robot/atest/testdata/output/names_needing_escaping.robot +46 -0
  747. data/vendor/robot/atest/testdata/parsing/bom.robot +9 -0
  748. data/vendor/robot/atest/testdata/parsing/bom.tsv +10 -0
  749. data/vendor/robot/atest/testdata/parsing/data_formats/html/empty.html +0 -0
  750. data/vendor/robot/atest/testdata/parsing/data_formats/html/invalid.html +1 -0
  751. data/vendor/robot/atest/testdata/parsing/data_formats/html/malformed.html +11 -0
  752. data/vendor/robot/atest/testdata/parsing/data_formats/html/not_a_picture.jpg +1 -0
  753. data/vendor/robot/atest/testdata/parsing/data_formats/html/sample.html +787 -0
  754. data/vendor/robot/atest/testdata/parsing/data_formats/html/with_init/__init__.html +303 -0
  755. data/vendor/robot/atest/testdata/parsing/data_formats/html/with_init/sub_suite1.html +291 -0
  756. data/vendor/robot/atest/testdata/parsing/data_formats/html/with_init/sub_suite2.html +397 -0
  757. data/vendor/robot/atest/testdata/parsing/data_formats/mixed_data/HTML.html +309 -0
  758. data/vendor/robot/atest/testdata/parsing/data_formats/mixed_data/REST.rest +71 -0
  759. data/vendor/robot/atest/testdata/parsing/data_formats/mixed_data/TSV.tsv +30 -0
  760. data/vendor/robot/atest/testdata/parsing/data_formats/mixed_data/TXT.txt +30 -0
  761. data/vendor/robot/atest/testdata/parsing/data_formats/resources/html_resource.html +226 -0
  762. data/vendor/robot/atest/testdata/parsing/data_formats/resources/html_resource2.html +213 -0
  763. data/vendor/robot/atest/testdata/parsing/data_formats/resources/rest_resource.rst +23 -0
  764. data/vendor/robot/atest/testdata/parsing/data_formats/resources/rest_resource2.rest +11 -0
  765. data/vendor/robot/atest/testdata/parsing/data_formats/resources/robot_resource.robot +11 -0
  766. data/vendor/robot/atest/testdata/parsing/data_formats/resources/robot_resource2.robot +6 -0
  767. data/vendor/robot/atest/testdata/parsing/data_formats/resources/tsv_resource.tsv +11 -0
  768. data/vendor/robot/atest/testdata/parsing/data_formats/resources/tsv_resource2.tsv +6 -0
  769. data/vendor/robot/atest/testdata/parsing/data_formats/resources/txt_resource.txt +11 -0
  770. data/vendor/robot/atest/testdata/parsing/data_formats/resources/txt_resource2.txt +6 -0
  771. data/vendor/robot/atest/testdata/parsing/data_formats/resources/variables.py +4 -0
  772. data/vendor/robot/atest/testdata/parsing/data_formats/rest/empty.rest +0 -0
  773. data/vendor/robot/atest/testdata/parsing/data_formats/rest/include.rst +9 -0
  774. data/vendor/robot/atest/testdata/parsing/data_formats/rest/invalid.rest +5 -0
  775. data/vendor/robot/atest/testdata/parsing/data_formats/rest/sample.rst +240 -0
  776. data/vendor/robot/atest/testdata/parsing/data_formats/rest/with_init/__init__.rest +24 -0
  777. data/vendor/robot/atest/testdata/parsing/data_formats/rest/with_init/sub_suite1.rst +5 -0
  778. data/vendor/robot/atest/testdata/parsing/data_formats/rest/with_init/sub_suite2.rst +16 -0
  779. data/vendor/robot/atest/testdata/parsing/data_formats/rest_directives/include.rst +9 -0
  780. data/vendor/robot/atest/testdata/parsing/data_formats/rest_directives/sample.rst +150 -0
  781. data/vendor/robot/atest/testdata/parsing/data_formats/robot/empty.robot +0 -0
  782. data/vendor/robot/atest/testdata/parsing/data_formats/robot/invalid.robot +5 -0
  783. data/vendor/robot/atest/testdata/parsing/data_formats/robot/sample.robot +116 -0
  784. data/vendor/robot/atest/testdata/parsing/data_formats/robot/with_init/__init__.robot +9 -0
  785. data/vendor/robot/atest/testdata/parsing/data_formats/robot/with_init/sub_suite1.robot +23 -0
  786. data/vendor/robot/atest/testdata/parsing/data_formats/robot/with_init/sub_suite2.robot +11 -0
  787. data/vendor/robot/atest/testdata/parsing/data_formats/tsv/empty.tsv +0 -0
  788. data/vendor/robot/atest/testdata/parsing/data_formats/tsv/invalid.tsv +5 -0
  789. data/vendor/robot/atest/testdata/parsing/data_formats/tsv/sample.tsv +113 -0
  790. data/vendor/robot/atest/testdata/parsing/data_formats/tsv/with_init/__init__.tsv +9 -0
  791. data/vendor/robot/atest/testdata/parsing/data_formats/tsv/with_init/sub_suite1.tsv +23 -0
  792. data/vendor/robot/atest/testdata/parsing/data_formats/tsv/with_init/sub_suite2.tsv +10 -0
  793. data/vendor/robot/atest/testdata/parsing/data_formats/txt/empty.txt +0 -0
  794. data/vendor/robot/atest/testdata/parsing/data_formats/txt/invalid.txt +5 -0
  795. data/vendor/robot/atest/testdata/parsing/data_formats/txt/sample.txt +117 -0
  796. data/vendor/robot/atest/testdata/parsing/data_formats/txt/with_init/__init__.txt +9 -0
  797. data/vendor/robot/atest/testdata/parsing/data_formats/txt/with_init/sub_suite1.txt +23 -0
  798. data/vendor/robot/atest/testdata/parsing/data_formats/txt/with_init/sub_suite2.txt +11 -0
  799. data/vendor/robot/atest/testdata/parsing/data_formats/txt_special_cases/escaping.txt +12 -0
  800. data/vendor/robot/atest/testdata/parsing/data_formats/txt_special_cases/pipes.txt +73 -0
  801. data/vendor/robot/atest/testdata/parsing/data_formats/txt_special_cases/spaces.txt +31 -0
  802. data/vendor/robot/atest/testdata/parsing/data_formats/txt_special_cases/txt_with_tabs.txt +10 -0
  803. data/vendor/robot/atest/testdata/parsing/deprecated_settings.robot +22 -0
  804. data/vendor/robot/atest/testdata/parsing/empty_testcase_table.robot +1 -0
  805. data/vendor/robot/atest/testdata/parsing/escaping.robot +185 -0
  806. data/vendor/robot/atest/testdata/parsing/escaping_variables.py +15 -0
  807. data/vendor/robot/atest/testdata/parsing/failing_init/__init__.robot +6 -0
  808. data/vendor/robot/atest/testdata/parsing/failing_init/failing_init.robot +3 -0
  809. data/vendor/robot/atest/testdata/parsing/html_entityrefs.html +223 -0
  810. data/vendor/robot/atest/testdata/parsing/html_entityrefs_variables.py +3 -0
  811. data/vendor/robot/atest/testdata/parsing/invalid_table_names.html +47 -0
  812. data/vendor/robot/atest/testdata/parsing/invalid_table_names.robot +21 -0
  813. data/vendor/robot/atest/testdata/parsing/invalid_tables_resource.html +40 -0
  814. data/vendor/robot/atest/testdata/parsing/invalid_tables_resource.robot +15 -0
  815. data/vendor/robot/atest/testdata/parsing/library_caching/file1.robot +11 -0
  816. data/vendor/robot/atest/testdata/parsing/library_caching/file2.robot +11 -0
  817. data/vendor/robot/atest/testdata/parsing/library_caching/resource.robot +6 -0
  818. data/vendor/robot/atest/testdata/parsing/multirow.robot +208 -0
  819. data/vendor/robot/atest/testdata/parsing/nbsp.html +22 -0
  820. data/vendor/robot/atest/testdata/parsing/nbsp.robot +6 -0
  821. data/vendor/robot/atest/testdata/parsing/nbsp.tsv +3 -0
  822. data/vendor/robot/atest/testdata/parsing/non_ascii_paths/Ty-ouml/sect-test-sect.robot +3 -0
  823. data/vendor/robot/atest/testdata/parsing/non_ascii_paths/Ty-ouml/tyhj-auml.robot +0 -0
  824. data/vendor/robot/atest/testdata/parsing/non_ascii_paths/test-auml-ouml.robot +3 -0
  825. data/vendor/robot/atest/testdata/parsing/notests/empty.tsv +0 -0
  826. data/vendor/robot/atest/testdata/parsing/notests/no_tests.txt +1 -0
  827. data/vendor/robot/atest/testdata/parsing/notests/subdir/content +1 -0
  828. data/vendor/robot/atest/testdata/parsing/resource_parsing/01_tests.robot +7 -0
  829. data/vendor/robot/atest/testdata/parsing/resource_parsing/02_resource.robot +6 -0
  830. data/vendor/robot/atest/testdata/parsing/resource_parsing/03_resource.robot +11 -0
  831. data/vendor/robot/atest/testdata/parsing/resource_parsing/04_tests.robot +12 -0
  832. data/vendor/robot/atest/testdata/parsing/same_setting_multiple_times.robot +67 -0
  833. data/vendor/robot/atest/testdata/parsing/suite_metadata.robot +20 -0
  834. data/vendor/robot/atest/testdata/parsing/suite_settings.robot +28 -0
  835. data/vendor/robot/atest/testdata/parsing/table_names.robot +41 -0
  836. data/vendor/robot/atest/testdata/parsing/test_case_settings.robot +167 -0
  837. data/vendor/robot/atest/testdata/parsing/unsupported.log +1 -0
  838. data/vendor/robot/atest/testdata/parsing/user_keyword_settings.robot +183 -0
  839. data/vendor/robot/atest/testdata/parsing/utf8_data.html +342 -0
  840. data/vendor/robot/atest/testdata/parsing/utf8_data.robot +38 -0
  841. data/vendor/robot/atest/testdata/parsing/utf8_data.tsv +40 -0
  842. data/vendor/robot/atest/testdata/parsing/utf8_data_in_html5.html +341 -0
  843. data/vendor/robot/atest/testdata/rebot/created_normal.xml +23 -0
  844. data/vendor/robot/atest/testdata/rebot/times.xml +77 -0
  845. data/vendor/robot/atest/testdata/running/NonAsciiByteLibrary.py +11 -0
  846. data/vendor/robot/atest/testdata/running/binary_list.py +2 -0
  847. data/vendor/robot/atest/testdata/running/continue_for_loop.robot +146 -0
  848. data/vendor/robot/atest/testdata/running/continue_on_failure.robot +221 -0
  849. data/vendor/robot/atest/testdata/running/continue_on_failure_in_suite_setup.robot +14 -0
  850. data/vendor/robot/atest/testdata/running/dynamic_teardown.robot +8 -0
  851. data/vendor/robot/atest/testdata/running/empty_setup_and_teardown_are_ignored.robot +15 -0
  852. data/vendor/robot/atest/testdata/running/exit_for_loop.robot +128 -0
  853. data/vendor/robot/atest/testdata/running/expbytevalues.py +41 -0
  854. data/vendor/robot/atest/testdata/running/failures_in_teardown.robot +158 -0
  855. data/vendor/robot/atest/testdata/running/fatal_error_in_suite_teardown.robot +12 -0
  856. data/vendor/robot/atest/testdata/running/fatal_exception/01__python_library_kw.robot +14 -0
  857. data/vendor/robot/atest/testdata/running/fatal_exception/02__irrelevant.robot +16 -0
  858. data/vendor/robot/atest/testdata/running/fatal_exception/03__java_library_kw.robot +12 -0
  859. data/vendor/robot/atest/testdata/running/fatal_exception_suite_setup/01__suite_setup.robot +9 -0
  860. data/vendor/robot/atest/testdata/running/fatal_exception_suite_setup/02__irrelevant.robot +14 -0
  861. data/vendor/robot/atest/testdata/running/for.robot +552 -0
  862. data/vendor/robot/atest/testdata/running/html_error_message.robot +67 -0
  863. data/vendor/robot/atest/testdata/running/long_error_messages.robot +64 -0
  864. data/vendor/robot/atest/testdata/running/non_ascii_bytes.robot +30 -0
  865. data/vendor/robot/atest/testdata/running/none_setup_and_teardown_are_ignored.robot +15 -0
  866. data/vendor/robot/atest/testdata/running/pass_execution.robot +253 -0
  867. data/vendor/robot/atest/testdata/running/pass_execution_in_suite_setup_and_teardown.robot +15 -0
  868. data/vendor/robot/atest/testdata/running/pass_execution_in_suite_teardown_invalid.robot +12 -0
  869. data/vendor/robot/atest/testdata/running/pass_execution_library.py +10 -0
  870. data/vendor/robot/atest/testdata/running/prevent_recursion.robot +66 -0
  871. data/vendor/robot/atest/testdata/running/return_from_keyword.robot +173 -0
  872. data/vendor/robot/atest/testdata/running/stopping_with_signal/Library.py +15 -0
  873. data/vendor/robot/atest/testdata/running/stopping_with_signal/keyword_timeout.robot +21 -0
  874. data/vendor/robot/atest/testdata/running/stopping_with_signal/run_keyword.robot +15 -0
  875. data/vendor/robot/atest/testdata/running/stopping_with_signal/swallow_exception.robot +15 -0
  876. data/vendor/robot/atest/testdata/running/stopping_with_signal/test_timeout.robot +16 -0
  877. data/vendor/robot/atest/testdata/running/stopping_with_signal/with_teardown.robot +21 -0
  878. data/vendor/robot/atest/testdata/running/stopping_with_signal/without_any_timeout.robot +15 -0
  879. data/vendor/robot/atest/testdata/running/test_template.robot +305 -0
  880. data/vendor/robot/atest/testdata/running/test_template_with_embeded_args.robot +47 -0
  881. data/vendor/robot/atest/testdata/standard_libraries/builtin/DynamicRegisteredLibrary.py +14 -0
  882. data/vendor/robot/atest/testdata/standard_libraries/builtin/FailUntilSucceeds.py +14 -0
  883. data/vendor/robot/atest/testdata/standard_libraries/builtin/NotRegisteringLibrary.py +5 -0
  884. data/vendor/robot/atest/testdata/standard_libraries/builtin/RegisteredClass.py +12 -0
  885. data/vendor/robot/atest/testdata/standard_libraries/builtin/RegisteringLibrary.py +13 -0
  886. data/vendor/robot/atest/testdata/standard_libraries/builtin/UseBuiltIn.py +17 -0
  887. data/vendor/robot/atest/testdata/standard_libraries/builtin/call_method.robot +60 -0
  888. data/vendor/robot/atest/testdata/standard_libraries/builtin/convert_to_bytes.robot +170 -0
  889. data/vendor/robot/atest/testdata/standard_libraries/builtin/converter.robot +220 -0
  890. data/vendor/robot/atest/testdata/standard_libraries/builtin/count.robot +74 -0
  891. data/vendor/robot/atest/testdata/standard_libraries/builtin/create_dictionary.robot +120 -0
  892. data/vendor/robot/atest/testdata/standard_libraries/builtin/documentation/__init__.robot +4 -0
  893. data/vendor/robot/atest/testdata/standard_libraries/builtin/documentation/set_documentation.robot +39 -0
  894. data/vendor/robot/atest/testdata/standard_libraries/builtin/evaluate.robot +147 -0
  895. data/vendor/robot/atest/testdata/standard_libraries/builtin/exit_on_failure.robot +20 -0
  896. data/vendor/robot/atest/testdata/standard_libraries/builtin/fail.robot +40 -0
  897. data/vendor/robot/atest/testdata/standard_libraries/builtin/fatal_error.robot +21 -0
  898. data/vendor/robot/atest/testdata/standard_libraries/builtin/get_library_instance.robot +111 -0
  899. data/vendor/robot/atest/testdata/standard_libraries/builtin/get_time.robot +73 -0
  900. data/vendor/robot/atest/testdata/standard_libraries/builtin/get_user_dict.py +8 -0
  901. data/vendor/robot/atest/testdata/standard_libraries/builtin/get_variable_value.robot +54 -0
  902. data/vendor/robot/atest/testdata/standard_libraries/builtin/get_variables.robot +92 -0
  903. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_library.robot +55 -0
  904. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_resource.robot +89 -0
  905. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_resource_resource_1.robot +13 -0
  906. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_resource_resource_2.robot +12 -0
  907. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_resource_resource_3.robot +10 -0
  908. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_resource_resource_resource.robot +14 -0
  909. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_resource_vars.py +2 -0
  910. data/vendor/robot/atest/testdata/standard_libraries/builtin/import_variables.robot +95 -0
  911. data/vendor/robot/atest/testdata/standard_libraries/builtin/keyword_should_exist.robot +83 -0
  912. data/vendor/robot/atest/testdata/standard_libraries/builtin/keyword_should_exist_resource_1.robot +6 -0
  913. data/vendor/robot/atest/testdata/standard_libraries/builtin/keyword_should_exist_resource_2.robot +3 -0
  914. data/vendor/robot/atest/testdata/standard_libraries/builtin/length.robot +114 -0
  915. data/vendor/robot/atest/testdata/standard_libraries/builtin/length_variables.py +44 -0
  916. data/vendor/robot/atest/testdata/standard_libraries/builtin/log.robot +115 -0
  917. data/vendor/robot/atest/testdata/standard_libraries/builtin/log_variables.robot +37 -0
  918. data/vendor/robot/atest/testdata/standard_libraries/builtin/misc.robot +46 -0
  919. data/vendor/robot/atest/testdata/standard_libraries/builtin/numbers_to_convert.py +33 -0
  920. data/vendor/robot/atest/testdata/standard_libraries/builtin/objects_for_call_method.py +32 -0
  921. data/vendor/robot/atest/testdata/standard_libraries/builtin/reload_library/Reloadable.py +34 -0
  922. data/vendor/robot/atest/testdata/standard_libraries/builtin/reload_library/StaticLibrary.py +11 -0
  923. data/vendor/robot/atest/testdata/standard_libraries/builtin/reload_library/module_library.py +6 -0
  924. data/vendor/robot/atest/testdata/standard_libraries/builtin/reload_library/reload_library.robot +66 -0
  925. data/vendor/robot/atest/testdata/standard_libraries/builtin/reload_library/reload_with_name.robot +24 -0
  926. data/vendor/robot/atest/testdata/standard_libraries/builtin/repeat_keyword.robot +97 -0
  927. data/vendor/robot/atest/testdata/standard_libraries/builtin/replace_variables.robot +56 -0
  928. data/vendor/robot/atest/testdata/standard_libraries/builtin/resource_for_get_variables.robot +7 -0
  929. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword.robot +95 -0
  930. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_and_continue_on_failure.robot +92 -0
  931. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_and_return.robot +176 -0
  932. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_and_return_status.robot +9 -0
  933. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_all_critical_tests_passed_when_critical_fails.robot +8 -0
  934. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_all_critical_tests_passed_when_criticals_pass.robot +21 -0
  935. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_all_tests_passed_when_all_pass.robot +18 -0
  936. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_all_tests_passed_when_test_fails.robot +7 -0
  937. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_any_critical_tests_failed_when_critical_fails.robot +14 -0
  938. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_any_critical_tests_failed_when_criticals_pass.robot +7 -0
  939. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_any_tests_failed_when_all_pass.robot +6 -0
  940. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_keyword_if_any_tests_failed_when_test_fails.robot +13 -0
  941. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_based_on_suite_stats/run_kw_variants_used_outside_suite_teardown.robot +16 -0
  942. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_if_test_passed_failed/run_keyword_if_test_failed_in_suite_fixtures.robot +12 -0
  943. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_if_test_passed_failed/run_keyword_if_test_passed_failed.robot +138 -0
  944. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_if_test_passed_failed/run_keyword_if_test_passed_in_suite_fixtures.robot +13 -0
  945. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_if_timeout_occurred.robot +86 -0
  946. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_if_unless.robot +183 -0
  947. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_variants_registering.robot +43 -0
  948. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_variants_variable_handling.robot +56 -0
  949. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_variants_with_escaping_control_arguments.robot +55 -0
  950. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keyword_with_errors.robot +236 -0
  951. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keywords.robot +123 -0
  952. data/vendor/robot/atest/testdata/standard_libraries/builtin/run_keywords_with_arguments.robot +54 -0
  953. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_library_search_order/TestLibrary.py +13 -0
  954. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_library_search_order/setting_library_order.robot +71 -0
  955. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_library_search_order/setting_library_order_does_not_affect_next_suite.robot +11 -0
  956. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_log_level.robot +41 -0
  957. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_resource_search_order/resource1.robot +3 -0
  958. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_resource_search_order/resource2.robot +3 -0
  959. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_resource_search_order/setting_resource_order.robot +68 -0
  960. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_resource_search_order/setting_resource_order_does_not_affect_next_suite.robot +11 -0
  961. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_suite_metadata.robot +49 -0
  962. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_test_message.robot +102 -0
  963. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_test_message_in_suite_level.robot +7 -0
  964. data/vendor/robot/atest/testdata/standard_libraries/builtin/set_variable_if.robot +148 -0
  965. data/vendor/robot/atest/testdata/standard_libraries/builtin/setting_variables/__init__.robot +31 -0
  966. data/vendor/robot/atest/testdata/standard_libraries/builtin/setting_variables/variables.robot +611 -0
  967. data/vendor/robot/atest/testdata/standard_libraries/builtin/setting_variables/variables2.robot +43 -0
  968. data/vendor/robot/atest/testdata/standard_libraries/builtin/should_be_equal.robot +101 -0
  969. data/vendor/robot/atest/testdata/standard_libraries/builtin/should_be_equal_as_xxx.robot +107 -0
  970. data/vendor/robot/atest/testdata/standard_libraries/builtin/should_be_true.robot +48 -0
  971. data/vendor/robot/atest/testdata/standard_libraries/builtin/should_contain.robot +62 -0
  972. data/vendor/robot/atest/testdata/standard_libraries/builtin/should_contain_any.robot +100 -0
  973. data/vendor/robot/atest/testdata/standard_libraries/builtin/should_match.robot +72 -0
  974. data/vendor/robot/atest/testdata/standard_libraries/builtin/should_xxx_with.robot +66 -0
  975. data/vendor/robot/atest/testdata/standard_libraries/builtin/sleep.robot +29 -0
  976. data/vendor/robot/atest/testdata/standard_libraries/builtin/tags/__init__.robot +8 -0
  977. data/vendor/robot/atest/testdata/standard_libraries/builtin/tags/sub1.robot +95 -0
  978. data/vendor/robot/atest/testdata/standard_libraries/builtin/tags/sub2.robot +37 -0
  979. data/vendor/robot/atest/testdata/standard_libraries/builtin/template.txt +2 -0
  980. data/vendor/robot/atest/testdata/standard_libraries/builtin/times.py +8 -0
  981. data/vendor/robot/atest/testdata/standard_libraries/builtin/used_in_custom_libs_and_listeners.robot +17 -0
  982. data/vendor/robot/atest/testdata/standard_libraries/builtin/variable.py +9 -0
  983. data/vendor/robot/atest/testdata/standard_libraries/builtin/variable_should_exist.robot +142 -0
  984. data/vendor/robot/atest/testdata/standard_libraries/builtin/variables_to_import_1.py +2 -0
  985. data/vendor/robot/atest/testdata/standard_libraries/builtin/variables_to_import_2.py +4 -0
  986. data/vendor/robot/atest/testdata/standard_libraries/builtin/variables_to_verify.py +62 -0
  987. data/vendor/robot/atest/testdata/standard_libraries/builtin/vars_for_get_variables.py +1 -0
  988. data/vendor/robot/atest/testdata/standard_libraries/builtin/wait_until_keyword_succeeds.robot +131 -0
  989. data/vendor/robot/atest/testdata/standard_libraries/collections/CollectionsHelperLibrary.py +9 -0
  990. data/vendor/robot/atest/testdata/standard_libraries/collections/collections_resources.robot +8 -0
  991. data/vendor/robot/atest/testdata/standard_libraries/collections/dictionary.robot +250 -0
  992. data/vendor/robot/atest/testdata/standard_libraries/collections/list.robot +598 -0
  993. data/vendor/robot/atest/testdata/standard_libraries/datetime/add_time_to_date.robot +27 -0
  994. data/vendor/robot/atest/testdata/standard_libraries/datetime/convert_date_input_format.robot +74 -0
  995. data/vendor/robot/atest/testdata/standard_libraries/datetime/convert_date_result_format.robot +101 -0
  996. data/vendor/robot/atest/testdata/standard_libraries/datetime/convert_time_input_format.robot +80 -0
  997. data/vendor/robot/atest/testdata/standard_libraries/datetime/convert_time_result_format.robot +72 -0
  998. data/vendor/robot/atest/testdata/standard_libraries/datetime/date_ranges.robot +48 -0
  999. data/vendor/robot/atest/testdata/standard_libraries/datetime/datesandtimes.py +28 -0
  1000. data/vendor/robot/atest/testdata/standard_libraries/datetime/get_current_date.robot +43 -0
  1001. data/vendor/robot/atest/testdata/standard_libraries/datetime/subtract_date_from_date.robot +30 -0
  1002. data/vendor/robot/atest/testdata/standard_libraries/datetime/subtract_time_from_date.robot +25 -0
  1003. data/vendor/robot/atest/testdata/standard_libraries/datetime/time_calculations.robot +27 -0
  1004. data/vendor/robot/atest/testdata/standard_libraries/dialogs/dialogs.robot +76 -0
  1005. data/vendor/robot/atest/testdata/standard_libraries/easter.robot +7 -0
  1006. data/vendor/robot/atest/testdata/standard_libraries/operating_system/create_and_remove_dir.robot +66 -0
  1007. data/vendor/robot/atest/testdata/standard_libraries/operating_system/create_file.robot +95 -0
  1008. data/vendor/robot/atest/testdata/standard_libraries/operating_system/env_vars.robot +134 -0
  1009. data/vendor/robot/atest/testdata/standard_libraries/operating_system/file_and_dir_empty_or_not.robot +101 -0
  1010. data/vendor/robot/atest/testdata/standard_libraries/operating_system/file_and_dir_existence.robot +178 -0
  1011. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/HelperLib.py +7 -0
  1012. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/ascii.txt +1 -0
  1013. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/latin-1.txt +1 -0
  1014. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/latin-1_multiple_rows.txt +5 -0
  1015. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/prog.py +14 -0
  1016. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/utf-16BE.txt +0 -0
  1017. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/utf-16BEBOM.txt +0 -0
  1018. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/utf-16LE.txt +0 -0
  1019. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/utf-16LEBOM.txt +0 -0
  1020. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/utf-8.txt +1 -0
  1021. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/utf-8_multiple_rows.txt +5 -0
  1022. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/utf-8_windows_line_endings.txt +5 -0
  1023. data/vendor/robot/atest/testdata/standard_libraries/operating_system/files/writable_prog.py +5 -0
  1024. data/vendor/robot/atest/testdata/standard_libraries/operating_system/get_file.robot +185 -0
  1025. data/vendor/robot/atest/testdata/standard_libraries/operating_system/get_file_size.robot +26 -0
  1026. data/vendor/robot/atest/testdata/standard_libraries/operating_system/list_dir.robot +105 -0
  1027. data/vendor/robot/atest/testdata/standard_libraries/operating_system/modified_time.robot +109 -0
  1028. data/vendor/robot/atest/testdata/standard_libraries/operating_system/move_copy_directory.robot +88 -0
  1029. data/vendor/robot/atest/testdata/standard_libraries/operating_system/move_copy_file.robot +169 -0
  1030. data/vendor/robot/atest/testdata/standard_libraries/operating_system/move_copy_files.robot +220 -0
  1031. data/vendor/robot/atest/testdata/standard_libraries/operating_system/os_resource.robot +31 -0
  1032. data/vendor/robot/atest/testdata/standard_libraries/operating_system/path.robot +121 -0
  1033. data/vendor/robot/atest/testdata/standard_libraries/operating_system/path_expansion.robot +28 -0
  1034. data/vendor/robot/atest/testdata/standard_libraries/operating_system/remove_file.robot +63 -0
  1035. data/vendor/robot/atest/testdata/standard_libraries/operating_system/run.robot +91 -0
  1036. data/vendor/robot/atest/testdata/standard_libraries/operating_system/special_names.robot +87 -0
  1037. data/vendor/robot/atest/testdata/standard_libraries/operating_system/touch.robot +42 -0
  1038. data/vendor/robot/atest/testdata/standard_libraries/operating_system/wait_until_library.py +23 -0
  1039. data/vendor/robot/atest/testdata/standard_libraries/operating_system/wait_until_removed_created.robot +112 -0
  1040. data/vendor/robot/atest/testdata/standard_libraries/process/CustomLib.py +4 -0
  1041. data/vendor/robot/atest/testdata/standard_libraries/process/PlatformLib.py +10 -0
  1042. data/vendor/robot/atest/testdata/standard_libraries/process/active_process.robot +48 -0
  1043. data/vendor/robot/atest/testdata/standard_libraries/process/commandline.robot +99 -0
  1044. data/vendor/robot/atest/testdata/standard_libraries/process/env_config.robot +51 -0
  1045. data/vendor/robot/atest/testdata/standard_libraries/process/files/countdown.py +22 -0
  1046. data/vendor/robot/atest/testdata/standard_libraries/process/files/encoding.py +25 -0
  1047. data/vendor/robot/atest/testdata/standard_libraries/process/files/non_terminable.py +31 -0
  1048. data/vendor/robot/atest/testdata/standard_libraries/process/files/script.py +11 -0
  1049. data/vendor/robot/atest/testdata/standard_libraries/process/files/timeout.py +12 -0
  1050. data/vendor/robot/atest/testdata/standard_libraries/process/get_process_result.robot +67 -0
  1051. data/vendor/robot/atest/testdata/standard_libraries/process/is_process_alive.robot +24 -0
  1052. data/vendor/robot/atest/testdata/standard_libraries/process/newlines.robot +20 -0
  1053. data/vendor/robot/atest/testdata/standard_libraries/process/no_active_process.robot +16 -0
  1054. data/vendor/robot/atest/testdata/standard_libraries/process/output_encoding.robot +51 -0
  1055. data/vendor/robot/atest/testdata/standard_libraries/process/passing_arguments.robot +51 -0
  1056. data/vendor/robot/atest/testdata/standard_libraries/process/process_library.robot +54 -0
  1057. data/vendor/robot/atest/testdata/standard_libraries/process/process_resource.robot +122 -0
  1058. data/vendor/robot/atest/testdata/standard_libraries/process/run_process_with_timeout.robot +54 -0
  1059. data/vendor/robot/atest/testdata/standard_libraries/process/sending_signal.robot +71 -0
  1060. data/vendor/robot/atest/testdata/standard_libraries/process/stdout_and_stderr.robot +93 -0
  1061. data/vendor/robot/atest/testdata/standard_libraries/process/terminate_process.robot +107 -0
  1062. data/vendor/robot/atest/testdata/standard_libraries/process/wait_for_process.robot +43 -0
  1063. data/vendor/robot/atest/testdata/standard_libraries/remote/Conflict.py +2 -0
  1064. data/vendor/robot/atest/testdata/standard_libraries/remote/Helper.py +4 -0
  1065. data/vendor/robot/atest/testdata/standard_libraries/remote/argument_coersion.robot +143 -0
  1066. data/vendor/robot/atest/testdata/standard_libraries/remote/arguments.py +88 -0
  1067. data/vendor/robot/atest/testdata/standard_libraries/remote/arguments.robot +133 -0
  1068. data/vendor/robot/atest/testdata/standard_libraries/remote/binary_result.robot +70 -0
  1069. data/vendor/robot/atest/testdata/standard_libraries/remote/binaryresult.py +44 -0
  1070. data/vendor/robot/atest/testdata/standard_libraries/remote/dict_result.robot +35 -0
  1071. data/vendor/robot/atest/testdata/standard_libraries/remote/dictresult.py +19 -0
  1072. data/vendor/robot/atest/testdata/standard_libraries/remote/documentation.py +40 -0
  1073. data/vendor/robot/atest/testdata/standard_libraries/remote/documentation.robot +20 -0
  1074. data/vendor/robot/atest/testdata/standard_libraries/remote/invalid.py +24 -0
  1075. data/vendor/robot/atest/testdata/standard_libraries/remote/invalid.robot +27 -0
  1076. data/vendor/robot/atest/testdata/standard_libraries/remote/keyword_tags.robot +25 -0
  1077. data/vendor/robot/atest/testdata/standard_libraries/remote/keywordtags.py +38 -0
  1078. data/vendor/robot/atest/testdata/standard_libraries/remote/remoteserver.py +77 -0
  1079. data/vendor/robot/atest/testdata/standard_libraries/remote/simple_server.robot +47 -0
  1080. data/vendor/robot/atest/testdata/standard_libraries/remote/simpleserver.py +41 -0
  1081. data/vendor/robot/atest/testdata/standard_libraries/remote/special_errors.robot +26 -0
  1082. data/vendor/robot/atest/testdata/standard_libraries/remote/specialerrors.py +20 -0
  1083. data/vendor/robot/atest/testdata/standard_libraries/remote/timeouts.py +13 -0
  1084. data/vendor/robot/atest/testdata/standard_libraries/remote/timeouts.robot +43 -0
  1085. data/vendor/robot/atest/testdata/standard_libraries/remote/variables.py +28 -0
  1086. data/vendor/robot/atest/testdata/standard_libraries/reserved.robot +25 -0
  1087. data/vendor/robot/atest/testdata/standard_libraries/screenshot/screenshot_resource.robot +22 -0
  1088. data/vendor/robot/atest/testdata/standard_libraries/screenshot/set_screenshot_directory.robot +33 -0
  1089. data/vendor/robot/atest/testdata/standard_libraries/screenshot/take_screenshot.robot +49 -0
  1090. data/vendor/robot/atest/testdata/standard_libraries/string/convert_to.robot +31 -0
  1091. data/vendor/robot/atest/testdata/standard_libraries/string/encode_decode.robot +72 -0
  1092. data/vendor/robot/atest/testdata/standard_libraries/string/generate_random_string.robot +49 -0
  1093. data/vendor/robot/atest/testdata/standard_libraries/string/get_matching_lines.robot +115 -0
  1094. data/vendor/robot/atest/testdata/standard_libraries/string/get_regexp_matches.robot +54 -0
  1095. data/vendor/robot/atest/testdata/standard_libraries/string/remove_from_string.robot +33 -0
  1096. data/vendor/robot/atest/testdata/standard_libraries/string/replace_string.robot +43 -0
  1097. data/vendor/robot/atest/testdata/standard_libraries/string/should_be.robot +79 -0
  1098. data/vendor/robot/atest/testdata/standard_libraries/string/split_string.robot +95 -0
  1099. data/vendor/robot/atest/testdata/standard_libraries/string/string.robot +112 -0
  1100. data/vendor/robot/atest/testdata/standard_libraries/telnet/README.rst +15 -0
  1101. data/vendor/robot/atest/testdata/standard_libraries/telnet/configuration.robot +272 -0
  1102. data/vendor/robot/atest/testdata/standard_libraries/telnet/connections.robot +53 -0
  1103. data/vendor/robot/atest/testdata/standard_libraries/telnet/login.robot +38 -0
  1104. data/vendor/robot/atest/testdata/standard_libraries/telnet/read_and_write.robot +173 -0
  1105. data/vendor/robot/atest/testdata/standard_libraries/telnet/telnet_resource.robot +24 -0
  1106. data/vendor/robot/atest/testdata/standard_libraries/telnet/telnet_variables.py +10 -0
  1107. data/vendor/robot/atest/testdata/standard_libraries/telnet/terminal_emulation.robot +159 -0
  1108. data/vendor/robot/atest/testdata/standard_libraries/xml/add_and_remove_elements.robot +118 -0
  1109. data/vendor/robot/atest/testdata/standard_libraries/xml/add_and_remove_elements_with_lxml.robot +120 -0
  1110. data/vendor/robot/atest/testdata/standard_libraries/xml/clear_element.robot +27 -0
  1111. data/vendor/robot/atest/testdata/standard_libraries/xml/clear_element_with_lxml.robot +28 -0
  1112. data/vendor/robot/atest/testdata/standard_libraries/xml/copy_element.robot +35 -0
  1113. data/vendor/robot/atest/testdata/standard_libraries/xml/copy_element_with_lxml.robot +36 -0
  1114. data/vendor/robot/atest/testdata/standard_libraries/xml/element_attribute.robot +81 -0
  1115. data/vendor/robot/atest/testdata/standard_libraries/xml/element_attribute_with_lxml.robot +82 -0
  1116. data/vendor/robot/atest/testdata/standard_libraries/xml/element_should_exist.robot +47 -0
  1117. data/vendor/robot/atest/testdata/standard_libraries/xml/element_should_exist_with_lxml.robot +48 -0
  1118. data/vendor/robot/atest/testdata/standard_libraries/xml/element_text.robot +89 -0
  1119. data/vendor/robot/atest/testdata/standard_libraries/xml/element_text_with_lxml.robot +90 -0
  1120. data/vendor/robot/atest/testdata/standard_libraries/xml/elements_should_be_equal.robot +91 -0
  1121. data/vendor/robot/atest/testdata/standard_libraries/xml/elements_should_be_equal_with_lxml.robot +92 -0
  1122. data/vendor/robot/atest/testdata/standard_libraries/xml/elements_should_match.robot +87 -0
  1123. data/vendor/robot/atest/testdata/standard_libraries/xml/elements_should_match_with_lxml.robot +88 -0
  1124. data/vendor/robot/atest/testdata/standard_libraries/xml/etree_namespaces.robot +97 -0
  1125. data/vendor/robot/atest/testdata/standard_libraries/xml/etree_namespaces_with_lxml.robot +54 -0
  1126. data/vendor/robot/atest/testdata/standard_libraries/xml/get_elements.robot +71 -0
  1127. data/vendor/robot/atest/testdata/standard_libraries/xml/get_elements_with_lxml.robot +72 -0
  1128. data/vendor/robot/atest/testdata/standard_libraries/xml/namespaces.robot +76 -0
  1129. data/vendor/robot/atest/testdata/standard_libraries/xml/namespaces.xml +17 -0
  1130. data/vendor/robot/atest/testdata/standard_libraries/xml/namespaces_with_lxml.robot +60 -0
  1131. data/vendor/robot/atest/testdata/standard_libraries/xml/parsing.robot +39 -0
  1132. data/vendor/robot/atest/testdata/standard_libraries/xml/parsing_with_lxml.robot +40 -0
  1133. data/vendor/robot/atest/testdata/standard_libraries/xml/save_xml.robot +83 -0
  1134. data/vendor/robot/atest/testdata/standard_libraries/xml/save_xml_with_lxml.robot +81 -0
  1135. data/vendor/robot/atest/testdata/standard_libraries/xml/set_element_information.robot +125 -0
  1136. data/vendor/robot/atest/testdata/standard_libraries/xml/set_element_information_with_lxml.robot +126 -0
  1137. data/vendor/robot/atest/testdata/standard_libraries/xml/strip_namespaces.robot +63 -0
  1138. data/vendor/robot/atest/testdata/standard_libraries/xml/strip_namespaces_with_lxml.robot +63 -0
  1139. data/vendor/robot/atest/testdata/standard_libraries/xml/test.xml +24 -0
  1140. data/vendor/robot/atest/testdata/standard_libraries/xml/to_string.robot +36 -0
  1141. data/vendor/robot/atest/testdata/standard_libraries/xml/to_string_with_lxml.robot +38 -0
  1142. data/vendor/robot/atest/testdata/standard_libraries/xml/xml_resource.robot +88 -0
  1143. data/vendor/robot/atest/testdata/standard_libraries/xml/xpath.robot +102 -0
  1144. data/vendor/robot/atest/testdata/standard_libraries/xml/xpath_with_lxml.robot +127 -0
  1145. data/vendor/robot/atest/testdata/tags/default_and_force_tags.robot +19 -0
  1146. data/vendor/robot/atest/testdata/tags/default_tags.robot +14 -0
  1147. data/vendor/robot/atest/testdata/tags/force_tags.robot +14 -0
  1148. data/vendor/robot/atest/testdata/tags/include_and_exclude.robot +28 -0
  1149. data/vendor/robot/atest/testdata/tags/no_force_no_default_tags.robot +11 -0
  1150. data/vendor/robot/atest/testdata/tags/tags_are_not_normalized.robot +55 -0
  1151. data/vendor/robot/atest/testdata/test_libraries/AbstractJavaLibrary.class +0 -0
  1152. data/vendor/robot/atest/testdata/test_libraries/AbstractJavaLibrary.java +2 -0
  1153. data/vendor/robot/atest/testdata/test_libraries/ConstructorLogging.class +0 -0
  1154. data/vendor/robot/atest/testdata/test_libraries/ConstructorLogging.java +12 -0
  1155. data/vendor/robot/atest/testdata/test_libraries/DeprecatedKeywords.py +34 -0
  1156. data/vendor/robot/atest/testdata/test_libraries/DynamicLibraryTags.py +26 -0
  1157. data/vendor/robot/atest/testdata/test_libraries/ImportLogging.py +10 -0
  1158. data/vendor/robot/atest/testdata/test_libraries/ImportRobotModuleTestLibrary.py +24 -0
  1159. data/vendor/robot/atest/testdata/test_libraries/InitImportingAndIniting.py +31 -0
  1160. data/vendor/robot/atest/testdata/test_libraries/InitLogging.py +17 -0
  1161. data/vendor/robot/atest/testdata/test_libraries/InitializationFailJavaLibrary.class +0 -0
  1162. data/vendor/robot/atest/testdata/test_libraries/InitializationFailJavaLibrary.java +7 -0
  1163. data/vendor/robot/atest/testdata/test_libraries/InitializationFailLibrary.py +4 -0
  1164. data/vendor/robot/atest/testdata/test_libraries/JavaLibUsingTimestamps.class +0 -0
  1165. data/vendor/robot/atest/testdata/test_libraries/JavaLibUsingTimestamps.java +16 -0
  1166. data/vendor/robot/atest/testdata/test_libraries/JavaLibraryWithoutPublicConstructor.class +0 -0
  1167. data/vendor/robot/atest/testdata/test_libraries/JavaLibraryWithoutPublicConstructor.java +3 -0
  1168. data/vendor/robot/atest/testdata/test_libraries/LibUsingLoggingApi.py +41 -0
  1169. data/vendor/robot/atest/testdata/test_libraries/LibUsingPyLogging.py +67 -0
  1170. data/vendor/robot/atest/testdata/test_libraries/MyInvalidLibFile.py +2 -0
  1171. data/vendor/robot/atest/testdata/test_libraries/MyJavaLib.class +0 -0
  1172. data/vendor/robot/atest/testdata/test_libraries/MyJavaLib.java +6 -0
  1173. data/vendor/robot/atest/testdata/test_libraries/MyJavaLib2.class +0 -0
  1174. data/vendor/robot/atest/testdata/test_libraries/MyJavaLib2.java +6 -0
  1175. data/vendor/robot/atest/testdata/test_libraries/MyLibDir/ClassLib.py +4 -0
  1176. data/vendor/robot/atest/testdata/test_libraries/MyLibDir/SubModuleLib.py +2 -0
  1177. data/vendor/robot/atest/testdata/test_libraries/MyLibDir/SubPackage/ClassLib.py +4 -0
  1178. data/vendor/robot/atest/testdata/test_libraries/MyLibDir/SubPackage/SubModuleLib.py +2 -0
  1179. data/vendor/robot/atest/testdata/test_libraries/MyLibDir/SubPackage/__init__.py +4 -0
  1180. data/vendor/robot/atest/testdata/test_libraries/MyLibDir/SubPackage2/__init__.py +2 -0
  1181. data/vendor/robot/atest/testdata/test_libraries/MyLibDir/__init__.py +9 -0
  1182. data/vendor/robot/atest/testdata/test_libraries/MyLibFile.py +7 -0
  1183. data/vendor/robot/atest/testdata/test_libraries/NamedArgsImportLibrary.py +11 -0
  1184. data/vendor/robot/atest/testdata/test_libraries/PrintLib.py +23 -0
  1185. data/vendor/robot/atest/testdata/test_libraries/PythonLibUsingTimestamps.py +19 -0
  1186. data/vendor/robot/atest/testdata/test_libraries/ThreadLoggingLib.py +23 -0
  1187. data/vendor/robot/atest/testdata/test_libraries/as_listener/LogLevels.py +15 -0
  1188. data/vendor/robot/atest/testdata/test_libraries/as_listener/empty_library.robot +6 -0
  1189. data/vendor/robot/atest/testdata/test_libraries/as_listener/empty_listenerlibrary.py +26 -0
  1190. data/vendor/robot/atest/testdata/test_libraries/as_listener/global_listenerlibrary.py +5 -0
  1191. data/vendor/robot/atest/testdata/test_libraries/as_listener/global_scope.robot +35 -0
  1192. data/vendor/robot/atest/testdata/test_libraries/as_listener/global_scope_2.robot +55 -0
  1193. data/vendor/robot/atest/testdata/test_libraries/as_listener/import_library.robot +42 -0
  1194. data/vendor/robot/atest/testdata/test_libraries/as_listener/listener_library3.robot +9 -0
  1195. data/vendor/robot/atest/testdata/test_libraries/as_listener/listenerlibrary.py +55 -0
  1196. data/vendor/robot/atest/testdata/test_libraries/as_listener/listenerlibrary3.py +52 -0
  1197. data/vendor/robot/atest/testdata/test_libraries/as_listener/log_levels.robot +31 -0
  1198. data/vendor/robot/atest/testdata/test_libraries/as_listener/module_v1_listenerlibrary.py +12 -0
  1199. data/vendor/robot/atest/testdata/test_libraries/as_listener/module_v1_listenerlibrary.robot +7 -0
  1200. data/vendor/robot/atest/testdata/test_libraries/as_listener/multiple_listenerlibrary.py +24 -0
  1201. data/vendor/robot/atest/testdata/test_libraries/as_listener/multiple_listeners.robot +11 -0
  1202. data/vendor/robot/atest/testdata/test_libraries/as_listener/multiple_listeners_java.robot +7 -0
  1203. data/vendor/robot/atest/testdata/test_libraries/as_listener/nested_scopes/01__no_listener.robot +3 -0
  1204. data/vendor/robot/atest/testdata/test_libraries/as_listener/nested_scopes/02__yes_listener.robot +141 -0
  1205. data/vendor/robot/atest/testdata/test_libraries/as_listener/nested_scopes/03__no_listener.robot +3 -0
  1206. data/vendor/robot/atest/testdata/test_libraries/as_listener/nested_scopes/__init__.robot +92 -0
  1207. data/vendor/robot/atest/testdata/test_libraries/as_listener/suite_listenerlibrary.py +5 -0
  1208. data/vendor/robot/atest/testdata/test_libraries/as_listener/suite_scope.robot +35 -0
  1209. data/vendor/robot/atest/testdata/test_libraries/as_listener/suite_scope_2.robot +35 -0
  1210. data/vendor/robot/atest/testdata/test_libraries/as_listener/suite_scope_java.robot +25 -0
  1211. data/vendor/robot/atest/testdata/test_libraries/as_listener/test_scope.robot +29 -0
  1212. data/vendor/robot/atest/testdata/test_libraries/as_listener/test_scope_2.robot +17 -0
  1213. data/vendor/robot/atest/testdata/test_libraries/avoid_properties_when_creating_libraries.robot +16 -0
  1214. data/vendor/robot/atest/testdata/test_libraries/deprecated_keywords.robot +52 -0
  1215. data/vendor/robot/atest/testdata/test_libraries/dir_for_libs/MyLibDir2/__init__.py +2 -0
  1216. data/vendor/robot/atest/testdata/test_libraries/dir_for_libs/MyLibFile2.py +4 -0
  1217. data/vendor/robot/atest/testdata/test_libraries/dir_for_libs/lib1/Lib.py +7 -0
  1218. data/vendor/robot/atest/testdata/test_libraries/dir_for_libs/lib2/Lib.py +5 -0
  1219. data/vendor/robot/atest/testdata/test_libraries/dynamic_kwargs_support_java.robot +26 -0
  1220. data/vendor/robot/atest/testdata/test_libraries/dynamic_kwargs_support_python.robot +33 -0
  1221. data/vendor/robot/atest/testdata/test_libraries/dynamic_libraries/DynamicLibraryWithKwargsSupportWithoutArgspec.py +12 -0
  1222. data/vendor/robot/atest/testdata/test_libraries/dynamic_libraries/DynamicLibraryWithoutArgspec.py +19 -0
  1223. data/vendor/robot/atest/testdata/test_libraries/dynamic_libraries/EmbeddedArgs.py +8 -0
  1224. data/vendor/robot/atest/testdata/test_libraries/dynamic_libraries/InvalidArgSpecs.py +20 -0
  1225. data/vendor/robot/atest/testdata/test_libraries/dynamic_libraries/InvalidKeywordNames.py +8 -0
  1226. data/vendor/robot/atest/testdata/test_libraries/dynamic_libraries/NonAsciiKeywordNames.py +17 -0
  1227. data/vendor/robot/atest/testdata/test_libraries/dynamic_libraries_with_invalid_argspec.robot +36 -0
  1228. data/vendor/robot/atest/testdata/test_libraries/dynamic_library_args_and_docs.robot +54 -0
  1229. data/vendor/robot/atest/testdata/test_libraries/dynamic_library_java.robot +35 -0
  1230. data/vendor/robot/atest/testdata/test_libraries/dynamic_library_python.robot +72 -0
  1231. data/vendor/robot/atest/testdata/test_libraries/dynamic_library_tags.robot +17 -0
  1232. data/vendor/robot/atest/testdata/test_libraries/error_msg_and_details.robot +89 -0
  1233. data/vendor/robot/atest/testdata/test_libraries/hybrid_library.robot +41 -0
  1234. data/vendor/robot/atest/testdata/test_libraries/import_and_init_logging.robot +21 -0
  1235. data/vendor/robot/atest/testdata/test_libraries/internal_modules_not_importable.robot +21 -0
  1236. data/vendor/robot/atest/testdata/test_libraries/invalid_java_libraries.robot +10 -0
  1237. data/vendor/robot/atest/testdata/test_libraries/java_libraries.robot +113 -0
  1238. data/vendor/robot/atest/testdata/test_libraries/java_library_imports_with_args.robot +42 -0
  1239. data/vendor/robot/atest/testdata/test_libraries/java_vars_for_imports.py +6 -0
  1240. data/vendor/robot/atest/testdata/test_libraries/libraries_extending_existing_classes.robot +39 -0
  1241. data/vendor/robot/atest/testdata/test_libraries/library_import_by_path.robot +52 -0
  1242. data/vendor/robot/atest/testdata/test_libraries/library_import_failing.robot +24 -0
  1243. data/vendor/robot/atest/testdata/test_libraries/library_import_from_archive.robot +11 -0
  1244. data/vendor/robot/atest/testdata/test_libraries/library_import_normal.robot +28 -0
  1245. data/vendor/robot/atest/testdata/test_libraries/library_import_with_variable.robot +18 -0
  1246. data/vendor/robot/atest/testdata/test_libraries/library_import_with_variable_from_resource.robot +14 -0
  1247. data/vendor/robot/atest/testdata/test_libraries/library_imports_with_args.robot +76 -0
  1248. data/vendor/robot/atest/testdata/test_libraries/library_scope/01_tests.robot +33 -0
  1249. data/vendor/robot/atest/testdata/test_libraries/library_scope/02_tests.robot +35 -0
  1250. data/vendor/robot/atest/testdata/test_libraries/library_scope/__init__.robot +19 -0
  1251. data/vendor/robot/atest/testdata/test_libraries/library_scope/resource.robot +26 -0
  1252. data/vendor/robot/atest/testdata/test_libraries/library_scope_java/01_tests.robot +33 -0
  1253. data/vendor/robot/atest/testdata/test_libraries/library_scope_java/02_tests.robot +35 -0
  1254. data/vendor/robot/atest/testdata/test_libraries/library_scope_java/__init__.robot +19 -0
  1255. data/vendor/robot/atest/testdata/test_libraries/library_scope_java/resource.robot +32 -0
  1256. data/vendor/robot/atest/testdata/test_libraries/library_version.robot +11 -0
  1257. data/vendor/robot/atest/testdata/test_libraries/library_with_0_parameters.robot +9 -0
  1258. data/vendor/robot/atest/testdata/test_libraries/library_with_1_parameters.robot +10 -0
  1259. data/vendor/robot/atest/testdata/test_libraries/library_with_2_parameters.robot +10 -0
  1260. data/vendor/robot/atest/testdata/test_libraries/logging_api.robot +33 -0
  1261. data/vendor/robot/atest/testdata/test_libraries/logging_with_logging.robot +36 -0
  1262. data/vendor/robot/atest/testdata/test_libraries/module_lib_with_all.py +15 -0
  1263. data/vendor/robot/atest/testdata/test_libraries/module_library.robot +105 -0
  1264. data/vendor/robot/atest/testdata/test_libraries/named_args_in_imports.robot +30 -0
  1265. data/vendor/robot/atest/testdata/test_libraries/new_style_classes.robot +20 -0
  1266. data/vendor/robot/atest/testdata/test_libraries/non_main_threads_logging.robot +10 -0
  1267. data/vendor/robot/atest/testdata/test_libraries/package_library.robot +50 -0
  1268. data/vendor/robot/atest/testdata/test_libraries/print_logging.robot +48 -0
  1269. data/vendor/robot/atest/testdata/test_libraries/print_logging_java.robot +28 -0
  1270. data/vendor/robot/atest/testdata/test_libraries/spaces in path/SpacePathLib.py +2 -0
  1271. data/vendor/robot/atest/testdata/test_libraries/timestamps_for_stdout_messages.robot +15 -0
  1272. data/vendor/robot/atest/testdata/test_libraries/variables_for_library_import.robot +4 -0
  1273. data/vendor/robot/atest/testdata/test_libraries/with_name_1.robot +48 -0
  1274. data/vendor/robot/atest/testdata/test_libraries/with_name_2.robot +124 -0
  1275. data/vendor/robot/atest/testdata/test_libraries/with_name_3.robot +28 -0
  1276. data/vendor/robot/atest/testdata/test_libraries/with_name_4.robot +23 -0
  1277. data/vendor/robot/atest/testdata/testdoc/testdoc.robot +13 -0
  1278. data/vendor/robot/atest/testdata/tidy/__init__.robot +10 -0
  1279. data/vendor/robot/atest/testdata/tidy/documentation.robot +31 -0
  1280. data/vendor/robot/atest/testdata/tidy/documentation_expected.html +195 -0
  1281. data/vendor/robot/atest/testdata/tidy/documentation_expected.robot +39 -0
  1282. data/vendor/robot/atest/testdata/tidy/documentation_expected.tsv +32 -0
  1283. data/vendor/robot/atest/testdata/tidy/documentation_expected.txt +39 -0
  1284. data/vendor/robot/atest/testdata/tidy/else_tidy.robot +83 -0
  1285. data/vendor/robot/atest/testdata/tidy/else_untidy.robot +51 -0
  1286. data/vendor/robot/atest/testdata/tidy/golden.html +358 -0
  1287. data/vendor/robot/atest/testdata/tidy/golden.robot +37 -0
  1288. data/vendor/robot/atest/testdata/tidy/golden.tsv +34 -0
  1289. data/vendor/robot/atest/testdata/tidy/golden_pipes.robot +37 -0
  1290. data/vendor/robot/atest/testdata/tidy/golden_pipes_resource.robot +24 -0
  1291. data/vendor/robot/atest/testdata/tidy/golden_resource.html +278 -0
  1292. data/vendor/robot/atest/testdata/tidy/golden_resource.robot +24 -0
  1293. data/vendor/robot/atest/testdata/tidy/golden_resource.tsv +23 -0
  1294. data/vendor/robot/atest/testdata/tidy/golden_two_spaces.robot +37 -0
  1295. data/vendor/robot/atest/testdata/tidy/golden_with_headers.robot +12 -0
  1296. data/vendor/robot/atest/testdata/tidy/resource_with_empty_tables.robot +5 -0
  1297. data/vendor/robot/atest/testdata/tidy/tests/__init__.robot +2 -0
  1298. data/vendor/robot/atest/testdata/tidy/tests/sub/sub1.robot +4 -0
  1299. data/vendor/robot/atest/testdata/tidy/tests/suite1.robot +15 -0
  1300. data/vendor/robot/atest/testdata/tidy/testsuite_with_empty_tables.robot +7 -0
  1301. data/vendor/robot/atest/testdata/variables/DynamicJavaClass.class +0 -0
  1302. data/vendor/robot/atest/testdata/variables/DynamicJavaClass.java +13 -0
  1303. data/vendor/robot/atest/testdata/variables/DynamicPythonClass.py +5 -0
  1304. data/vendor/robot/atest/testdata/variables/InvalidClass.py +4 -0
  1305. data/vendor/robot/atest/testdata/variables/JavaClass.class +0 -0
  1306. data/vendor/robot/atest/testdata/variables/JavaClass.java +21 -0
  1307. data/vendor/robot/atest/testdata/variables/PythonClass.py +14 -0
  1308. data/vendor/robot/atest/testdata/variables/automatic_variables/HelperLib.py +23 -0
  1309. data/vendor/robot/atest/testdata/variables/automatic_variables/__init__.robot +6 -0
  1310. data/vendor/robot/atest/testdata/variables/automatic_variables/auto1.robot +108 -0
  1311. data/vendor/robot/atest/testdata/variables/automatic_variables/auto2.robot +18 -0
  1312. data/vendor/robot/atest/testdata/variables/automatic_variables/resource.robot +49 -0
  1313. data/vendor/robot/atest/testdata/variables/builtin_variables.robot +168 -0
  1314. data/vendor/robot/atest/testdata/variables/catenate_scalars_in_variable_table.robot +107 -0
  1315. data/vendor/robot/atest/testdata/variables/commandline_variable_files.robot +27 -0
  1316. data/vendor/robot/atest/testdata/variables/commandline_variables.robot +10 -0
  1317. data/vendor/robot/atest/testdata/variables/dict_variable_in_variable_table.robot +140 -0
  1318. data/vendor/robot/atest/testdata/variables/dict_variable_items.robot +55 -0
  1319. data/vendor/robot/atest/testdata/variables/dict_vars.py +17 -0
  1320. data/vendor/robot/atest/testdata/variables/dynamic_variable_files/dyn_vars.py +63 -0
  1321. data/vendor/robot/atest/testdata/variables/dynamic_variable_files/getting_vars_from_dynamic_var_file.robot +32 -0
  1322. data/vendor/robot/atest/testdata/variables/environment_variables.robot +94 -0
  1323. data/vendor/robot/atest/testdata/variables/extended_assign.robot +78 -0
  1324. data/vendor/robot/atest/testdata/variables/extended_assign_vars.py +30 -0
  1325. data/vendor/robot/atest/testdata/variables/extended_variables.py +20 -0
  1326. data/vendor/robot/atest/testdata/variables/extended_variables.robot +132 -0
  1327. data/vendor/robot/atest/testdata/variables/get_file_lib.py +2 -0
  1328. data/vendor/robot/atest/testdata/variables/invalid.YAML +1 -0
  1329. data/vendor/robot/atest/testdata/variables/invalid_encoding.yaml +3 -0
  1330. data/vendor/robot/atest/testdata/variables/keyword_status_and_message.robot +142 -0
  1331. data/vendor/robot/atest/testdata/variables/list_and_dict_from_variable_file.robot +89 -0
  1332. data/vendor/robot/atest/testdata/variables/list_and_dict_variable_file.py +37 -0
  1333. data/vendor/robot/atest/testdata/variables/list_as_scalar.robot +37 -0
  1334. data/vendor/robot/atest/testdata/variables/list_variable_items.robot +47 -0
  1335. data/vendor/robot/atest/testdata/variables/non_dict.yaml +2 -0
  1336. data/vendor/robot/atest/testdata/variables/non_string_variables.py +36 -0
  1337. data/vendor/robot/atest/testdata/variables/non_string_variables.robot +27 -0
  1338. data/vendor/robot/atest/testdata/variables/outputfile_variables/subdir/sub_level_tests.robot +4 -0
  1339. data/vendor/robot/atest/testdata/variables/outputfile_variables/top_level_tests.robot +4 -0
  1340. data/vendor/robot/atest/testdata/variables/recursive_definition.robot +37 -0
  1341. data/vendor/robot/atest/testdata/variables/reserved_syntax.robot +9 -0
  1342. data/vendor/robot/atest/testdata/variables/resource_for_variable_table_in_resource_file.robot +33 -0
  1343. data/vendor/robot/atest/testdata/variables/resvarfiles/cli_vars.py +6 -0
  1344. data/vendor/robot/atest/testdata/variables/resvarfiles/cli_vars_2.py +10 -0
  1345. data/vendor/robot/atest/testdata/variables/resvarfiles/pythonpath_dir/pythonpath_varfile.py +3 -0
  1346. data/vendor/robot/atest/testdata/variables/resvarfiles/resource.robot +31 -0
  1347. data/vendor/robot/atest/testdata/variables/resvarfiles/resource_2.robot +6 -0
  1348. data/vendor/robot/atest/testdata/variables/resvarfiles/resource_3.robot +13 -0
  1349. data/vendor/robot/atest/testdata/variables/resvarfiles/variables.py +34 -0
  1350. data/vendor/robot/atest/testdata/variables/resvarfiles/variables_2.py +2 -0
  1351. data/vendor/robot/atest/testdata/variables/return_values.robot +347 -0
  1352. data/vendor/robot/atest/testdata/variables/return_values_java.robot +66 -0
  1353. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite1/subsuite1/testcase.robot +13 -0
  1354. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite1/subsuite1/variable.py +1 -0
  1355. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite1/testcase.robot +13 -0
  1356. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite1/variable.py +2 -0
  1357. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite2/testcase.robot +13 -0
  1358. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite2/variable.py +1 -0
  1359. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite3/subsuite1/testcase.robot +13 -0
  1360. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite3/subsuite1/variable.py +1 -0
  1361. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite3/subsuite2/testcase.robot +13 -0
  1362. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite3/subsuite2/variable.py +1 -0
  1363. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite3/testcase.robot +13 -0
  1364. data/vendor/robot/atest/testdata/variables/same_variable_file_names/different_variable_files/suite3/variable.py +1 -0
  1365. data/vendor/robot/atest/testdata/variables/same_variable_file_names/same_file.robot +22 -0
  1366. data/vendor/robot/atest/testdata/variables/scalar_as_list.robot +41 -0
  1367. data/vendor/robot/atest/testdata/variables/scalar_lists.py +17 -0
  1368. data/vendor/robot/atest/testdata/variables/shared_scope.robot +23 -0
  1369. data/vendor/robot/atest/testdata/variables/suite_source/__init__.robot +10 -0
  1370. data/vendor/robot/atest/testdata/variables/suite_source/resource.robot +7 -0
  1371. data/vendor/robot/atest/testdata/variables/suite_source/suite_source_in_file_suite.robot +25 -0
  1372. data/vendor/robot/atest/testdata/variables/using_dict_variables.robot +149 -0
  1373. data/vendor/robot/atest/testdata/variables/valid.yaml +16 -0
  1374. data/vendor/robot/atest/testdata/variables/valid2.yaml +1 -0
  1375. data/vendor/robot/atest/testdata/variables/variable_file_implemented_as_class.robot +41 -0
  1376. data/vendor/robot/atest/testdata/variables/variable_priorities.robot +61 -0
  1377. data/vendor/robot/atest/testdata/variables/variable_recommendation_vars.py +6 -0
  1378. data/vendor/robot/atest/testdata/variables/variable_recommendations.robot +174 -0
  1379. data/vendor/robot/atest/testdata/variables/variable_scopes.robot +73 -0
  1380. data/vendor/robot/atest/testdata/variables/variable_table.robot +133 -0
  1381. data/vendor/robot/atest/testdata/variables/variable_table_in_resource_file.robot +93 -0
  1382. data/vendor/robot/atest/testdata/variables/variables_from_resource_files.robot +120 -0
  1383. data/vendor/robot/atest/testdata/variables/variables_from_variable_files.robot +104 -0
  1384. data/vendor/robot/atest/testdata/variables/variables_in_import_settings/common_resource.robot +3 -0
  1385. data/vendor/robot/atest/testdata/variables/variables_in_import_settings/resource1.robot +4 -0
  1386. data/vendor/robot/atest/testdata/variables/variables_in_import_settings/resource2.robot +4 -0
  1387. data/vendor/robot/atest/testdata/variables/variables_in_import_settings/test_cases1.robot +9 -0
  1388. data/vendor/robot/atest/testdata/variables/variables_in_import_settings/test_cases2.robot +9 -0
  1389. data/vendor/robot/atest/testdata/variables/variables_in_import_settings/variables1.py +1 -0
  1390. data/vendor/robot/atest/testdata/variables/variables_in_import_settings/variables2.py +1 -0
  1391. data/vendor/robot/atest/testdata/variables/variables_inside_variables.robot +57 -0
  1392. data/vendor/robot/atest/testdata/variables/yaml_variable_file.robot +42 -0
  1393. data/vendor/robot/atest/testresources/compile_java.sh +9 -0
  1394. data/vendor/robot/atest/testresources/listeners/JavaAttributeVerifyingListener$1.class +0 -0
  1395. data/vendor/robot/atest/testresources/listeners/JavaAttributeVerifyingListener.class +0 -0
  1396. data/vendor/robot/atest/testresources/listeners/JavaAttributeVerifyingListener.java +94 -0
  1397. data/vendor/robot/atest/testresources/listeners/JavaListener.class +0 -0
  1398. data/vendor/robot/atest/testresources/listeners/JavaListener.java +119 -0
  1399. data/vendor/robot/atest/testresources/listeners/JavaListenerWithArgs.class +0 -0
  1400. data/vendor/robot/atest/testresources/listeners/JavaListenerWithArgs.java +14 -0
  1401. data/vendor/robot/atest/testresources/listeners/JavaSuiteAndTestCountListener$1.class +0 -0
  1402. data/vendor/robot/atest/testresources/listeners/JavaSuiteAndTestCountListener.class +0 -0
  1403. data/vendor/robot/atest/testresources/listeners/JavaSuiteAndTestCountListener.java +37 -0
  1404. data/vendor/robot/atest/testresources/listeners/JavaTempDir.class +0 -0
  1405. data/vendor/robot/atest/testresources/listeners/JavaTempDir.java +5 -0
  1406. data/vendor/robot/atest/testresources/listeners/ListenAll.py +84 -0
  1407. data/vendor/robot/atest/testresources/listeners/ListenImports.py +40 -0
  1408. data/vendor/robot/atest/testresources/listeners/OldJavaListener.class +0 -0
  1409. data/vendor/robot/atest/testresources/listeners/OldJavaListener.java +10 -0
  1410. data/vendor/robot/atest/testresources/listeners/attributeverifyinglistener.py +108 -0
  1411. data/vendor/robot/atest/testresources/listeners/listeners.py +139 -0
  1412. data/vendor/robot/atest/testresources/listeners/module_listener.py +67 -0
  1413. data/vendor/robot/atest/testresources/listeners/unsupported_listeners.py +19 -0
  1414. data/vendor/robot/atest/testresources/res_and_var_files/cli.yaml +1 -0
  1415. data/vendor/robot/atest/testresources/res_and_var_files/different_variables.py +3 -0
  1416. data/vendor/robot/atest/testresources/res_and_var_files/pythonpath.yaml +1 -0
  1417. data/vendor/robot/atest/testresources/res_and_var_files/resource_in_pythonpath.robot +8 -0
  1418. data/vendor/robot/atest/testresources/res_and_var_files/resvar_subdir/resource_in_pythonpath_2.robot +8 -0
  1419. data/vendor/robot/atest/testresources/res_and_var_files/resvar_subdir/variables_in_pythonpath_2.py +3 -0
  1420. data/vendor/robot/atest/testresources/res_and_var_files/variables_in_pythonpath.py +1 -0
  1421. data/vendor/robot/atest/testresources/testlibs/ArgDocDynamicJavaLibrary.class +0 -0
  1422. data/vendor/robot/atest/testresources/testlibs/ArgDocDynamicJavaLibrary.java +61 -0
  1423. data/vendor/robot/atest/testresources/testlibs/ArgDocDynamicJavaLibraryWithKwargsSupport.class +0 -0
  1424. data/vendor/robot/atest/testresources/testlibs/ArgDocDynamicJavaLibraryWithKwargsSupport.java +26 -0
  1425. data/vendor/robot/atest/testresources/testlibs/ArgTypeCoercion.class +0 -0
  1426. data/vendor/robot/atest/testresources/testlibs/ArgTypeCoercion.java +73 -0
  1427. data/vendor/robot/atest/testresources/testlibs/ArgumentTypes.class +0 -0
  1428. data/vendor/robot/atest/testresources/testlibs/ArgumentTypes.java +202 -0
  1429. data/vendor/robot/atest/testresources/testlibs/ArgumentsJava.class +0 -0
  1430. data/vendor/robot/atest/testresources/testlibs/ArgumentsJava.java +118 -0
  1431. data/vendor/robot/atest/testresources/testlibs/ArgumentsPython.py +35 -0
  1432. data/vendor/robot/atest/testresources/testlibs/BinaryDataLibrary.py +18 -0
  1433. data/vendor/robot/atest/testresources/testlibs/DefaultArgs.class +0 -0
  1434. data/vendor/robot/atest/testresources/testlibs/DefaultArgs.java +19 -0
  1435. data/vendor/robot/atest/testresources/testlibs/DynamicJavaLibraryWithLists.class +0 -0
  1436. data/vendor/robot/atest/testresources/testlibs/DynamicJavaLibraryWithLists.java +22 -0
  1437. data/vendor/robot/atest/testresources/testlibs/DynamicLibraryWithKwargsAndOnlyOneRunKeyword.class +0 -0
  1438. data/vendor/robot/atest/testresources/testlibs/DynamicLibraryWithKwargsAndOnlyOneRunKeyword.java +26 -0
  1439. data/vendor/robot/atest/testresources/testlibs/ExampleJavaLibrary$1.class +0 -0
  1440. data/vendor/robot/atest/testresources/testlibs/ExampleJavaLibrary$MyJavaException.class +0 -0
  1441. data/vendor/robot/atest/testresources/testlibs/ExampleJavaLibrary.class +0 -0
  1442. data/vendor/robot/atest/testresources/testlibs/ExampleJavaLibrary.java +164 -0
  1443. data/vendor/robot/atest/testresources/testlibs/ExampleLibrary.py +180 -0
  1444. data/vendor/robot/atest/testresources/testlibs/Exceptions.py +11 -0
  1445. data/vendor/robot/atest/testresources/testlibs/ExtendPythonLib.py +12 -0
  1446. data/vendor/robot/atest/testresources/testlibs/Extended.class +0 -0
  1447. data/vendor/robot/atest/testresources/testlibs/Extended.java +10 -0
  1448. data/vendor/robot/atest/testresources/testlibs/FatalCatastrophyException.class +0 -0
  1449. data/vendor/robot/atest/testresources/testlibs/FatalCatastrophyException.java +3 -0
  1450. data/vendor/robot/atest/testresources/testlibs/GetKeywordNamesLibrary.py +54 -0
  1451. data/vendor/robot/atest/testresources/testlibs/InvalidAttributeArgDocDynamicJavaLibrary.class +0 -0
  1452. data/vendor/robot/atest/testresources/testlibs/InvalidAttributeArgDocDynamicJavaLibrary.java +15 -0
  1453. data/vendor/robot/atest/testresources/testlibs/InvalidSignatureArgDocDynamicJavaLibrary.class +0 -0
  1454. data/vendor/robot/atest/testresources/testlibs/InvalidSignatureArgDocDynamicJavaLibrary.java +18 -0
  1455. data/vendor/robot/atest/testresources/testlibs/JarLib.jar +0 -0
  1456. data/vendor/robot/atest/testresources/testlibs/JavaExceptions.class +0 -0
  1457. data/vendor/robot/atest/testresources/testlibs/JavaExceptions.java +48 -0
  1458. data/vendor/robot/atest/testresources/testlibs/JavaListenerLibrary.class +0 -0
  1459. data/vendor/robot/atest/testresources/testlibs/JavaListenerLibrary.java +58 -0
  1460. data/vendor/robot/atest/testresources/testlibs/JavaMultipleListenerLibrary.class +0 -0
  1461. data/vendor/robot/atest/testresources/testlibs/JavaMultipleListenerLibrary.java +18 -0
  1462. data/vendor/robot/atest/testresources/testlibs/JavaObject.class +0 -0
  1463. data/vendor/robot/atest/testresources/testlibs/JavaObject.java +36 -0
  1464. data/vendor/robot/atest/testresources/testlibs/JavaVersionLibrary.class +0 -0
  1465. data/vendor/robot/atest/testresources/testlibs/JavaVersionLibrary.java +9 -0
  1466. data/vendor/robot/atest/testresources/testlibs/ListArgumentsJava.class +0 -0
  1467. data/vendor/robot/atest/testresources/testlibs/ListArgumentsJava.java +24 -0
  1468. data/vendor/robot/atest/testresources/testlibs/MandatoryArgs.class +0 -0
  1469. data/vendor/robot/atest/testresources/testlibs/MandatoryArgs.java +12 -0
  1470. data/vendor/robot/atest/testresources/testlibs/MultipleArguments.class +0 -0
  1471. data/vendor/robot/atest/testresources/testlibs/MultipleArguments.java +17 -0
  1472. data/vendor/robot/atest/testresources/testlibs/MultipleSignatures.class +0 -0
  1473. data/vendor/robot/atest/testresources/testlibs/MultipleSignatures.java +42 -0
  1474. data/vendor/robot/atest/testresources/testlibs/NamespaceUsingLibrary.py +13 -0
  1475. data/vendor/robot/atest/testresources/testlibs/NoHandlers.class +0 -0
  1476. data/vendor/robot/atest/testresources/testlibs/NoHandlers.java +9 -0
  1477. data/vendor/robot/atest/testresources/testlibs/OverrideGetName.class +0 -0
  1478. data/vendor/robot/atest/testresources/testlibs/OverrideGetName.java +11 -0
  1479. data/vendor/robot/atest/testresources/testlibs/ParameterLibrary.py +23 -0
  1480. data/vendor/robot/atest/testresources/testlibs/PythonVarArgsConstructor.py +9 -0
  1481. data/vendor/robot/atest/testresources/testlibs/ReturnTypes.class +0 -0
  1482. data/vendor/robot/atest/testresources/testlibs/ReturnTypes.java +64 -0
  1483. data/vendor/robot/atest/testresources/testlibs/RunKeywordButNoGetKeywordNamesLibraryJava.class +0 -0
  1484. data/vendor/robot/atest/testresources/testlibs/RunKeywordButNoGetKeywordNamesLibraryJava.java +16 -0
  1485. data/vendor/robot/atest/testresources/testlibs/RunKeywordLibrary.py +41 -0
  1486. data/vendor/robot/atest/testresources/testlibs/RunKeywordLibraryJava.class +0 -0
  1487. data/vendor/robot/atest/testresources/testlibs/RunKeywordLibraryJava.java +44 -0
  1488. data/vendor/robot/atest/testresources/testlibs/RunKeywordLibraryJavaWithKwargsSupport.class +0 -0
  1489. data/vendor/robot/atest/testresources/testlibs/RunKeywordLibraryJavaWithKwargsSupport.java +16 -0
  1490. data/vendor/robot/atest/testresources/testlibs/SameNamesAsInBuiltIn.py +4 -0
  1491. data/vendor/robot/atest/testresources/testlibs/UnicodeJavaLibrary.class +0 -0
  1492. data/vendor/robot/atest/testresources/testlibs/UnicodeJavaLibrary.java +44 -0
  1493. data/vendor/robot/atest/testresources/testlibs/UnicodeLibrary.py +38 -0
  1494. data/vendor/robot/atest/testresources/testlibs/archive_src/ZipLib.py +5 -0
  1495. data/vendor/robot/atest/testresources/testlibs/archive_src/org/robotframework/JarLib.class +0 -0
  1496. data/vendor/robot/atest/testresources/testlibs/archive_src/org/robotframework/JarLib.java +8 -0
  1497. data/vendor/robot/atest/testresources/testlibs/classes.py +186 -0
  1498. data/vendor/robot/atest/testresources/testlibs/dynlibs.py +41 -0
  1499. data/vendor/robot/atest/testresources/testlibs/extendingjava.py +37 -0
  1500. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/BaseLib.class +0 -0
  1501. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/BaseLib.java +26 -0
  1502. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/Global.class +0 -0
  1503. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/Global.java +7 -0
  1504. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidEmpty.class +0 -0
  1505. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidEmpty.java +5 -0
  1506. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidMethod.class +0 -0
  1507. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidMethod.java +9 -0
  1508. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidNull.class +0 -0
  1509. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidNull.java +7 -0
  1510. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidPrivate.class +0 -0
  1511. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidPrivate.java +7 -0
  1512. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidProtected.class +0 -0
  1513. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidProtected.java +7 -0
  1514. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidValue.class +0 -0
  1515. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/InvalidValue.java +7 -0
  1516. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/Suite.class +0 -0
  1517. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/Suite.java +7 -0
  1518. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/Test.class +0 -0
  1519. data/vendor/robot/atest/testresources/testlibs/javalibraryscope/Test.java +7 -0
  1520. data/vendor/robot/atest/testresources/testlibs/javapkg/JavaPackageExample.class +0 -0
  1521. data/vendor/robot/atest/testresources/testlibs/javapkg/JavaPackageExample.java +26 -0
  1522. data/vendor/robot/atest/testresources/testlibs/libmodule.py +11 -0
  1523. data/vendor/robot/atest/testresources/testlibs/libraryscope.py +51 -0
  1524. data/vendor/robot/atest/testresources/testlibs/libswithargs.py +32 -0
  1525. data/vendor/robot/atest/testresources/testlibs/module_library.py +54 -0
  1526. data/vendor/robot/atest/testresources/testlibs/newstyleclasses.py +27 -0
  1527. data/vendor/robot/atest/testresources/testlibs/newstyleclasses2.py +15 -0
  1528. data/vendor/robot/atest/testresources/testlibs/newstyleclasses3.py +14 -0
  1529. data/vendor/robot/atest/testresources/testlibs/objecttoreturn.py +14 -0
  1530. data/vendor/robot/atest/testresources/testlibs/pythonmodule/__init__.py +8 -0
  1531. data/vendor/robot/atest/testresources/testlibs/pythonmodule/library.py +5 -0
  1532. data/vendor/robot/atest/testresources/testlibs/pythonmodule/submodule/__init__.py +1 -0
  1533. data/vendor/robot/atest/testresources/testlibs/pythonmodule/submodule/sublib.py +9 -0
  1534. data/vendor/robot/atest/testresources/testlibs/ziplib.zip +0 -0
  1535. data/vendor/robot/pom.xml +34 -0
  1536. data/vendor/robot/rundevel.py +58 -0
  1537. data/vendor/robot/setup.py +100 -0
  1538. data/vendor/robot/src/bin/ipybot +6 -0
  1539. data/vendor/robot/src/bin/ipybot.bat +2 -0
  1540. data/vendor/robot/src/bin/ipyrebot +6 -0
  1541. data/vendor/robot/src/bin/ipyrebot.bat +2 -0
  1542. data/vendor/robot/src/bin/jybot +6 -0
  1543. data/vendor/robot/src/bin/jybot.bat +2 -0
  1544. data/vendor/robot/src/bin/jyrebot +6 -0
  1545. data/vendor/robot/src/bin/jyrebot.bat +2 -0
  1546. data/vendor/robot/src/bin/pybot +6 -0
  1547. data/vendor/robot/src/bin/pybot.bat +2 -0
  1548. data/vendor/robot/src/bin/rebot +9 -0
  1549. data/vendor/robot/src/bin/rebot.bat +2 -0
  1550. data/vendor/robot/src/bin/robot +9 -0
  1551. data/vendor/robot/src/bin/robot.bat +2 -0
  1552. data/vendor/robot/src/java/org/robotframework/RobotFramework.java +64 -0
  1553. data/vendor/robot/src/java/org/robotframework/RobotPythonRunner.java +27 -0
  1554. data/vendor/robot/src/java/org/robotframework/RobotRunner.java +83 -0
  1555. data/vendor/robot/src/robot/__init__.py +47 -0
  1556. data/vendor/robot/src/robot/__main__.py +28 -0
  1557. data/vendor/robot/src/robot/api/__init__.py +74 -0
  1558. data/vendor/robot/src/robot/api/deco.py +54 -0
  1559. data/vendor/robot/src/robot/api/logger.py +144 -0
  1560. data/vendor/robot/src/robot/conf/__init__.py +27 -0
  1561. data/vendor/robot/src/robot/conf/gatherfailed.py +76 -0
  1562. data/vendor/robot/src/robot/conf/settings.py +588 -0
  1563. data/vendor/robot/src/robot/errors.py +296 -0
  1564. data/vendor/robot/src/robot/htmldata/__init__.py +27 -0
  1565. data/vendor/robot/src/robot/htmldata/common/doc_formatting.css +49 -0
  1566. data/vendor/robot/src/robot/htmldata/common/js_disabled.css +21 -0
  1567. data/vendor/robot/src/robot/htmldata/common/storage.js +24 -0
  1568. data/vendor/robot/src/robot/htmldata/htmlfilewriter.py +115 -0
  1569. data/vendor/robot/src/robot/htmldata/jartemplate.py +46 -0
  1570. data/vendor/robot/src/robot/htmldata/jsonwriter.py +146 -0
  1571. data/vendor/robot/src/robot/htmldata/lib/jquery.highlight.min.js +11 -0
  1572. data/vendor/robot/src/robot/htmldata/lib/jquery.min.js +2 -0
  1573. data/vendor/robot/src/robot/htmldata/lib/jquery.tablesorter.min.js +5 -0
  1574. data/vendor/robot/src/robot/htmldata/lib/jquery.tmpl.min.js +10 -0
  1575. data/vendor/robot/src/robot/htmldata/lib/jsxcompressor.min.js +19 -0
  1576. data/vendor/robot/src/robot/htmldata/lib/versions.txt +29 -0
  1577. data/vendor/robot/src/robot/htmldata/libdoc/libdoc.css +148 -0
  1578. data/vendor/robot/src/robot/htmldata/libdoc/libdoc.html +379 -0
  1579. data/vendor/robot/src/robot/htmldata/libdoc/print.css +11 -0
  1580. data/vendor/robot/src/robot/htmldata/libdoc/pygments.css +69 -0
  1581. data/vendor/robot/src/robot/htmldata/normaltemplate.py +29 -0
  1582. data/vendor/robot/src/robot/htmldata/rebot/common.css +222 -0
  1583. data/vendor/robot/src/robot/htmldata/rebot/fileloading.js +44 -0
  1584. data/vendor/robot/src/robot/htmldata/rebot/log.css +183 -0
  1585. data/vendor/robot/src/robot/htmldata/rebot/log.html +389 -0
  1586. data/vendor/robot/src/robot/htmldata/rebot/log.js +213 -0
  1587. data/vendor/robot/src/robot/htmldata/rebot/model.js +309 -0
  1588. data/vendor/robot/src/robot/htmldata/rebot/print.css +38 -0
  1589. data/vendor/robot/src/robot/htmldata/rebot/report.css +189 -0
  1590. data/vendor/robot/src/robot/htmldata/rebot/report.html +841 -0
  1591. data/vendor/robot/src/robot/htmldata/rebot/testdata.js +297 -0
  1592. data/vendor/robot/src/robot/htmldata/rebot/util.js +224 -0
  1593. data/vendor/robot/src/robot/htmldata/rebot/view.js +182 -0
  1594. data/vendor/robot/src/robot/htmldata/template.py +19 -0
  1595. data/vendor/robot/src/robot/htmldata/testdata/create_jsdata.py +64 -0
  1596. data/vendor/robot/src/robot/htmldata/testdata/create_libdoc_data.py +22 -0
  1597. data/vendor/robot/src/robot/htmldata/testdata/create_testdoc_data.py +25 -0
  1598. data/vendor/robot/src/robot/htmldata/testdata/data.js +10 -0
  1599. data/vendor/robot/src/robot/htmldata/testdata/dir.suite/__init__.txt +38 -0
  1600. data/vendor/robot/src/robot/htmldata/testdata/dir.suite/test.suite.1.txt +22 -0
  1601. data/vendor/robot/src/robot/htmldata/testdata/dir.suite/test.suite.2.txt +22 -0
  1602. data/vendor/robot/src/robot/htmldata/testdata/dir.suite/tests.txt +119 -0
  1603. data/vendor/robot/src/robot/htmldata/testdata/libdoc.js +1 -0
  1604. data/vendor/robot/src/robot/htmldata/testdata/libdoc.txt +165 -0
  1605. data/vendor/robot/src/robot/htmldata/testdata/testdoc.js +1 -0
  1606. data/vendor/robot/src/robot/htmldata/testdoc/testdoc.css +9 -0
  1607. data/vendor/robot/src/robot/htmldata/testdoc/testdoc.html +259 -0
  1608. data/vendor/robot/src/robot/jarrunner.py +69 -0
  1609. data/vendor/robot/src/robot/libdoc.py +228 -0
  1610. data/vendor/robot/src/robot/libdocpkg/__init__.py +47 -0
  1611. data/vendor/robot/src/robot/libdocpkg/builder.py +39 -0
  1612. data/vendor/robot/src/robot/libdocpkg/consoleviewer.py +109 -0
  1613. data/vendor/robot/src/robot/libdocpkg/htmlwriter.py +167 -0
  1614. data/vendor/robot/src/robot/libdocpkg/javabuilder.py +129 -0
  1615. data/vendor/robot/src/robot/libdocpkg/model.py +70 -0
  1616. data/vendor/robot/src/robot/libdocpkg/output.py +38 -0
  1617. data/vendor/robot/src/robot/libdocpkg/robotbuilder.py +121 -0
  1618. data/vendor/robot/src/robot/libdocpkg/specbuilder.py +61 -0
  1619. data/vendor/robot/src/robot/libdocpkg/writer.py +28 -0
  1620. data/vendor/robot/src/robot/libdocpkg/xmlwriter.py +47 -0
  1621. data/vendor/robot/src/robot/libraries/BuiltIn.py +3469 -0
  1622. data/vendor/robot/src/robot/libraries/Collections.py +940 -0
  1623. data/vendor/robot/src/robot/libraries/DateTime.py +678 -0
  1624. data/vendor/robot/src/robot/libraries/Dialogs.py +115 -0
  1625. data/vendor/robot/src/robot/libraries/Easter.py +27 -0
  1626. data/vendor/robot/src/robot/libraries/OperatingSystem.py +1468 -0
  1627. data/vendor/robot/src/robot/libraries/Process.py +952 -0
  1628. data/vendor/robot/src/robot/libraries/Remote.py +286 -0
  1629. data/vendor/robot/src/robot/libraries/Reserved.py +31 -0
  1630. data/vendor/robot/src/robot/libraries/Screenshot.py +382 -0
  1631. data/vendor/robot/src/robot/libraries/String.py +684 -0
  1632. data/vendor/robot/src/robot/libraries/Telnet.py +1273 -0
  1633. data/vendor/robot/src/robot/libraries/XML.py +1514 -0
  1634. data/vendor/robot/src/robot/libraries/__init__.py +31 -0
  1635. data/vendor/robot/src/robot/libraries/dialogs_ipy.py +201 -0
  1636. data/vendor/robot/src/robot/libraries/dialogs_jy.py +113 -0
  1637. data/vendor/robot/src/robot/libraries/dialogs_py.py +179 -0
  1638. data/vendor/robot/src/robot/model/__init__.py +41 -0
  1639. data/vendor/robot/src/robot/model/configurer.py +88 -0
  1640. data/vendor/robot/src/robot/model/criticality.py +43 -0
  1641. data/vendor/robot/src/robot/model/filter.py +102 -0
  1642. data/vendor/robot/src/robot/model/imports.py +62 -0
  1643. data/vendor/robot/src/robot/model/itemlist.py +102 -0
  1644. data/vendor/robot/src/robot/model/keyword.py +182 -0
  1645. data/vendor/robot/src/robot/model/message.py +75 -0
  1646. data/vendor/robot/src/robot/model/metadata.py +33 -0
  1647. data/vendor/robot/src/robot/model/modelobject.py +85 -0
  1648. data/vendor/robot/src/robot/model/modifier.py +52 -0
  1649. data/vendor/robot/src/robot/model/namepatterns.py +54 -0
  1650. data/vendor/robot/src/robot/model/statistics.py +67 -0
  1651. data/vendor/robot/src/robot/model/stats.py +196 -0
  1652. data/vendor/robot/src/robot/model/suitestatistics.py +71 -0
  1653. data/vendor/robot/src/robot/model/tags.py +180 -0
  1654. data/vendor/robot/src/robot/model/tagsetter.py +39 -0
  1655. data/vendor/robot/src/robot/model/tagstatistics.py +178 -0
  1656. data/vendor/robot/src/robot/model/testcase.py +88 -0
  1657. data/vendor/robot/src/robot/model/testsuite.py +168 -0
  1658. data/vendor/robot/src/robot/model/totalstatistics.py +71 -0
  1659. data/vendor/robot/src/robot/model/visitor.py +163 -0
  1660. data/vendor/robot/src/robot/output/__init__.py +25 -0
  1661. data/vendor/robot/src/robot/output/console/__init__.py +35 -0
  1662. data/vendor/robot/src/robot/output/console/dotted.py +87 -0
  1663. data/vendor/robot/src/robot/output/console/highlighting.py +190 -0
  1664. data/vendor/robot/src/robot/output/console/quiet.py +32 -0
  1665. data/vendor/robot/src/robot/output/console/verbose.py +175 -0
  1666. data/vendor/robot/src/robot/output/debugfile.py +112 -0
  1667. data/vendor/robot/src/robot/output/filelogger.py +62 -0
  1668. data/vendor/robot/src/robot/output/librarylogger.py +75 -0
  1669. data/vendor/robot/src/robot/output/listenerarguments.py +141 -0
  1670. data/vendor/robot/src/robot/output/listenermethods.py +109 -0
  1671. data/vendor/robot/src/robot/output/listeners.py +168 -0
  1672. data/vendor/robot/src/robot/output/logger.py +220 -0
  1673. data/vendor/robot/src/robot/output/loggerhelper.py +150 -0
  1674. data/vendor/robot/src/robot/output/output.py +74 -0
  1675. data/vendor/robot/src/robot/output/pyloggingconf.py +84 -0
  1676. data/vendor/robot/src/robot/output/stdoutlogsplitter.py +58 -0
  1677. data/vendor/robot/src/robot/output/xmllogger.py +161 -0
  1678. data/vendor/robot/src/robot/parsing/__init__.py +66 -0
  1679. data/vendor/robot/src/robot/parsing/comments.py +63 -0
  1680. data/vendor/robot/src/robot/parsing/datarow.py +97 -0
  1681. data/vendor/robot/src/robot/parsing/htmlreader.py +205 -0
  1682. data/vendor/robot/src/robot/parsing/model.py +717 -0
  1683. data/vendor/robot/src/robot/parsing/populators.py +215 -0
  1684. data/vendor/robot/src/robot/parsing/restreader.py +52 -0
  1685. data/vendor/robot/src/robot/parsing/restsupport.py +55 -0
  1686. data/vendor/robot/src/robot/parsing/settings.py +393 -0
  1687. data/vendor/robot/src/robot/parsing/tablepopulators.py +335 -0
  1688. data/vendor/robot/src/robot/parsing/tsvreader.py +48 -0
  1689. data/vendor/robot/src/robot/parsing/txtreader.py +36 -0
  1690. data/vendor/robot/src/robot/pythonpathsetter.py +41 -0
  1691. data/vendor/robot/src/robot/rebot.py +412 -0
  1692. data/vendor/robot/src/robot/reporting/__init__.py +29 -0
  1693. data/vendor/robot/src/robot/reporting/jsbuildingcontext.py +97 -0
  1694. data/vendor/robot/src/robot/reporting/jsexecutionresult.py +105 -0
  1695. data/vendor/robot/src/robot/reporting/jsmodelbuilders.py +189 -0
  1696. data/vendor/robot/src/robot/reporting/jswriter.py +108 -0
  1697. data/vendor/robot/src/robot/reporting/logreportwriters.py +70 -0
  1698. data/vendor/robot/src/robot/reporting/outputwriter.py +38 -0
  1699. data/vendor/robot/src/robot/reporting/resultwriter.py +142 -0
  1700. data/vendor/robot/src/robot/reporting/stringcache.py +52 -0
  1701. data/vendor/robot/src/robot/reporting/xunitwriter.py +100 -0
  1702. data/vendor/robot/src/robot/result/__init__.py +47 -0
  1703. data/vendor/robot/src/robot/result/configurer.py +76 -0
  1704. data/vendor/robot/src/robot/result/executionerrors.py +51 -0
  1705. data/vendor/robot/src/robot/result/executionresult.py +136 -0
  1706. data/vendor/robot/src/robot/result/flattenkeywordmatcher.py +77 -0
  1707. data/vendor/robot/src/robot/result/keywordremover.py +164 -0
  1708. data/vendor/robot/src/robot/result/merger.py +87 -0
  1709. data/vendor/robot/src/robot/result/messagefilter.py +28 -0
  1710. data/vendor/robot/src/robot/result/model.py +295 -0
  1711. data/vendor/robot/src/robot/result/resultbuilder.py +195 -0
  1712. data/vendor/robot/src/robot/result/suiteteardownfailed.py +47 -0
  1713. data/vendor/robot/src/robot/result/visitor.py +124 -0
  1714. data/vendor/robot/src/robot/result/xmlelementhandlers.py +258 -0
  1715. data/vendor/robot/src/robot/run.py +550 -0
  1716. data/vendor/robot/src/robot/running/__init__.py +109 -0
  1717. data/vendor/robot/src/robot/running/arguments/__init__.py +26 -0
  1718. data/vendor/robot/src/robot/running/arguments/argumentmapper.py +73 -0
  1719. data/vendor/robot/src/robot/running/arguments/argumentparser.py +192 -0
  1720. data/vendor/robot/src/robot/running/arguments/argumentresolver.py +134 -0
  1721. data/vendor/robot/src/robot/running/arguments/argumentspec.py +50 -0
  1722. data/vendor/robot/src/robot/running/arguments/argumentvalidator.py +68 -0
  1723. data/vendor/robot/src/robot/running/arguments/embedded.py +88 -0
  1724. data/vendor/robot/src/robot/running/arguments/javaargumentcoercer.py +146 -0
  1725. data/vendor/robot/src/robot/running/builder.py +231 -0
  1726. data/vendor/robot/src/robot/running/context.py +198 -0
  1727. data/vendor/robot/src/robot/running/defaults.py +43 -0
  1728. data/vendor/robot/src/robot/running/dynamicmethods.py +145 -0
  1729. data/vendor/robot/src/robot/running/handlers.py +269 -0
  1730. data/vendor/robot/src/robot/running/handlerstore.py +85 -0
  1731. data/vendor/robot/src/robot/running/importer.py +149 -0
  1732. data/vendor/robot/src/robot/running/librarykeywordrunner.py +224 -0
  1733. data/vendor/robot/src/robot/running/libraryscopes.py +101 -0
  1734. data/vendor/robot/src/robot/running/model.py +319 -0
  1735. data/vendor/robot/src/robot/running/namespace.py +440 -0
  1736. data/vendor/robot/src/robot/running/outputcapture.py +137 -0
  1737. data/vendor/robot/src/robot/running/randomizer.py +53 -0
  1738. data/vendor/robot/src/robot/running/runkwregister.py +65 -0
  1739. data/vendor/robot/src/robot/running/runner.py +220 -0
  1740. data/vendor/robot/src/robot/running/signalhandler.py +89 -0
  1741. data/vendor/robot/src/robot/running/status.py +234 -0
  1742. data/vendor/robot/src/robot/running/statusreporter.py +74 -0
  1743. data/vendor/robot/src/robot/running/steprunner.py +272 -0
  1744. data/vendor/robot/src/robot/running/testlibraries.py +411 -0
  1745. data/vendor/robot/src/robot/running/timeouts/__init__.py +133 -0
  1746. data/vendor/robot/src/robot/running/timeouts/ironpython.py +56 -0
  1747. data/vendor/robot/src/robot/running/timeouts/jython.py +55 -0
  1748. data/vendor/robot/src/robot/running/timeouts/posix.py +40 -0
  1749. data/vendor/robot/src/robot/running/timeouts/windows.py +71 -0
  1750. data/vendor/robot/src/robot/running/usererrorhandler.py +66 -0
  1751. data/vendor/robot/src/robot/running/userkeyword.py +114 -0
  1752. data/vendor/robot/src/robot/running/userkeywordrunner.py +236 -0
  1753. data/vendor/robot/src/robot/testdoc.py +303 -0
  1754. data/vendor/robot/src/robot/tidy.py +330 -0
  1755. data/vendor/robot/src/robot/utils/__init__.py +76 -0
  1756. data/vendor/robot/src/robot/utils/application.py +130 -0
  1757. data/vendor/robot/src/robot/utils/argumentparser.py +476 -0
  1758. data/vendor/robot/src/robot/utils/asserts.py +239 -0
  1759. data/vendor/robot/src/robot/utils/charwidth.py +139 -0
  1760. data/vendor/robot/src/robot/utils/compat.py +76 -0
  1761. data/vendor/robot/src/robot/utils/compress.py +54 -0
  1762. data/vendor/robot/src/robot/utils/connectioncache.py +178 -0
  1763. data/vendor/robot/src/robot/utils/dotdict.py +65 -0
  1764. data/vendor/robot/src/robot/utils/encoding.py +104 -0
  1765. data/vendor/robot/src/robot/utils/encodingsniffer.py +109 -0
  1766. data/vendor/robot/src/robot/utils/error.py +206 -0
  1767. data/vendor/robot/src/robot/utils/escaping.py +145 -0
  1768. data/vendor/robot/src/robot/utils/etreewrapper.py +88 -0
  1769. data/vendor/robot/src/robot/utils/frange.py +63 -0
  1770. data/vendor/robot/src/robot/utils/htmlformatters.py +303 -0
  1771. data/vendor/robot/src/robot/utils/importer.py +274 -0
  1772. data/vendor/robot/src/robot/utils/markuputils.py +49 -0
  1773. data/vendor/robot/src/robot/utils/markupwriters.py +108 -0
  1774. data/vendor/robot/src/robot/utils/match.py +103 -0
  1775. data/vendor/robot/src/robot/utils/misc.py +128 -0
  1776. data/vendor/robot/src/robot/utils/normalizing.py +124 -0
  1777. data/vendor/robot/src/robot/utils/ordereddict.py +127 -0
  1778. data/vendor/robot/src/robot/utils/platform.py +32 -0
  1779. data/vendor/robot/src/robot/utils/recommendations.py +75 -0
  1780. data/vendor/robot/src/robot/utils/robotenv.py +44 -0
  1781. data/vendor/robot/src/robot/utils/robotinspect.py +36 -0
  1782. data/vendor/robot/src/robot/utils/robotio.py +43 -0
  1783. data/vendor/robot/src/robot/utils/robotpath.py +174 -0
  1784. data/vendor/robot/src/robot/utils/robottime.py +431 -0
  1785. data/vendor/robot/src/robot/utils/robottypes.py +35 -0
  1786. data/vendor/robot/src/robot/utils/robottypes2.py +74 -0
  1787. data/vendor/robot/src/robot/utils/robottypes3.py +65 -0
  1788. data/vendor/robot/src/robot/utils/setter.py +46 -0
  1789. data/vendor/robot/src/robot/utils/sortable.py +53 -0
  1790. data/vendor/robot/src/robot/utils/text.py +151 -0
  1791. data/vendor/robot/src/robot/utils/unic.py +89 -0
  1792. data/vendor/robot/src/robot/utils/utf8reader.py +52 -0
  1793. data/vendor/robot/src/robot/variables/__init__.py +27 -0
  1794. data/vendor/robot/src/robot/variables/assigner.py +252 -0
  1795. data/vendor/robot/src/robot/variables/filesetter.py +144 -0
  1796. data/vendor/robot/src/robot/variables/finders.py +150 -0
  1797. data/vendor/robot/src/robot/variables/isvar.py +52 -0
  1798. data/vendor/robot/src/robot/variables/notfound.py +46 -0
  1799. data/vendor/robot/src/robot/variables/replacer.py +177 -0
  1800. data/vendor/robot/src/robot/variables/scopes.py +256 -0
  1801. data/vendor/robot/src/robot/variables/splitter.py +187 -0
  1802. data/vendor/robot/src/robot/variables/store.py +116 -0
  1803. data/vendor/robot/src/robot/variables/tablesetter.py +150 -0
  1804. data/vendor/robot/src/robot/variables/variables.py +81 -0
  1805. data/vendor/robot/src/robot/version.py +46 -0
  1806. data/vendor/robot/src/robot/writer/__init__.py +26 -0
  1807. data/vendor/robot/src/robot/writer/aligners.py +64 -0
  1808. data/vendor/robot/src/robot/writer/dataextractor.py +57 -0
  1809. data/vendor/robot/src/robot/writer/datafilewriter.py +126 -0
  1810. data/vendor/robot/src/robot/writer/filewriters.py +149 -0
  1811. data/vendor/robot/src/robot/writer/formatters.py +150 -0
  1812. data/vendor/robot/src/robot/writer/htmlformatter.py +131 -0
  1813. data/vendor/robot/src/robot/writer/htmltemplate.py +71 -0
  1814. data/vendor/robot/src/robot/writer/rowsplitter.py +108 -0
  1815. data/vendor/robot/tasks.py +265 -0
  1816. data/vendor/robot/templates/README.rst +24 -0
  1817. data/vendor/robot/templates/atdd_template.html +130 -0
  1818. data/vendor/robot/templates/resource_template.html +154 -0
  1819. data/vendor/robot/templates/resource_template.tsv +9 -0
  1820. data/vendor/robot/templates/testcase_template.html +173 -0
  1821. data/vendor/robot/templates/testcase_template.tsv +13 -0
  1822. data/vendor/robot/utest/README.rst +55 -0
  1823. data/vendor/robot/utest/__init__.py +0 -0
  1824. data/vendor/robot/utest/api/import_test.robot +7 -0
  1825. data/vendor/robot/utest/api/test_deco.py +32 -0
  1826. data/vendor/robot/utest/api/test_exposed_api.py +71 -0
  1827. data/vendor/robot/utest/api/test_logging_api.py +90 -0
  1828. data/vendor/robot/utest/api/test_run_and_rebot.py +352 -0
  1829. data/vendor/robot/utest/api/test_using_libraries.py +37 -0
  1830. data/vendor/robot/utest/conf/test_settings.py +102 -0
  1831. data/vendor/robot/utest/envjs.bootstrap.js +6 -0
  1832. data/vendor/robot/utest/htmldata/test_htmltemplate.py +24 -0
  1833. data/vendor/robot/utest/htmldata/test_jsonwriter.py +99 -0
  1834. data/vendor/robot/utest/model/test_filter.py +168 -0
  1835. data/vendor/robot/utest/model/test_itemlist.py +195 -0
  1836. data/vendor/robot/utest/model/test_keyword.py +209 -0
  1837. data/vendor/robot/utest/model/test_message.py +51 -0
  1838. data/vendor/robot/utest/model/test_metadata.py +51 -0
  1839. data/vendor/robot/utest/model/test_statistics.py +231 -0
  1840. data/vendor/robot/utest/model/test_tags.py +364 -0
  1841. data/vendor/robot/utest/model/test_tagstatistics.py +371 -0
  1842. data/vendor/robot/utest/model/test_testcase.py +124 -0
  1843. data/vendor/robot/utest/model/test_testsuite.py +127 -0
  1844. data/vendor/robot/utest/output/NewStyleJavaListener.class +0 -0
  1845. data/vendor/robot/utest/output/NewStyleJavaListener.java +79 -0
  1846. data/vendor/robot/utest/output/test_console.py +123 -0
  1847. data/vendor/robot/utest/output/test_filelogger.py +58 -0
  1848. data/vendor/robot/utest/output/test_listeners.py +202 -0
  1849. data/vendor/robot/utest/output/test_logger.py +202 -0
  1850. data/vendor/robot/utest/output/test_loggerhelper.py +25 -0
  1851. data/vendor/robot/utest/output/test_stdout_splitter.py +86 -0
  1852. data/vendor/robot/utest/parsing/test_htmlreader.py +188 -0
  1853. data/vendor/robot/utest/parsing/test_model.py +449 -0
  1854. data/vendor/robot/utest/parsing/test_populator.py +609 -0
  1855. data/vendor/robot/utest/parsing/test_tsvreader.py +81 -0
  1856. data/vendor/robot/utest/parsing/test_txtreader.py +23 -0
  1857. data/vendor/robot/utest/reporting/test_jsbuildingcontext.py +82 -0
  1858. data/vendor/robot/utest/reporting/test_jsexecutionresult.py +94 -0
  1859. data/vendor/robot/utest/reporting/test_jsmodelbuilders.py +430 -0
  1860. data/vendor/robot/utest/reporting/test_jswriter.py +104 -0
  1861. data/vendor/robot/utest/reporting/test_logreportwriters.py +39 -0
  1862. data/vendor/robot/utest/reporting/test_reporting.py +175 -0
  1863. data/vendor/robot/utest/reporting/test_stringcache.py +76 -0
  1864. data/vendor/robot/utest/resources/Listener.py +26 -0
  1865. data/vendor/robot/utest/resources/__init__.py +7 -0
  1866. data/vendor/robot/utest/resources/golden_suite/__init__.txt +5 -0
  1867. data/vendor/robot/utest/resources/golden_suite/all_settings.txt +27 -0
  1868. data/vendor/robot/utest/resources/golden_suite/expected.js +3 -0
  1869. data/vendor/robot/utest/resources/golden_suite/failing_suite.txt +15 -0
  1870. data/vendor/robot/utest/resources/golden_suite/output.xml +206 -0
  1871. data/vendor/robot/utest/resources/golden_suite/output2.xml +206 -0
  1872. data/vendor/robot/utest/resources/runningtestcase.py +71 -0
  1873. data/vendor/robot/utest/resources/test_resource.txt +4 -0
  1874. data/vendor/robot/utest/resources/variables_file.py +1 -0
  1875. data/vendor/robot/utest/result/golden.xml +61 -0
  1876. data/vendor/robot/utest/result/goldenTwice.xml +110 -0
  1877. data/vendor/robot/utest/result/suite_teardown_failed.xml +81 -0
  1878. data/vendor/robot/utest/result/test_configurer.py +263 -0
  1879. data/vendor/robot/utest/result/test_resultbuilder.py +248 -0
  1880. data/vendor/robot/utest/result/test_resultmodel.py +209 -0
  1881. data/vendor/robot/utest/result/test_resultserializer.py +63 -0
  1882. data/vendor/robot/utest/result/test_visitor.py +72 -0
  1883. data/vendor/robot/utest/run.py +100 -0
  1884. data/vendor/robot/utest/run_jasmine.py +53 -0
  1885. data/vendor/robot/utest/running/test_builder.py +132 -0
  1886. data/vendor/robot/utest/running/test_handlers.py +309 -0
  1887. data/vendor/robot/utest/running/test_importer.py +73 -0
  1888. data/vendor/robot/utest/running/test_imports.py +75 -0
  1889. data/vendor/robot/utest/running/test_namespace.py +16 -0
  1890. data/vendor/robot/utest/running/test_randomizer.py +87 -0
  1891. data/vendor/robot/utest/running/test_run_model.py +94 -0
  1892. data/vendor/robot/utest/running/test_runkwregister.py +114 -0
  1893. data/vendor/robot/utest/running/test_running.py +284 -0
  1894. data/vendor/robot/utest/running/test_signalhandler.py +115 -0
  1895. data/vendor/robot/utest/running/test_testlibrary.py +638 -0
  1896. data/vendor/robot/utest/running/test_timeouts.py +193 -0
  1897. data/vendor/robot/utest/running/test_userhandlers.py +165 -0
  1898. data/vendor/robot/utest/running/test_userlibrary.py +128 -0
  1899. data/vendor/robot/utest/running/thread_resources.py +27 -0
  1900. data/vendor/robot/utest/testdoc/test_jsonconverter.py +225 -0
  1901. data/vendor/robot/utest/tidy/test_argument_validation.py +106 -0
  1902. data/vendor/robot/utest/utils/ImportByPath.class +0 -0
  1903. data/vendor/robot/utest/utils/ImportByPath.java +6 -0
  1904. data/vendor/robot/utest/utils/test_argumentparser.py +438 -0
  1905. data/vendor/robot/utest/utils/test_asserts.py +148 -0
  1906. data/vendor/robot/utest/utils/test_compat.py +36 -0
  1907. data/vendor/robot/utest/utils/test_compress.py +28 -0
  1908. data/vendor/robot/utest/utils/test_connectioncache.py +239 -0
  1909. data/vendor/robot/utest/utils/test_dotdict.py +101 -0
  1910. data/vendor/robot/utest/utils/test_encoding.py +34 -0
  1911. data/vendor/robot/utest/utils/test_encodingsniffer.py +49 -0
  1912. data/vendor/robot/utest/utils/test_error.py +123 -0
  1913. data/vendor/robot/utest/utils/test_escaping.py +188 -0
  1914. data/vendor/robot/utest/utils/test_etreesource.py +58 -0
  1915. data/vendor/robot/utest/utils/test_frange.py +66 -0
  1916. data/vendor/robot/utest/utils/test_htmlwriter.py +119 -0
  1917. data/vendor/robot/utest/utils/test_importer_util.py +493 -0
  1918. data/vendor/robot/utest/utils/test_markuputils.py +803 -0
  1919. data/vendor/robot/utest/utils/test_match.py +170 -0
  1920. data/vendor/robot/utest/utils/test_misc.py +183 -0
  1921. data/vendor/robot/utest/utils/test_normalizing.py +318 -0
  1922. data/vendor/robot/utest/utils/test_robotenv.py +61 -0
  1923. data/vendor/robot/utest/utils/test_robotpath.py +215 -0
  1924. data/vendor/robot/utest/utils/test_robottime.py +355 -0
  1925. data/vendor/robot/utest/utils/test_robottypes.py +160 -0
  1926. data/vendor/robot/utest/utils/test_setter.py +66 -0
  1927. data/vendor/robot/utest/utils/test_sortable.py +54 -0
  1928. data/vendor/robot/utest/utils/test_text.py +279 -0
  1929. data/vendor/robot/utest/utils/test_timestampcache.py +56 -0
  1930. data/vendor/robot/utest/utils/test_unic.py +224 -0
  1931. data/vendor/robot/utest/utils/test_utf8reader.py +66 -0
  1932. data/vendor/robot/utest/utils/test_xmlwriter.py +143 -0
  1933. data/vendor/robot/utest/variables/test_isvar.py +36 -0
  1934. data/vendor/robot/utest/variables/test_variableassigner.py +54 -0
  1935. data/vendor/robot/utest/variables/test_variables.py +261 -0
  1936. data/vendor/robot/utest/variables/test_variablesplitter.py +235 -0
  1937. data/vendor/robot/utest/webcontent/SpecRunner.html +52 -0
  1938. data/vendor/robot/utest/webcontent/jasmine-1.0.2/MIT.LICENSE +20 -0
  1939. data/vendor/robot/utest/webcontent/jasmine-1.0.2/jasmine-html.js +188 -0
  1940. data/vendor/robot/utest/webcontent/jasmine-1.0.2/jasmine.css +166 -0
  1941. data/vendor/robot/utest/webcontent/jasmine-1.0.2/jasmine.js +2421 -0
  1942. data/vendor/robot/utest/webcontent/spec/ContainsTag.js +106 -0
  1943. data/vendor/robot/utest/webcontent/spec/LogLevelSpec.js +19 -0
  1944. data/vendor/robot/utest/webcontent/spec/ParsingSpec.js +579 -0
  1945. data/vendor/robot/utest/webcontent/spec/StatisticsSpec.js +172 -0
  1946. data/vendor/robot/utest/webcontent/spec/UtilSpec.js +86 -0
  1947. data/vendor/robot/utest/webcontent/spec/data/Messages.js +20 -0
  1948. data/vendor/robot/utest/webcontent/spec/data/Messages.txt +10 -0
  1949. data/vendor/robot/utest/webcontent/spec/data/PassingFailing.js +20 -0
  1950. data/vendor/robot/utest/webcontent/spec/data/SetupsAndTeardowns.js +20 -0
  1951. data/vendor/robot/utest/webcontent/spec/data/SetupsAndTeardowns.txt +15 -0
  1952. data/vendor/robot/utest/webcontent/spec/data/Suite.js +20 -0
  1953. data/vendor/robot/utest/webcontent/spec/data/Suite.txt +18 -0
  1954. data/vendor/robot/utest/webcontent/spec/data/TeardownFailure.js +20 -0
  1955. data/vendor/robot/utest/webcontent/spec/data/TestsAndKeywords.js +20 -0
  1956. data/vendor/robot/utest/webcontent/spec/data/TestsAndKeywords.txt +22 -0
  1957. data/vendor/robot/utest/webcontent/spec/data/allData.js +20 -0
  1958. data/vendor/robot/utest/webcontent/spec/data/create_jsdata_for_specs.py +57 -0
  1959. data/vendor/robot/utest/webcontent/spec/data/splitting.js +44 -0
  1960. data/vendor/robot/utest/webcontent/spec/data/teardownFailure/PassingFailing.txt +5 -0
  1961. data/vendor/robot/utest/webcontent/spec/data/teardownFailure/__init__.txt +2 -0
  1962. data/vendor/robot/utest/writer/test_aligners.py +16 -0
  1963. data/vendor/robot/utest/writer/test_extractor.py +55 -0
  1964. data/vendor/robot/utest/writer/test_filewriters.py +82 -0
  1965. data/vendor/robot/utest/writer/test_formatters.py +188 -0
  1966. data/vendor/robot/utest/writer/test_rowsplitter.py +130 -0
  1967. data/vendor/robot/utest/writer/test_write_configuration.py +40 -0
  1968. metadata +2112 -0
@@ -0,0 +1,1273 @@
1
+ # Copyright 2008-2015 Nokia Networks
2
+ # Copyright 2016- Robot Framework Foundation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ from contextlib import contextmanager
17
+ import inspect
18
+ import re
19
+ import socket
20
+ import struct
21
+ import telnetlib
22
+ import time
23
+
24
+ try:
25
+ import pyte
26
+ except ImportError:
27
+ pyte = None
28
+
29
+ from robot.api import logger
30
+ from robot.utils import (ConnectionCache, is_bytes, is_string, is_truthy,
31
+ is_unicode, secs_to_timestr, seq2str, timestr_to_secs)
32
+ from robot.version import get_version
33
+
34
+
35
+ class Telnet(object):
36
+ """A test library providing communication over Telnet connections.
37
+
38
+ ``Telnet`` is Robot Framework's standard library that makes it possible to
39
+ connect to Telnet servers and execute commands on the opened connections.
40
+
41
+ == Table of contents ==
42
+
43
+ - `Connections`
44
+ - `Writing and reading`
45
+ - `Configuration`
46
+ - `Terminal emulation`
47
+ - `Logging`
48
+ - `Time string format`
49
+ - `Boolean arguments`
50
+ - `Importing`
51
+ - `Shortcuts`
52
+ - `Keywords`
53
+
54
+ = Connections =
55
+
56
+ The first step of using ``Telnet`` is opening a connection with `Open
57
+ Connection` keyword. Typically the next step is logging in with `Login`
58
+ keyword, and in the end the opened connection can be closed with `Close
59
+ Connection`.
60
+
61
+ It is possible to open multiple connections and switch the active one
62
+ using `Switch Connection`. `Close All Connections` can be used to close
63
+ all the connections, which is especially useful in suite teardowns to
64
+ guarantee that all connections are always closed.
65
+
66
+ = Writing and reading =
67
+
68
+ After opening a connection and possibly logging in, commands can be
69
+ executed or text written to the connection for other reasons using `Write`
70
+ and `Write Bare` keywords. The main difference between these two is that
71
+ the former adds a [#Configuration|configurable newline] after the text
72
+ automatically.
73
+
74
+ After writing something to the connection, the resulting output can be
75
+ read using `Read`, `Read Until`, `Read Until Regexp`, and `Read Until
76
+ Prompt` keywords. Which one to use depends on the context, but the latest
77
+ one is often the most convenient.
78
+
79
+ As a convenience when running a command, it is possible to use `Execute
80
+ Command` that simply uses `Write` and `Read Until Prompt` internally.
81
+ `Write Until Expected Output` is useful if you need to wait until writing
82
+ something produces a desired output.
83
+
84
+ Written and read text is automatically encoded/decoded using a
85
+ [#Configuration|configured encoding].
86
+
87
+ The ANSI escape codes, like cursor movement and color codes, are
88
+ normally returned as part of the read operation. If an escape code occurs
89
+ in middle of a search pattern it may also prevent finding the searched
90
+ string. `Terminal emulation` can be used to process these
91
+ escape codes as they would be if a real terminal would be in use.
92
+
93
+ = Configuration =
94
+
95
+ Many aspects related the connections can be easily configured either
96
+ globally or per connection basis. Global configuration is done when
97
+ [#Importing|library is imported], and these values can be overridden per
98
+ connection by `Open Connection` or with setting specific keywords
99
+ `Set Timeout`, `Set Newline`, `Set Prompt`, `Set Encoding`,
100
+ `Set Default Log Level` and `Set Telnetlib Log Level`.
101
+
102
+ Values of ``environ_user``, ``window_size``, ``terminal_emulation``, and
103
+ ``terminal_type`` can not be changed after opening the connection.
104
+
105
+ == Timeout ==
106
+
107
+ Timeout defines how long is the maximum time to wait when reading
108
+ output. It is used internally by `Read Until`, `Read Until Regexp`,
109
+ `Read Until Prompt`, and `Login` keywords. The default value is 3 seconds.
110
+
111
+ == Connection Timeout ==
112
+
113
+ Connection Timeout defines how long is the maximum time to wait when
114
+ opening the telnet connection. It is used internally by `Open Connection`.
115
+ The default value is the system global default timeout.
116
+
117
+ New in Robot Framework 2.9.2.
118
+
119
+ == Newline ==
120
+
121
+ Newline defines which line separator `Write` keyword should use. The
122
+ default value is ``CRLF`` that is typically used by Telnet connections.
123
+
124
+ Newline can be given either in escaped format using ``\\n`` and ``\\r`` or
125
+ with special ``LF`` and ``CR`` syntax.
126
+
127
+ Examples:
128
+ | `Set Newline` | \\n |
129
+ | `Set Newline` | CRLF |
130
+
131
+ == Prompt ==
132
+
133
+ Often the easiest way to read the output of a command is reading all
134
+ the output until the next prompt with `Read Until Prompt`. It also makes
135
+ it easier, and faster, to verify did `Login` succeed.
136
+
137
+ Prompt can be specified either as a normal string or a regular expression.
138
+ The latter is especially useful if the prompt changes as a result of
139
+ the executed commands. Prompt can be set to be a regular expression
140
+ by giving ``prompt_is_regexp`` argument a true value (see `Boolean
141
+ arguments`).
142
+
143
+ Examples:
144
+ | `Open Connection` | lolcathost | prompt=$ |
145
+ | `Set Prompt` | (> |# ) | prompt_is_regexp=true |
146
+
147
+ == Encoding ==
148
+
149
+ To ease handling text containing non-ASCII characters, all written text is
150
+ encoded and read text decoded by default. The default encoding is UTF-8
151
+ that works also with ASCII. Encoding can be disabled by using a special
152
+ encoding value ``NONE``. This is mainly useful if you need to get the bytes
153
+ received from the connection as-is.
154
+
155
+ Notice that when writing to the connection, only Unicode strings are
156
+ encoded using the defined encoding. Byte strings are expected to be already
157
+ encoded correctly. Notice also that normal text in test data is passed to
158
+ the library as Unicode and you need to use variables to use bytes.
159
+
160
+ It is also possible to configure the error handler to use if encoding or
161
+ decoding characters fails. Accepted values are the same that encode/decode
162
+ functions in Python strings accept. In practice the following values are
163
+ the most useful:
164
+
165
+ - ``ignore``: ignore characters that cannot be encoded (default)
166
+ - ``strict``: fail if characters cannot be encoded
167
+ - ``replace``: replace characters that cannot be encoded with a replacement
168
+ character
169
+
170
+ Examples:
171
+ | `Open Connection` | lolcathost | encoding=Latin1 | encoding_errors=strict |
172
+ | `Set Encoding` | ISO-8859-15 |
173
+ | `Set Encoding` | errors=ignore |
174
+
175
+ Using UTF-8 encoding by default and being able to configure the encoding
176
+ are new features in Robot Framework 2.7.6. In earlier versions only ASCII
177
+ was supported and encoding errors were silently ignored. Robot Framework
178
+ 2.7.7 added a possibility to specify the error handler, changed the
179
+ default behavior back to ignoring encoding errors, and added the
180
+ possibility to disable encoding.
181
+
182
+ == Default log level ==
183
+
184
+ Default log level specifies the log level keywords use for `logging` unless
185
+ they are given an explicit log level. The default value is ``INFO``, and
186
+ changing it, for example, to ``DEBUG`` can be a good idea if there is lot
187
+ of unnecessary output that makes log files big.
188
+
189
+ Configuring default log level in `importing` and with `Open Connection`
190
+ are new features in Robot Framework 2.7.6. In earlier versions only
191
+ `Set Default Log Level` could be used.
192
+
193
+ == Terminal type ==
194
+
195
+ By default the Telnet library does not negotiate any specific terminal type
196
+ with the server. If a specific terminal type, for example ``vt100``, is
197
+ desired, the terminal type can be configured in `importing` and with
198
+ `Open Connection`.
199
+
200
+ New in Robot Framework 2.8.2.
201
+
202
+ == Window size ==
203
+
204
+ Window size for negotiation with the server can be configured when
205
+ `importing` the library and with `Open Connection`.
206
+
207
+ New in Robot Framework 2.8.2.
208
+
209
+ == USER environment variable ==
210
+
211
+ Telnet protocol allows the ``USER`` environment variable to be sent when
212
+ connecting to the server. On some servers it may happen that there is no
213
+ login prompt, and on those cases this configuration option will allow still
214
+ to define the desired username. The option ``environ_user`` can be used in
215
+ `importing` and with `Open Connection`.
216
+
217
+ New in Robot Framework 2.8.2.
218
+
219
+ = Terminal emulation =
220
+
221
+ Starting from Robot Framework 2.8.2, Telnet library supports terminal
222
+ emulation with [https://github.com/selectel/pyte|Pyte]. Terminal emulation
223
+ will process the output in a virtual screen. This means that ANSI escape
224
+ codes, like cursor movements, and also control characters, like
225
+ carriage returns and backspaces, have the same effect on the result as they
226
+ would have on a normal terminal screen. For example the sequence
227
+ ``acdc\\x1b[3Dbba`` will result in output ``abba``.
228
+
229
+ Terminal emulation is taken into use by giving ``terminal_emulation``
230
+ argument a true value (see `Boolean arguments`) either in the library
231
+ initialization or with `Open Connection`.
232
+
233
+ As Pyte approximates vt-style terminal, you may also want to set the
234
+ terminal type as ``vt100``. We also recommend that you increase the window
235
+ size, as the terminal emulation will break all lines that are longer than
236
+ the window row length.
237
+
238
+ When terminal emulation is used, the `newline` and `encoding` can not be
239
+ changed anymore after opening the connection.
240
+
241
+ As a prerequisite for using terminal emulation you need to have
242
+ [https://github.com/selectel/pyte|Pyte] installed. This is easiest done
243
+ with [http://pip-installer.org|pip] by running ``pip install pyte``.
244
+
245
+ Examples:
246
+ | `Open Connection` | lolcathost | terminal_emulation=True | terminal_type=vt100 | window_size=400x100 |
247
+
248
+ = Logging =
249
+
250
+ All keywords that read something log the output. These keywords take the
251
+ log level to use as an optional argument, and if no log level is specified
252
+ they use the [#Configuration|configured] default value.
253
+
254
+ The valid log levels to use are ``TRACE``, ``DEBUG``, ``INFO`` (default),
255
+ and ``WARN``. Levels below ``INFO`` are not shown in log files by default
256
+ whereas warnings are shown more prominently.
257
+
258
+ The [http://docs.python.org/2/library/telnetlib.html|telnetlib module]
259
+ used by this library has a custom logging system for logging content it
260
+ sends and receives. By default these messages are written using ``TRACE``
261
+ level. Starting with Robot Framework 2.8.7 the level is configurable
262
+ with the ``telnetlib_log_level`` option either in the library initialization,
263
+ to the `Open Connection` or by using the `Set Telnetlib Log Level`
264
+ keyword to the active connection. Special level ``NONE`` con be used to
265
+ disable the logging altogether.
266
+
267
+ = Time string format =
268
+
269
+ Timeouts and other times used must be given as a time string using format
270
+ like ``15 seconds`` or ``1min 10s``. If the timeout is given as just
271
+ a number, for example, ``10`` or ``1.5``, it is considered to be seconds.
272
+ The time string format is described in more detail in an appendix of
273
+ [http://robotframework.org/robotframework/#user-guide|Robot Framework User Guide].
274
+
275
+ = Boolean arguments =
276
+
277
+ Some keywords accept arguments that are handled as Boolean values true or
278
+ false. If such an argument is given as a string, it is considered false if
279
+ it is either empty or case-insensitively equal to ``false`` or ``no``.
280
+ Other strings are considered true regardless their value, and other
281
+ argument types are tested using same
282
+ [http://docs.python.org/2/library/stdtypes.html#truth-value-testing|rules
283
+ as in Python].
284
+
285
+ True examples:
286
+ | `Open Connection` | lolcathost | terminal_emulation=True | # Strings are generally true. |
287
+ | `Open Connection` | lolcathost | terminal_emulation=yes | # Same as the above. |
288
+ | `Open Connection` | lolcathost | terminal_emulation=${TRUE} | # Python ``True`` is true. |
289
+ | `Open Connection` | lolcathost | terminal_emulation=${42} | # Numbers other than 0 are true. |
290
+
291
+ False examples:
292
+ | `Open Connection` | lolcathost | terminal_emulation=False | # String ``false`` is false. |
293
+ | `Open Connection` | lolcathost | terminal_emulation=no | # Also string ``no`` is false. |
294
+ | `Open Connection` | lolcathost | terminal_emulation=${EMPTY} | # Empty string is false. |
295
+ | `Open Connection` | lolcathost | terminal_emulation=${FALSE} | # Python ``False`` is false. |
296
+
297
+ Note that prior to Robot Framework 2.9 some keywords considered all
298
+ non-empty strings, including ``false`` and ``no``, to be true.
299
+ """
300
+ ROBOT_LIBRARY_SCOPE = 'TEST_SUITE'
301
+ ROBOT_LIBRARY_VERSION = get_version()
302
+
303
+ def __init__(self, timeout='3 seconds', newline='CRLF',
304
+ prompt=None, prompt_is_regexp=False,
305
+ encoding='UTF-8', encoding_errors='ignore',
306
+ default_log_level='INFO', window_size=None,
307
+ environ_user=None, terminal_emulation=False,
308
+ terminal_type=None, telnetlib_log_level='TRACE',
309
+ connection_timeout=None):
310
+ """Telnet library can be imported with optional configuration parameters.
311
+
312
+ Configuration parameters are used as default values when new
313
+ connections are opened with `Open Connection` keyword. They can also be
314
+ overridden after opening the connection using the `Set ...` `keywords`.
315
+ See these keywords as well as `Configuration`, `Terminal emulation` and
316
+ `Logging` sections above for more information about these parameters
317
+ and their possible values.
318
+
319
+ See `Time string format` and `Boolean arguments` sections for
320
+ information about using arguments accepting times and Boolean values,
321
+ respectively.
322
+
323
+ Examples (use only one of these):
324
+ | = Setting = | = Value = | = Value = | = Value = | = Value = | = Comment = |
325
+ | Library | Telnet | | | | # default values |
326
+ | Library | Telnet | 5 seconds | | | # set only timeout |
327
+ | Library | Telnet | newline=LF | encoding=ISO-8859-1 | | # set newline and encoding using named arguments |
328
+ | Library | Telnet | prompt=$ | | | # set prompt |
329
+ | Library | Telnet | prompt=(> |# ) | prompt_is_regexp=yes | | # set prompt as a regular expression |
330
+ | Library | Telnet | terminal_emulation=True | terminal_type=vt100 | window_size=400x100 | # use terminal emulation with defined window size and terminal type |
331
+ | Library | Telnet | telnetlib_log_level=NONE | | | # disable logging messages from the underlying telnetlib |
332
+ """
333
+ self._timeout = timeout or 3.0
334
+ self._set_connection_timeout(connection_timeout)
335
+ self._newline = newline or 'CRLF'
336
+ self._prompt = (prompt, prompt_is_regexp)
337
+ self._encoding = encoding
338
+ self._encoding_errors = encoding_errors
339
+ self._default_log_level = default_log_level
340
+ self._window_size = window_size
341
+ self._environ_user = environ_user
342
+ self._terminal_emulation = terminal_emulation
343
+ self._terminal_type = terminal_type
344
+ self._telnetlib_log_level = telnetlib_log_level
345
+ self._cache = ConnectionCache()
346
+ self._conn = None
347
+ self._conn_kws = self._lib_kws = None
348
+
349
+ def get_keyword_names(self):
350
+ return self._get_library_keywords() + self._get_connection_keywords()
351
+
352
+ def _get_library_keywords(self):
353
+ if self._lib_kws is None:
354
+ self._lib_kws = self._get_keywords(self, ['get_keyword_names'])
355
+ return self._lib_kws
356
+
357
+ def _get_keywords(self, source, excluded):
358
+ return [name for name in dir(source)
359
+ if self._is_keyword(name, source, excluded)]
360
+
361
+ def _is_keyword(self, name, source, excluded):
362
+ return (name not in excluded and
363
+ not name.startswith('_') and
364
+ name != 'get_keyword_names' and
365
+ inspect.ismethod(getattr(source, name)))
366
+
367
+ def _get_connection_keywords(self):
368
+ if self._conn_kws is None:
369
+ conn = self._get_connection()
370
+ excluded = [name for name in dir(telnetlib.Telnet())
371
+ if name not in ['write', 'read', 'read_until']]
372
+ self._conn_kws = self._get_keywords(conn, excluded)
373
+ return self._conn_kws
374
+
375
+ def __getattr__(self, name):
376
+ if name not in self._get_connection_keywords():
377
+ raise AttributeError(name)
378
+ # If no connection is initialized, get attributes from a non-active
379
+ # connection. This makes it possible for Robot to create keyword
380
+ # handlers when it imports the library.
381
+ return getattr(self._conn or self._get_connection(), name)
382
+
383
+ def open_connection(self, host, alias=None, port=23, timeout=None,
384
+ newline=None, prompt=None, prompt_is_regexp=False,
385
+ encoding=None, encoding_errors=None,
386
+ default_log_level=None, window_size=None,
387
+ environ_user=None, terminal_emulation=None,
388
+ terminal_type=None, telnetlib_log_level=None,
389
+ connection_timeout=None):
390
+ """Opens a new Telnet connection to the given host and port.
391
+
392
+ The ``timeout``, ``newline``, ``prompt``, ``prompt_is_regexp``,
393
+ ``encoding``, ``default_log_level``, ``window_size``, ``environ_user``,
394
+ ``terminal_emulation``, ``terminal_type`` and ``telnetlib_log_level``
395
+ arguments get default values when the library is [#Importing|imported].
396
+ Setting them here overrides those values for the opened connection.
397
+ See `Configuration`, `Terminal emulation` and `Logging` sections for
398
+ more information about these parameters and their possible values.
399
+
400
+ Possible already opened connections are cached and it is possible to
401
+ switch back to them using `Switch Connection` keyword. It is possible to
402
+ switch either using explicitly given ``alias`` or using index returned
403
+ by this keyword. Indexing starts from 1 and is reset back to it by
404
+ `Close All Connections` keyword.
405
+ """
406
+ timeout = timeout or self._timeout
407
+ connection_timeout = (timestr_to_secs(connection_timeout)
408
+ if connection_timeout
409
+ else self._connection_timeout)
410
+ newline = newline or self._newline
411
+ encoding = encoding or self._encoding
412
+ encoding_errors = encoding_errors or self._encoding_errors
413
+ default_log_level = default_log_level or self._default_log_level
414
+ window_size = self._parse_window_size(window_size or self._window_size)
415
+ environ_user = environ_user or self._environ_user
416
+ if terminal_emulation is None:
417
+ terminal_emulation = self._terminal_emulation
418
+ terminal_type = terminal_type or self._terminal_type
419
+ telnetlib_log_level = telnetlib_log_level or self._telnetlib_log_level
420
+ if not prompt:
421
+ prompt, prompt_is_regexp = self._prompt
422
+ logger.info('Opening connection to %s:%s with prompt: %s%s'
423
+ % (host, port, prompt, ' (regexp)' if prompt_is_regexp else ''))
424
+ self._conn = self._get_connection(host, port, timeout, newline,
425
+ prompt, is_truthy(prompt_is_regexp),
426
+ encoding, encoding_errors,
427
+ default_log_level,
428
+ window_size,
429
+ environ_user,
430
+ is_truthy(terminal_emulation),
431
+ terminal_type,
432
+ telnetlib_log_level,
433
+ connection_timeout)
434
+ return self._cache.register(self._conn, alias)
435
+
436
+ def _parse_window_size(self, window_size):
437
+ if not window_size:
438
+ return None
439
+ try:
440
+ cols, rows = window_size.split('x', 1)
441
+ return int(cols), int(rows)
442
+ except ValueError:
443
+ raise ValueError("Invalid window size '%s'. Should be "
444
+ "<rows>x<columns>." % window_size)
445
+
446
+ def _get_connection(self, *args):
447
+ """Can be overridden to use a custom connection."""
448
+ return TelnetConnection(*args)
449
+
450
+ def _set_connection_timeout(self, connection_timeout):
451
+ self._connection_timeout = connection_timeout
452
+ if self._connection_timeout:
453
+ self._connection_timeout = timestr_to_secs(connection_timeout)
454
+
455
+ def switch_connection(self, index_or_alias):
456
+ """Switches between active connections using an index or an alias.
457
+
458
+ Aliases can be given to `Open Connection` keyword which also always
459
+ returns the connection index.
460
+
461
+ This keyword returns the index of previous active connection.
462
+
463
+ Example:
464
+ | `Open Connection` | myhost.net | | |
465
+ | `Login` | john | secret | |
466
+ | `Write` | some command | | |
467
+ | `Open Connection` | yourhost.com | 2nd conn | |
468
+ | `Login` | root | password | |
469
+ | `Write` | another cmd | | |
470
+ | ${old index}= | `Switch Connection` | 1 | # index |
471
+ | `Write` | something | | |
472
+ | `Switch Connection` | 2nd conn | | # alias |
473
+ | `Write` | whatever | | |
474
+ | `Switch Connection` | ${old index} | | # back to original |
475
+ | [Teardown] | `Close All Connections` | | |
476
+
477
+ The example above expects that there were no other open
478
+ connections when opening the first one, because it used index
479
+ ``1`` when switching to the connection later. If you are not
480
+ sure about that, you can store the index into a variable as
481
+ shown below.
482
+
483
+ | ${index} = | `Open Connection` | myhost.net |
484
+ | `Do Something` | | |
485
+ | `Switch Connection` | ${index} | |
486
+ """
487
+ old_index = self._cache.current_index
488
+ self._conn = self._cache.switch(index_or_alias)
489
+ return old_index
490
+
491
+ def close_all_connections(self):
492
+ """Closes all open connections and empties the connection cache.
493
+
494
+ If multiple connections are opened, this keyword should be used in
495
+ a test or suite teardown to make sure that all connections are closed.
496
+ It is not an error is some of the connections have already been closed
497
+ by `Close Connection`.
498
+
499
+ After this keyword, new indexes returned by `Open Connection`
500
+ keyword are reset to 1.
501
+ """
502
+ self._conn = self._cache.close_all()
503
+
504
+
505
+ class TelnetConnection(telnetlib.Telnet):
506
+ NEW_ENVIRON_IS = b'\x00'
507
+ NEW_ENVIRON_VAR = b'\x00'
508
+ NEW_ENVIRON_VALUE = b'\x01'
509
+ INTERNAL_UPDATE_FREQUENCY = 0.03
510
+
511
+ def __init__(self, host=None, port=23, timeout=3.0, newline='CRLF',
512
+ prompt=None, prompt_is_regexp=False,
513
+ encoding='UTF-8', encoding_errors='ignore',
514
+ default_log_level='INFO', window_size=None, environ_user=None,
515
+ terminal_emulation=False, terminal_type=None,
516
+ telnetlib_log_level='TRACE', connection_timeout=None):
517
+ if connection_timeout is None:
518
+ telnetlib.Telnet.__init__(self, host, int(port) if port else 23)
519
+ else:
520
+ telnetlib.Telnet.__init__(self, host, int(port) if port else 23,
521
+ connection_timeout)
522
+ self._set_timeout(timeout)
523
+ self._set_newline(newline)
524
+ self._set_prompt(prompt, prompt_is_regexp)
525
+ self._set_encoding(encoding, encoding_errors)
526
+ self._set_default_log_level(default_log_level)
527
+ self._window_size = window_size
528
+ self._environ_user = self._encode(environ_user) if environ_user else None
529
+ self._terminal_emulator = self._check_terminal_emulation(terminal_emulation)
530
+ self._terminal_type = self._encode(terminal_type) if terminal_type else None
531
+ self.set_option_negotiation_callback(self._negotiate_options)
532
+ self._set_telnetlib_log_level(telnetlib_log_level)
533
+ self._opt_responses = list()
534
+
535
+ def set_timeout(self, timeout):
536
+ """Sets the timeout used for waiting output in the current connection.
537
+
538
+ Read operations that expect some output to appear (`Read Until`, `Read
539
+ Until Regexp`, `Read Until Prompt`, `Login`) use this timeout and fail
540
+ if the expected output does not appear before this timeout expires.
541
+
542
+ The ``timeout`` must be given in `time string format`. The old timeout
543
+ is returned and can be used to restore the timeout later.
544
+
545
+ Example:
546
+ | ${old} = | `Set Timeout` | 2 minute 30 seconds |
547
+ | `Do Something` |
548
+ | `Set Timeout` | ${old} |
549
+
550
+ See `Configuration` section for more information about global and
551
+ connection specific configuration.
552
+ """
553
+ self._verify_connection()
554
+ old = self._timeout
555
+ self._set_timeout(timeout)
556
+ return secs_to_timestr(old)
557
+
558
+ def _set_timeout(self, timeout):
559
+ self._timeout = timestr_to_secs(timeout)
560
+
561
+ def set_newline(self, newline):
562
+ """Sets the newline used by `Write` keyword in the current connection.
563
+
564
+ The old newline is returned and can be used to restore the newline later.
565
+ See `Set Timeout` for a similar example.
566
+
567
+ If terminal emulation is used, the newline can not be changed on an open
568
+ connection.
569
+
570
+ See `Configuration` section for more information about global and
571
+ connection specific configuration.
572
+ """
573
+ self._verify_connection()
574
+ if self._terminal_emulator:
575
+ raise AssertionError("Newline can not be changed when terminal emulation is used.")
576
+ old = self._newline
577
+ self._set_newline(newline)
578
+ return old
579
+
580
+ def _set_newline(self, newline):
581
+ newline = str(newline).upper()
582
+ self._newline = newline.replace('LF', '\n').replace('CR', '\r')
583
+
584
+ def set_prompt(self, prompt, prompt_is_regexp=False):
585
+ """Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.
586
+
587
+ If ``prompt_is_regexp`` is given a true value (see `Boolean arguments`),
588
+ the given ``prompt`` is considered to be a regular expression.
589
+
590
+ The old prompt is returned and can be used to restore the prompt later.
591
+
592
+ Example:
593
+ | ${prompt} | ${regexp} = | `Set Prompt` | $ |
594
+ | `Do Something` |
595
+ | `Set Prompt` | ${prompt} | ${regexp} |
596
+
597
+ See the documentation of
598
+ [http://docs.python.org/2/library/re.html|Python re module]
599
+ for more information about the supported regular expression syntax.
600
+ Notice that possible backslashes need to be escaped in Robot Framework
601
+ test data.
602
+
603
+ See `Configuration` section for more information about global and
604
+ connection specific configuration.
605
+ """
606
+ self._verify_connection()
607
+ old = self._prompt
608
+ self._set_prompt(prompt, prompt_is_regexp)
609
+ if old[1]:
610
+ return old[0].pattern, True
611
+ return old
612
+
613
+ def _set_prompt(self, prompt, prompt_is_regexp):
614
+ if is_truthy(prompt_is_regexp):
615
+ self._prompt = (re.compile(prompt), True)
616
+ else:
617
+ self._prompt = (prompt, False)
618
+
619
+ def _prompt_is_set(self):
620
+ return self._prompt[0] is not None
621
+
622
+ def set_encoding(self, encoding=None, errors=None):
623
+ """Sets the encoding to use for `writing and reading` in the current connection.
624
+
625
+ The given ``encoding`` specifies the encoding to use when written/read
626
+ text is encoded/decoded, and ``errors`` specifies the error handler to
627
+ use if encoding/decoding fails. Either of these can be omitted and in
628
+ that case the old value is not affected. Use string ``NONE`` to disable
629
+ encoding altogether.
630
+
631
+ See `Configuration` section for more information about encoding and
632
+ error handlers, as well as global and connection specific configuration
633
+ in general.
634
+
635
+ The old values are returned and can be used to restore the encoding
636
+ and the error handler later. See `Set Prompt` for a similar example.
637
+
638
+ If terminal emulation is used, the encoding can not be changed on an open
639
+ connection.
640
+
641
+ Setting encoding in general is a new feature in Robot Framework 2.7.6.
642
+ Specifying the error handler and disabling encoding were added in 2.7.7.
643
+ """
644
+ self._verify_connection()
645
+ if self._terminal_emulator:
646
+ raise AssertionError("Encoding can not be changed when terminal emulation is used.")
647
+ old = self._encoding
648
+ self._set_encoding(encoding or old[0], errors or old[1])
649
+ return old
650
+
651
+ def _set_encoding(self, encoding, errors):
652
+ self._encoding = (encoding.upper(), errors)
653
+
654
+ def _encode(self, text):
655
+ if is_bytes(text):
656
+ return text
657
+ if self._encoding[0] == 'NONE':
658
+ return text.encode('ASCII')
659
+ return text.encode(*self._encoding)
660
+
661
+ def _decode(self, bytes):
662
+ if self._encoding[0] == 'NONE':
663
+ return bytes
664
+ return bytes.decode(*self._encoding)
665
+
666
+ def set_telnetlib_log_level(self, level):
667
+ """Sets the log level used for `logging` in the underlying ``telnetlib``.
668
+
669
+ Note that ``telnetlib`` can be very noisy thus using the level ``NONE``
670
+ can shutdown the messages generated by this library.
671
+
672
+ New in Robot Framework 2.8.7.
673
+ """
674
+ self._verify_connection()
675
+ old = self._telnetlib_log_level
676
+ self._set_telnetlib_log_level(level)
677
+ return old
678
+
679
+ def _set_telnetlib_log_level(self, level):
680
+ if level.upper() == 'NONE':
681
+ self._telnetlib_log_level = 'NONE'
682
+ elif self._is_valid_log_level(level) is False:
683
+ raise AssertionError("Invalid log level '%s'" % level)
684
+ self._telnetlib_log_level = level.upper()
685
+
686
+ def set_default_log_level(self, level):
687
+ """Sets the default log level used for `logging` in the current connection.
688
+
689
+ The old default log level is returned and can be used to restore the
690
+ log level later.
691
+
692
+ See `Configuration` section for more information about global and
693
+ connection specific configuration.
694
+ """
695
+ self._verify_connection()
696
+ old = self._default_log_level
697
+ self._set_default_log_level(level)
698
+ return old
699
+
700
+ def _set_default_log_level(self, level):
701
+ if level is None or not self._is_valid_log_level(level):
702
+ raise AssertionError("Invalid log level '%s'" % level)
703
+ self._default_log_level = level.upper()
704
+
705
+ def _is_valid_log_level(self, level):
706
+ if level is None:
707
+ return True
708
+ if not is_string(level):
709
+ return False
710
+ return level.upper() in ('TRACE', 'DEBUG', 'INFO', 'WARN')
711
+
712
+ def close_connection(self, loglevel=None):
713
+ """Closes the current Telnet connection.
714
+
715
+ Remaining output in the connection is read, logged, and returned.
716
+ It is not an error to close an already closed connection.
717
+
718
+ Use `Close All Connections` if you want to make sure all opened
719
+ connections are closed.
720
+
721
+ See `Logging` section for more information about log levels.
722
+ """
723
+ if self.sock:
724
+ self.sock.shutdown(socket.SHUT_RDWR)
725
+ self.close()
726
+ output = self._decode(self.read_all())
727
+ self._log(output, loglevel)
728
+ return output
729
+
730
+ def login(self, username, password, login_prompt='login: ',
731
+ password_prompt='Password: ', login_timeout='1 second',
732
+ login_incorrect='Login incorrect'):
733
+ """Logs in to the Telnet server with the given user information.
734
+
735
+ This keyword reads from the connection until the ``login_prompt`` is
736
+ encountered and then types the given ``username``. Then it reads until
737
+ the ``password_prompt`` and types the given ``password``. In both cases
738
+ a newline is appended automatically and the connection specific
739
+ timeout used when waiting for outputs.
740
+
741
+ How logging status is verified depends on whether a prompt is set for
742
+ this connection or not:
743
+
744
+ 1) If the prompt is set, this keyword reads the output until the prompt
745
+ is found using the normal timeout. If no prompt is found, login is
746
+ considered failed and also this keyword fails. Note that in this case
747
+ both ``login_timeout`` and ``login_incorrect`` arguments are ignored.
748
+
749
+ 2) If the prompt is not set, this keywords sleeps until ``login_timeout``
750
+ and then reads all the output available on the connection. If the
751
+ output contains ``login_incorrect`` text, login is considered failed
752
+ and also this keyword fails. Both of these configuration parameters
753
+ were added in Robot Framework 2.7.6. In earlier versions they were
754
+ hard coded.
755
+
756
+ See `Configuration` section for more information about setting
757
+ newline, timeout, and prompt.
758
+ """
759
+ output = self._submit_credentials(username, password, login_prompt,
760
+ password_prompt)
761
+ if self._prompt_is_set():
762
+ success, output2 = self._read_until_prompt()
763
+ else:
764
+ success, output2 = self._verify_login_without_prompt(
765
+ login_timeout, login_incorrect)
766
+ output += output2
767
+ self._log(output)
768
+ if not success:
769
+ raise AssertionError('Login incorrect')
770
+ return output
771
+
772
+ def _submit_credentials(self, username, password, login_prompt, password_prompt):
773
+ # Using write_bare here instead of write because don't want to wait for
774
+ # newline: https://github.com/robotframework/robotframework/issues/1371
775
+ output = self.read_until(login_prompt, 'TRACE')
776
+ self.write_bare(username + self._newline)
777
+ output += self.read_until(password_prompt, 'TRACE')
778
+ self.write_bare(password + self._newline)
779
+ return output
780
+
781
+ def _verify_login_without_prompt(self, delay, incorrect):
782
+ time.sleep(timestr_to_secs(delay))
783
+ output = self.read('TRACE')
784
+ success = incorrect not in output
785
+ return success, output
786
+
787
+ def write(self, text, loglevel=None):
788
+ """Writes the given text plus a newline into the connection.
789
+
790
+ The newline character sequence to use can be [#Configuration|configured]
791
+ both globally and per connection basis. The default value is ``CRLF``.
792
+
793
+ This keyword consumes the written text, until the added newline, from
794
+ the output and logs and returns it. The given text itself must not
795
+ contain newlines. Use `Write Bare` instead if either of these features
796
+ causes a problem.
797
+
798
+ *Note:* This keyword does not return the possible output of the executed
799
+ command. To get the output, one of the `Read ...` `keywords` must be
800
+ used. See `Writing and reading` section for more details.
801
+
802
+ See `Logging` section for more information about log levels.
803
+ """
804
+ newline = self._get_newline_for(text)
805
+ if newline in text:
806
+ raise RuntimeError("'Write' keyword cannot be used with strings "
807
+ "containing newlines. Use 'Write Bare' instead.")
808
+ self.write_bare(text + newline)
809
+ # Can't read until 'text' because long lines are cut strangely in the output
810
+ return self.read_until(self._newline, loglevel)
811
+
812
+ def _get_newline_for(self, text):
813
+ if is_bytes(text):
814
+ return self._encode(self._newline)
815
+ return self._newline
816
+
817
+ def write_bare(self, text):
818
+ """Writes the given text, and nothing else, into the connection.
819
+
820
+ This keyword does not append a newline nor consume the written text.
821
+ Use `Write` if these features are needed.
822
+ """
823
+ self._verify_connection()
824
+ telnetlib.Telnet.write(self, self._encode(text))
825
+
826
+ def write_until_expected_output(self, text, expected, timeout,
827
+ retry_interval, loglevel=None):
828
+ """Writes the given ``text`` repeatedly, until ``expected`` appears in the output.
829
+
830
+ ``text`` is written without appending a newline and it is consumed from
831
+ the output before trying to find ``expected``. If ``expected`` does not
832
+ appear in the output within ``timeout``, this keyword fails.
833
+
834
+ ``retry_interval`` defines the time to wait ``expected`` to appear before
835
+ writing the ``text`` again. Consuming the written ``text`` is subject to
836
+ the normal [#Configuration|configured timeout].
837
+
838
+ Both ``timeout`` and ``retry_interval`` must be given in `time string
839
+ format`. See `Logging` section for more information about log levels.
840
+
841
+ Example:
842
+ | Write Until Expected Output | ps -ef| grep myprocess\\r\\n | myprocess |
843
+ | ... | 5 s | 0.5 s |
844
+
845
+ The above example writes command ``ps -ef | grep myprocess\\r\\n`` until
846
+ ``myprocess`` appears in the output. The command is written every 0.5
847
+ seconds and the keyword fails if ``myprocess`` does not appear in
848
+ the output in 5 seconds.
849
+ """
850
+ timeout = timestr_to_secs(timeout)
851
+ retry_interval = timestr_to_secs(retry_interval)
852
+ maxtime = time.time() + timeout
853
+ while time.time() < maxtime:
854
+ self.write_bare(text)
855
+ self.read_until(text, loglevel)
856
+ try:
857
+ with self._custom_timeout(retry_interval):
858
+ return self.read_until(expected, loglevel)
859
+ except AssertionError:
860
+ pass
861
+ raise NoMatchError(expected, timeout)
862
+
863
+ def write_control_character(self, character):
864
+ """Writes the given control character into the connection.
865
+
866
+ The control character is prepended with an IAC (interpret as command)
867
+ character.
868
+
869
+ The following control character names are supported: BRK, IP, AO, AYT,
870
+ EC, EL, NOP. Additionally, you can use arbitrary numbers to send any
871
+ control character.
872
+
873
+ Example:
874
+ | Write Control Character | BRK | # Send Break command |
875
+ | Write Control Character | 241 | # Send No operation command |
876
+ """
877
+ self._verify_connection()
878
+ self.sock.sendall(telnetlib.IAC + self._get_control_character(character))
879
+
880
+ def _get_control_character(self, int_or_name):
881
+ try:
882
+ return chr(int(int_or_name))
883
+ except ValueError:
884
+ return self._convert_control_code_name_to_character(int_or_name)
885
+
886
+ def _convert_control_code_name_to_character(self, name):
887
+ code_names = {
888
+ 'BRK' : telnetlib.BRK,
889
+ 'IP' : telnetlib.IP,
890
+ 'AO' : telnetlib.AO,
891
+ 'AYT' : telnetlib.AYT,
892
+ 'EC' : telnetlib.EC,
893
+ 'EL' : telnetlib.EL,
894
+ 'NOP' : telnetlib.NOP
895
+ }
896
+ try:
897
+ return code_names[name]
898
+ except KeyError:
899
+ raise RuntimeError("Unsupported control character '%s'." % name)
900
+
901
+ def read(self, loglevel=None):
902
+ """Reads everything that is currently available in the output.
903
+
904
+ Read output is both returned and logged. See `Logging` section for more
905
+ information about log levels.
906
+ """
907
+ self._verify_connection()
908
+ output = self.read_very_eager()
909
+ if self._terminal_emulator:
910
+ self._terminal_emulator.feed(output)
911
+ output = self._terminal_emulator.read()
912
+ else:
913
+ output = self._decode(output)
914
+ self._log(output, loglevel)
915
+ return output
916
+
917
+ def read_until(self, expected, loglevel=None):
918
+ """Reads output until ``expected`` text is encountered.
919
+
920
+ Text up to and including the match is returned and logged. If no match
921
+ is found, this keyword fails. How much to wait for the output depends
922
+ on the [#Configuration|configured timeout].
923
+
924
+ See `Logging` section for more information about log levels. Use
925
+ `Read Until Regexp` if more complex matching is needed.
926
+ """
927
+ success, output = self._read_until(expected)
928
+ self._log(output, loglevel)
929
+ if not success:
930
+ raise NoMatchError(expected, self._timeout, output)
931
+ return output
932
+
933
+ def _read_until(self, expected):
934
+ self._verify_connection()
935
+ if self._terminal_emulator:
936
+ return self._terminal_read_until(expected)
937
+ expected = self._encode(expected)
938
+ output = telnetlib.Telnet.read_until(self, expected, self._timeout)
939
+ return output.endswith(expected), self._decode(output)
940
+
941
+ @property
942
+ def _terminal_frequency(self):
943
+ return min(self.INTERNAL_UPDATE_FREQUENCY, self._timeout)
944
+
945
+ def _terminal_read_until(self, expected):
946
+ max_time = time.time() + self._timeout
947
+ out = self._terminal_emulator.read_until(expected)
948
+ if out:
949
+ return True, out
950
+ while time.time() < max_time:
951
+ input_bytes = telnetlib.Telnet.read_until(self, self._encode(expected),
952
+ self._terminal_frequency)
953
+ self._terminal_emulator.feed(input_bytes)
954
+ out = self._terminal_emulator.read_until(expected)
955
+ if out:
956
+ return True, out
957
+ return False, self._terminal_emulator.read()
958
+
959
+ def _read_until_regexp(self, *expected):
960
+ self._verify_connection()
961
+ if self._terminal_emulator:
962
+ return self._terminal_read_until_regexp(expected)
963
+ expected = [self._encode(exp) if is_unicode(exp) else exp
964
+ for exp in expected]
965
+ return self._telnet_read_until_regexp(expected)
966
+
967
+ def _terminal_read_until_regexp(self, expected_list):
968
+ max_time = time.time() + self._timeout
969
+ regexps_bytes = [self._to_byte_regexp(rgx) for rgx in expected_list]
970
+ regexps_unicode = [re.compile(self._decode(rgx.pattern))
971
+ for rgx in regexps_bytes]
972
+ out = self._terminal_emulator.read_until_regexp(regexps_unicode)
973
+ if out:
974
+ return True, out
975
+ while time.time() < max_time:
976
+ output = self.expect(regexps_bytes, self._terminal_frequency)[-1]
977
+ self._terminal_emulator.feed(output)
978
+ out = self._terminal_emulator.read_until_regexp(regexps_unicode)
979
+ if out:
980
+ return True, out
981
+ return False, self._terminal_emulator.read()
982
+
983
+ def _telnet_read_until_regexp(self, expected_list):
984
+ expected = [self._to_byte_regexp(exp) for exp in expected_list]
985
+ try:
986
+ index, _, output = self.expect(expected, self._timeout)
987
+ except TypeError:
988
+ index, output = -1, b''
989
+ return index != -1, self._decode(output)
990
+
991
+ def _to_byte_regexp(self, exp):
992
+ if is_bytes(exp):
993
+ return re.compile(exp)
994
+ if is_string(exp):
995
+ return re.compile(self._encode(exp))
996
+ pattern = exp.pattern
997
+ if is_bytes(pattern):
998
+ return exp
999
+ return re.compile(self._encode(pattern))
1000
+
1001
+ def read_until_regexp(self, *expected):
1002
+ """Reads output until any of the ``expected`` regular expressions match.
1003
+
1004
+ This keyword accepts any number of regular expressions patterns or
1005
+ compiled Python regular expression objects as arguments. Text up to
1006
+ and including the first match to any of the regular expressions is
1007
+ returned and logged. If no match is found, this keyword fails. How much
1008
+ to wait for the output depends on the [#Configuration|configured timeout].
1009
+
1010
+ If the last given argument is a [#Logging|valid log level], it is used
1011
+ as ``loglevel`` similarly as with `Read Until` keyword.
1012
+
1013
+ See the documentation of
1014
+ [http://docs.python.org/2/library/re.html|Python re module]
1015
+ for more information about the supported regular expression syntax.
1016
+ Notice that possible backslashes need to be escaped in Robot Framework
1017
+ test data.
1018
+
1019
+ Examples:
1020
+ | `Read Until Regexp` | (#|$) |
1021
+ | `Read Until Regexp` | first_regexp | second_regexp |
1022
+ | `Read Until Regexp` | \\\\d{4}-\\\\d{2}-\\\\d{2} | DEBUG |
1023
+ """
1024
+ if not expected:
1025
+ raise RuntimeError('At least one pattern required')
1026
+ if self._is_valid_log_level(expected[-1]):
1027
+ loglevel = expected[-1]
1028
+ expected = expected[:-1]
1029
+ else:
1030
+ loglevel = None
1031
+ success, output = self._read_until_regexp(*expected)
1032
+ self._log(output, loglevel)
1033
+ if not success:
1034
+ expected = [exp if is_string(exp) else exp.pattern
1035
+ for exp in expected]
1036
+ raise NoMatchError(expected, self._timeout, output)
1037
+ return output
1038
+
1039
+ def read_until_prompt(self, loglevel=None, strip_prompt=False):
1040
+ """Reads output until the prompt is encountered.
1041
+
1042
+ This keyword requires the prompt to be [#Configuration|configured]
1043
+ either in `importing` or with `Open Connection` or `Set Prompt` keyword.
1044
+
1045
+ By default, text up to and including the prompt is returned and logged.
1046
+ If no prompt is found, this keyword fails. How much to wait for the
1047
+ output depends on the [#Configuration|configured timeout].
1048
+
1049
+ If you want to exclude the prompt from the returned output, set
1050
+ ``strip_prompt`` to a true value (see `Boolean arguments`). If your
1051
+ prompt is a regular expression, make sure that the expression spans the
1052
+ whole prompt, because only the part of the output that matches the
1053
+ regular expression is stripped away.
1054
+
1055
+ See `Logging` section for more information about log levels.
1056
+
1057
+ Optionally stripping prompt is a new feature in Robot Framework 2.8.7.
1058
+ """
1059
+ if not self._prompt_is_set():
1060
+ raise RuntimeError('Prompt is not set.')
1061
+ success, output = self._read_until_prompt()
1062
+ self._log(output, loglevel)
1063
+ if not success:
1064
+ prompt, regexp = self._prompt
1065
+ raise AssertionError("Prompt '%s' not found in %s."
1066
+ % (prompt if not regexp else prompt.pattern,
1067
+ secs_to_timestr(self._timeout)))
1068
+ if is_truthy(strip_prompt):
1069
+ output = self._strip_prompt(output)
1070
+ return output
1071
+
1072
+ def _read_until_prompt(self):
1073
+ prompt, regexp = self._prompt
1074
+ read_until = self._read_until_regexp if regexp else self._read_until
1075
+ return read_until(prompt)
1076
+
1077
+ def _strip_prompt(self, output):
1078
+ prompt, regexp = self._prompt
1079
+ if not regexp:
1080
+ length = len(prompt)
1081
+ else:
1082
+ match = prompt.search(output)
1083
+ length = match.end() - match.start()
1084
+ return output[:-length]
1085
+
1086
+ def execute_command(self, command, loglevel=None, strip_prompt=False):
1087
+ """Executes the given ``command`` and reads, logs, and returns everything until the prompt.
1088
+
1089
+ This keyword requires the prompt to be [#Configuration|configured]
1090
+ either in `importing` or with `Open Connection` or `Set Prompt` keyword.
1091
+
1092
+ This is a convenience keyword that uses `Write` and `Read Until Prompt`
1093
+ internally. Following two examples are thus functionally identical:
1094
+
1095
+ | ${out} = | `Execute Command` | pwd |
1096
+
1097
+ | `Write` | pwd |
1098
+ | ${out} = | `Read Until Prompt` |
1099
+
1100
+ See `Logging` section for more information about log levels and `Read
1101
+ Until Prompt` for more information about the ``strip_prompt`` parameter.
1102
+ """
1103
+ self.write(command, loglevel)
1104
+ return self.read_until_prompt(loglevel, strip_prompt)
1105
+
1106
+ @contextmanager
1107
+ def _custom_timeout(self, timeout):
1108
+ old = self.set_timeout(timeout)
1109
+ try:
1110
+ yield
1111
+ finally:
1112
+ self.set_timeout(old)
1113
+
1114
+ def _verify_connection(self):
1115
+ if not self.sock:
1116
+ raise RuntimeError('No connection open')
1117
+
1118
+ def _log(self, msg, level=None):
1119
+ msg = msg.strip()
1120
+ if msg:
1121
+ logger.write(msg, level or self._default_log_level)
1122
+
1123
+ def _negotiate_options(self, sock, cmd, opt):
1124
+ # We don't have state changes in our accepted telnet options.
1125
+ # Therefore, we just track if we've already responded to an option. If
1126
+ # this is the case, we must not send any response.
1127
+ if cmd in (telnetlib.DO, telnetlib.DONT, telnetlib.WILL, telnetlib.WONT):
1128
+ if (cmd, opt) in self._opt_responses:
1129
+ return
1130
+ else:
1131
+ self._opt_responses.append((cmd, opt))
1132
+
1133
+ # This is supposed to turn server side echoing on and turn other options off.
1134
+ if opt == telnetlib.ECHO and cmd in (telnetlib.WILL, telnetlib.WONT):
1135
+ self._opt_echo_on(opt)
1136
+ elif cmd == telnetlib.DO and opt == telnetlib.TTYPE and self._terminal_type:
1137
+ self._opt_terminal_type(opt, self._terminal_type)
1138
+ elif cmd == telnetlib.DO and opt == telnetlib.NEW_ENVIRON and self._environ_user:
1139
+ self._opt_environ_user(opt, self._environ_user)
1140
+ elif cmd == telnetlib.DO and opt == telnetlib.NAWS and self._window_size:
1141
+ self._opt_window_size(opt, *self._window_size)
1142
+ elif opt != telnetlib.NOOPT:
1143
+ self._opt_dont_and_wont(cmd, opt)
1144
+
1145
+ def _opt_echo_on(self, opt):
1146
+ return self.sock.sendall(telnetlib.IAC + telnetlib.DO + opt)
1147
+
1148
+ def _opt_terminal_type(self, opt, terminal_type):
1149
+ self.sock.sendall(telnetlib.IAC + telnetlib.WILL + opt)
1150
+ self.sock.sendall(telnetlib.IAC + telnetlib.SB + telnetlib.TTYPE
1151
+ + self.NEW_ENVIRON_IS + terminal_type
1152
+ + telnetlib.IAC + telnetlib.SE)
1153
+
1154
+ def _opt_environ_user(self, opt, environ_user):
1155
+ self.sock.sendall(telnetlib.IAC + telnetlib.WILL + opt)
1156
+ self.sock.sendall(telnetlib.IAC + telnetlib.SB + telnetlib.NEW_ENVIRON
1157
+ + self.NEW_ENVIRON_IS + self.NEW_ENVIRON_VAR
1158
+ + b"USER" + self.NEW_ENVIRON_VALUE + environ_user
1159
+ + telnetlib.IAC + telnetlib.SE)
1160
+
1161
+ def _opt_window_size(self, opt, window_x, window_y):
1162
+ self.sock.sendall(telnetlib.IAC + telnetlib.WILL + opt)
1163
+ self.sock.sendall(telnetlib.IAC + telnetlib.SB + telnetlib.NAWS
1164
+ + struct.pack('!HH', window_x, window_y)
1165
+ + telnetlib.IAC + telnetlib.SE)
1166
+
1167
+ def _opt_dont_and_wont(self, cmd, opt):
1168
+ if cmd in (telnetlib.DO, telnetlib.DONT):
1169
+ self.sock.sendall(telnetlib.IAC + telnetlib.WONT + opt)
1170
+ elif cmd in (telnetlib.WILL, telnetlib.WONT):
1171
+ self.sock.sendall(telnetlib.IAC + telnetlib.DONT + opt)
1172
+
1173
+ def msg(self, msg, *args):
1174
+ # Forward telnetlib's debug messages to log
1175
+ if self._telnetlib_log_level != 'NONE':
1176
+ logger.write(msg % args, self._telnetlib_log_level)
1177
+
1178
+ def _check_terminal_emulation(self, terminal_emulation):
1179
+ if not terminal_emulation:
1180
+ return False
1181
+ if not pyte:
1182
+ raise RuntimeError("Terminal emulation requires pyte module!\n"
1183
+ "https://pypi.python.org/pypi/pyte/")
1184
+ return TerminalEmulator(window_size=self._window_size,
1185
+ newline=self._newline, encoding=self._encoding)
1186
+
1187
+
1188
+ class TerminalEmulator(object):
1189
+
1190
+ def __init__(self, window_size=None, newline="\r\n",
1191
+ encoding=('UTF-8', 'ignore')):
1192
+ self._rows, self._columns = window_size or (200, 200)
1193
+ self._newline = newline
1194
+ self._stream = pyte.ByteStream(encodings=[encoding])
1195
+ self._screen = pyte.HistoryScreen(self._rows,
1196
+ self._columns,
1197
+ history=100000)
1198
+ self._stream.attach(self._screen)
1199
+ self._screen.set_charset('B', '(')
1200
+ self._buffer = ''
1201
+ self._whitespace_after_last_feed = ''
1202
+
1203
+ @property
1204
+ def current_output(self):
1205
+ return self._buffer + self._dump_screen()
1206
+
1207
+ def _dump_screen(self):
1208
+ return self._get_history() + \
1209
+ self._get_screen(self._screen) + \
1210
+ self._whitespace_after_last_feed
1211
+
1212
+ def _get_history(self):
1213
+ if self._screen.history.top:
1214
+ return self._get_history_screen(self._screen.history.top) + self._newline
1215
+ return ''
1216
+
1217
+ def _get_history_screen(self, deque):
1218
+ return self._newline.join(''.join(c.data for c in row).rstrip()
1219
+ for row in deque).rstrip(self._newline)
1220
+
1221
+ def _get_screen(self, screen):
1222
+ return self._newline.join(row.rstrip() for row in screen.display).rstrip(self._newline)
1223
+
1224
+ def feed(self, input_bytes):
1225
+ self._stream.feed(input_bytes)
1226
+ self._whitespace_after_last_feed = input_bytes[len(input_bytes.rstrip()):].decode('ASCII')
1227
+
1228
+ def read(self):
1229
+ current_out = self.current_output
1230
+ self._update_buffer('')
1231
+ return current_out
1232
+
1233
+ def read_until(self, expected):
1234
+ current_out = self.current_output
1235
+ exp_index = current_out.find(expected)
1236
+ if exp_index != -1:
1237
+ self._update_buffer(current_out[exp_index+len(expected):])
1238
+ return current_out[:exp_index+len(expected)]
1239
+ return None
1240
+
1241
+ def read_until_regexp(self, regexp_list):
1242
+ current_out = self.current_output
1243
+ for rgx in regexp_list:
1244
+ match = rgx.search(current_out)
1245
+ if match:
1246
+ self._update_buffer(current_out[match.end():])
1247
+ return current_out[:match.end()]
1248
+ return None
1249
+
1250
+ def _update_buffer(self, terminal_buffer):
1251
+ self._buffer = terminal_buffer
1252
+ self._whitespace_after_last_feed = ''
1253
+ self._screen.reset()
1254
+ self._screen.set_charset('B', '(')
1255
+
1256
+
1257
+ class NoMatchError(AssertionError):
1258
+ ROBOT_SUPPRESS_NAME = True
1259
+
1260
+ def __init__(self, expected, timeout, output=None):
1261
+ self.expected = expected
1262
+ self.timeout = secs_to_timestr(timeout)
1263
+ self.output = output
1264
+ AssertionError.__init__(self, self._get_message())
1265
+
1266
+ def _get_message(self):
1267
+ expected = "'%s'" % self.expected \
1268
+ if is_string(self.expected) \
1269
+ else seq2str(self.expected, lastsep=' or ')
1270
+ msg = "No match found for %s in %s." % (expected, self.timeout)
1271
+ if self.output is not None:
1272
+ msg += ' Output:\n%s' % self.output
1273
+ return msg