holado 0.2.2__py3-none-any.whl → 0.2.3__py3-none-any.whl

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.

Potentially problematic release.


This version of holado might be problematic. Click here for more details.

Files changed (523) hide show
  1. {holado-0.2.2.dist-info → holado-0.2.3.dist-info}/METADATA +13 -9
  2. holado-0.2.3.dist-info/RECORD +535 -0
  3. holado_ais/__init__.py +33 -0
  4. holado_ais/ais/MaritimeIdentificationDigits.csv +295 -0
  5. holado_ais/ais/ais_manager.py +151 -0
  6. holado_ais/ais/ais_messages.py +203 -0
  7. holado_ais/ais/ais_payload.py +35 -0
  8. holado_ais/ais/enums.py +37 -0
  9. holado_ais/ais/patch_pyais.py +1303 -0
  10. holado_ais/tests/behave/steps/__init__.py +17 -0
  11. holado_ais/tests/behave/steps/ais/__init__.py +0 -0
  12. holado_ais/tests/behave/steps/ais/ais_manager_steps.py +50 -0
  13. holado_ais/tests/behave/steps/ais/ais_messages_steps.py +182 -0
  14. holado_binary/__init__.py +17 -0
  15. holado_binary/ipc/binary.py +125 -0
  16. holado_binary/ipc/bit_series.py +307 -0
  17. holado_binary/tests/behave/steps/__init__.py +17 -0
  18. holado_binary/tests/behave/steps/ipc/binary_steps.py +57 -0
  19. holado_binary/tests/behave/steps/ipc/bit_series_steps.py +131 -0
  20. holado_context/__init__.py +16 -0
  21. holado_context/tests/behave/steps/__init__.py +16 -0
  22. holado_context/tests/behave/steps/private/__init__.py +16 -0
  23. holado_context/tests/behave/steps/private/common/context_steps.py +36 -0
  24. holado_core/__init__.py +32 -0
  25. holado_core/common/__init__.py +0 -0
  26. holado_core/common/actors/actions.py +97 -0
  27. holado_core/common/actors/actor.py +226 -0
  28. holado_core/common/actors/element_actor.py +32 -0
  29. holado_core/common/actors/find_actor.py +106 -0
  30. holado_core/common/actors/tree_actor.py +32 -0
  31. holado_core/common/actors/verify_actions.py +69 -0
  32. holado_core/common/block/base.py +122 -0
  33. holado_core/common/block/block_manager.py +173 -0
  34. holado_core/common/block/block_method.py +46 -0
  35. holado_core/common/block/block_steps.py +37 -0
  36. holado_core/common/block/function.py +42 -0
  37. holado_core/common/block/scope_function.py +28 -0
  38. holado_core/common/block/scope_manager.py +238 -0
  39. holado_core/common/block/scope_steps.py +141 -0
  40. holado_core/common/criterias/and_criteria.py +61 -0
  41. holado_core/common/criterias/criteria.py +78 -0
  42. holado_core/common/criterias/or_criteria.py +64 -0
  43. holado_core/common/criterias/tools/criteria_context.py +20 -0
  44. holado_core/common/criterias/tools/criteria_parameters.py +18 -0
  45. holado_core/common/drivers/driver.py +153 -0
  46. holado_core/common/drivers/element_driver.py +30 -0
  47. holado_core/common/drivers/element_internal_api.py +239 -0
  48. holado_core/common/drivers/internal_api.py +40 -0
  49. holado_core/common/drivers/tree_driver.py +30 -0
  50. holado_core/common/drivers/tree_internal_api.py +176 -0
  51. holado_core/common/exceptions/__init__.py +0 -0
  52. holado_core/common/exceptions/element_exception.py +28 -0
  53. holado_core/common/exceptions/exceptions.py +24 -0
  54. holado_core/common/exceptions/functional_exception.py +21 -0
  55. holado_core/common/exceptions/holado_exception.py +25 -0
  56. holado_core/common/exceptions/technical_exception.py +27 -0
  57. holado_core/common/exceptions/timeout_exception.py +20 -0
  58. holado_core/common/exceptions/verify_exception.py +20 -0
  59. holado_core/common/finders/after_in_tree_finder.py +87 -0
  60. holado_core/common/finders/element_finder.py +60 -0
  61. holado_core/common/finders/else_finder.py +105 -0
  62. holado_core/common/finders/finder.py +478 -0
  63. holado_core/common/finders/or_finder.py +98 -0
  64. holado_core/common/finders/then_finder.py +157 -0
  65. holado_core/common/finders/tools/enums.py +30 -0
  66. holado_core/common/finders/tools/find_builder.py +118 -0
  67. holado_core/common/finders/tools/find_context.py +405 -0
  68. holado_core/common/finders/tools/find_info.py +27 -0
  69. holado_core/common/finders/tools/find_parameters.py +240 -0
  70. holado_core/common/finders/tools/find_updater.py +95 -0
  71. holado_core/common/finders/tools/finder_info.py +26 -0
  72. holado_core/common/finders/tree_finder.py +146 -0
  73. holado_core/common/handlers/__init__.py +0 -0
  74. holado_core/common/handlers/abstracts/base_redo.py +695 -0
  75. holado_core/common/handlers/abstracts/get_or_create.py +120 -0
  76. holado_core/common/handlers/element_holder.py +122 -0
  77. holado_core/common/handlers/enums.py +23 -0
  78. holado_core/common/handlers/exceptions/redo_exceptions.py +28 -0
  79. holado_core/common/handlers/features/resource_by_name.py +187 -0
  80. holado_core/common/handlers/features/resource_by_type.py +174 -0
  81. holado_core/common/handlers/redo.py +119 -0
  82. holado_core/common/handlers/wait.py +127 -0
  83. holado_core/common/inspectors/element_inspector.py +57 -0
  84. holado_core/common/inspectors/inspector.py +221 -0
  85. holado_core/common/inspectors/tools/inspect_builder.py +169 -0
  86. holado_core/common/inspectors/tools/inspect_context.py +69 -0
  87. holado_core/common/inspectors/tools/inspect_parameters.py +181 -0
  88. holado_core/common/inspectors/tree_inspector.py +73 -0
  89. holado_core/common/resource/persisted_data_manager.py +113 -0
  90. holado_core/common/resource/persisted_method_to_call_manager.py +133 -0
  91. holado_core/common/resource/resource_manager.py +143 -0
  92. holado_core/common/tables/__init__.py +1 -0
  93. holado_core/common/tables/comparators/__init__.py +0 -0
  94. holado_core/common/tables/comparators/boolean_table_cell_comparator.py +25 -0
  95. holado_core/common/tables/comparators/bytes_table_cell_comparator.py +25 -0
  96. holado_core/common/tables/comparators/datetime_table_cell_comparator.py +24 -0
  97. holado_core/common/tables/comparators/float_table_cell_comparator.py +31 -0
  98. holado_core/common/tables/comparators/integer_table_cell_comparator.py +25 -0
  99. holado_core/common/tables/comparators/internal_table_cell_comparator.py +30 -0
  100. holado_core/common/tables/comparators/string_table_cell_comparator.py +24 -0
  101. holado_core/common/tables/comparators/string_table_comparator.py +29 -0
  102. holado_core/common/tables/comparators/string_table_row_comparator.py +29 -0
  103. holado_core/common/tables/comparators/table_cell_comparator.py +40 -0
  104. holado_core/common/tables/comparators/table_comparator.py +209 -0
  105. holado_core/common/tables/comparators/table_comparator_manager.py +60 -0
  106. holado_core/common/tables/comparators/table_row_comparator.py +116 -0
  107. holado_core/common/tables/comparators/table_with_header_comparator.py +68 -0
  108. holado_core/common/tables/converters/__init__.py +0 -0
  109. holado_core/common/tables/converters/table_converter.py +194 -0
  110. holado_core/common/tables/enums.py +23 -0
  111. holado_core/common/tables/table.py +261 -0
  112. holado_core/common/tables/table_cell.py +126 -0
  113. holado_core/common/tables/table_manager.py +366 -0
  114. holado_core/common/tables/table_row.py +169 -0
  115. holado_core/common/tables/table_with_header.py +236 -0
  116. holado_core/common/tools/__init__.py +0 -0
  117. holado_core/common/tools/comparators/comparator.py +151 -0
  118. holado_core/common/tools/comparators/object_comparator.py +21 -0
  119. holado_core/common/tools/converters/converter.py +107 -0
  120. holado_core/common/tools/path_manager.py +185 -0
  121. holado_core/common/tools/string_tools.py +135 -0
  122. holado_core/common/tools/tools.py +172 -0
  123. holado_core/common/transport/__init__.py +0 -0
  124. holado_core/common/transport/crc.py +40 -0
  125. holado_core/tests/behave/steps/__init__.py +20 -0
  126. holado_core/tests/behave/steps/common/__init__.py +0 -0
  127. holado_core/tests/behave/steps/common/common_steps.py +136 -0
  128. holado_core/tests/behave/steps/common/config_steps.py +42 -0
  129. holado_core/tests/behave/steps/common/resource_steps.py +62 -0
  130. holado_core/tests/behave/steps/common/tables_steps.py +537 -0
  131. holado_core/tools/__init__.py +0 -0
  132. holado_core/tools/abstracts/__init__.py +0 -0
  133. holado_core/tools/abstracts/blocking_command_service.py +56 -0
  134. holado_core/tools/abstracts/service.py +48 -0
  135. holado_data/__init__.py +31 -0
  136. holado_data/data/generator/base.py +93 -0
  137. holado_data/data/generator/python_generator.py +30 -0
  138. holado_data/tests/behave/steps/__init__.py +17 -0
  139. holado_data/tests/behave/steps/data/generator_steps.py +91 -0
  140. holado_data/tests/behave/steps/tools/utils_steps.py +60 -0
  141. holado_db/__init__.py +32 -0
  142. holado_db/tests/behave/steps/__init__.py +18 -0
  143. holado_db/tests/behave/steps/tools/db/db_client_steps.py +134 -0
  144. holado_db/tests/behave/steps/tools/db/postgresql_client_steps.py +59 -0
  145. holado_db/tests/behave/steps/tools/db/sqlite_client_steps.py +57 -0
  146. holado_db/tools/db/clients/base/db_client.py +206 -0
  147. holado_db/tools/db/clients/postgresql/postgresql_client.py +65 -0
  148. holado_db/tools/db/clients/sqlite/sqlite_client.py +56 -0
  149. holado_db/tools/db/db_manager.py +109 -0
  150. holado_db/tools/db/query/base/query_builder.py +87 -0
  151. holado_db/tools/db/query/pypika/pypika_query_builder.py +193 -0
  152. holado_db/tools/db/query/query_manager.py +77 -0
  153. holado_docker/__init__.py +25 -0
  154. holado_docker/sdk/docker/docker_client.py +268 -0
  155. holado_docker/sdk/docker/docker_service.py +71 -0
  156. holado_docker/tests/behave/steps/__init__.py +16 -0
  157. holado_docker/tests/behave/steps/tools/docker_steps.py +33 -0
  158. holado_docker/tools/docker_controler/__init__.py +26 -0
  159. holado_docker/tools/docker_controler/docker_controler_client.py +36 -0
  160. holado_docker/tools/docker_controler/docker_controler_server.py +31 -0
  161. holado_docker/tools/docker_controler/proto/compile_proto.py +60 -0
  162. holado_docker/tools/docker_controler/proto/definitions/docker_controler.proto +63 -0
  163. holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2.py +52 -0
  164. holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2_grpc.py +233 -0
  165. holado_grpc/__init__.py +32 -0
  166. holado_grpc/api/rpc/TODO.txt +4 -0
  167. holado_grpc/api/rpc/grpc_client.py +181 -0
  168. holado_grpc/api/rpc/grpc_manager.py +81 -0
  169. holado_grpc/ipc/rpc/__init__.py +0 -0
  170. holado_grpc/ipc/rpc/grpc_compiler.py +45 -0
  171. holado_grpc/ipc/rpc/grpc_services.py +165 -0
  172. holado_grpc/tests/behave/steps/__init__.py +16 -0
  173. holado_grpc/tests/behave/steps/api/grpc_client_steps.py +173 -0
  174. holado_grpc/tests/behave/steps/private/__init__.py +16 -0
  175. holado_grpc/tests/behave/steps/private/api/grpc_steps.py +77 -0
  176. holado_helper/__init__.py +35 -0
  177. holado_helper/debug/README.txt +32 -0
  178. holado_helper/debug/memory/memory_profiler.py +106 -0
  179. holado_helper/docker/init_user.sh +24 -0
  180. holado_helper/docker/logging.conf +42 -0
  181. holado_helper/docker/run_holado_test_nonreg_in_docker.sh +120 -0
  182. holado_helper/docker/run_terminal_in_docker-with_docker_control.sh +103 -0
  183. holado_helper/docker/run_terminal_in_docker.sh +101 -0
  184. holado_helper/holado_module_template/__init__.py +31 -0
  185. holado_helper/holado_module_template/test/behave/steps/__init__.py +16 -0
  186. holado_helper/holado_module_template/test/behave/steps/private/__init__.py +16 -0
  187. holado_helper/script/action.py +109 -0
  188. holado_helper/script/action_script.py +477 -0
  189. holado_helper/script/any_action_script.py +126 -0
  190. holado_helper/script/behave_action_script.py +99 -0
  191. holado_helper/script/csv_action_script.py +142 -0
  192. holado_helper/script/initialize_script.py +115 -0
  193. holado_helper/script/input_output_script.py +136 -0
  194. holado_helper/script/job.py +75 -0
  195. holado_helper/script/json_action_script.py +104 -0
  196. holado_helper/script/script.py +110 -0
  197. holado_json/__init__.py +16 -0
  198. holado_json/ipc/json.py +125 -0
  199. holado_json/ipc/json_converter.py +69 -0
  200. holado_json/ipc/json_types.py +183 -0
  201. holado_json/tests/behave/steps/__init__.py +16 -0
  202. holado_json/tests/behave/steps/ipc/__init__.py +0 -0
  203. holado_json/tests/behave/steps/ipc/json_steps.py +120 -0
  204. holado_keycloak/__init__.py +16 -0
  205. holado_keycloak/tests/behave/steps/__init__.py +16 -0
  206. holado_keycloak/tests/behave/steps/tools/keycloak_client_steps.py +59 -0
  207. holado_keycloak/tools/keycloak/__init__.py +0 -0
  208. holado_keycloak/tools/keycloak/keycloak_client.py +61 -0
  209. holado_logging/__init__.py +36 -0
  210. holado_logging/common/logging/holado_logger.py +75 -0
  211. holado_logging/common/logging/log_config.py +128 -0
  212. holado_logging/common/logging/log_manager.py +292 -0
  213. holado_multitask/__init__.py +33 -0
  214. holado_multitask/multiprocessing/context/process_context.py +35 -0
  215. holado_multitask/multiprocessing/function_process.py +102 -0
  216. holado_multitask/multiprocessing/periodic_function_process.py +135 -0
  217. holado_multitask/multiprocessing/process.py +196 -0
  218. holado_multitask/multiprocessing/processesmanager.py +133 -0
  219. holado_multitask/multitasking/multitask_manager.py +439 -0
  220. holado_multitask/multithreading/__init__.py +0 -0
  221. holado_multitask/multithreading/context/thread_context.py +84 -0
  222. holado_multitask/multithreading/functionthreaded.py +129 -0
  223. holado_multitask/multithreading/loopfunctionthreaded.py +45 -0
  224. holado_multitask/multithreading/loopthread.py +100 -0
  225. holado_multitask/multithreading/periodicfunctionthreaded.py +136 -0
  226. holado_multitask/multithreading/reflection/inspect.py +47 -0
  227. holado_multitask/multithreading/reflection/sys.py +29 -0
  228. holado_multitask/multithreading/reflection/traceback.py +35 -0
  229. holado_multitask/multithreading/thread.py +177 -0
  230. holado_multitask/multithreading/threadsmanager.py +162 -0
  231. holado_multitask/multithreading/timer.py +48 -0
  232. holado_multitask/tests/behave/steps/__init__.py +17 -0
  233. holado_multitask/tests/behave/steps/multiprocessing_steps.py +138 -0
  234. holado_multitask/tests/behave/steps/multithreading_steps.py +129 -0
  235. holado_protobuf/__init__.py +61 -0
  236. holado_protobuf/ipc/protobuf/__init__.py +0 -0
  237. holado_protobuf/ipc/protobuf/abstracts/type.py +45 -0
  238. holado_protobuf/ipc/protobuf/protobuf_compiler.py +118 -0
  239. holado_protobuf/ipc/protobuf/protobuf_converter.py +153 -0
  240. holado_protobuf/ipc/protobuf/protobuf_messages.py +965 -0
  241. holado_protobuf/ipc/protobuf/protobuf_modifier.py +65 -0
  242. holado_protobuf/ipc/protobuf/types/__init__.py +0 -0
  243. holado_protobuf/ipc/protobuf/types/google/__init__.py +0 -0
  244. holado_protobuf/ipc/protobuf/types/google/protobuf.py +124 -0
  245. holado_protobuf/tests/behave/steps/__init__.py +16 -0
  246. holado_protobuf/tests/behave/steps/ipc/protobuf_steps.py +297 -0
  247. holado_python/__init__.py +35 -0
  248. holado_python/common/enums.py +34 -0
  249. holado_python/common/iterables.py +30 -0
  250. holado_python/common/tools/comparators/boolean_comparator.py +37 -0
  251. holado_python/common/tools/comparators/bytes_comparator.py +48 -0
  252. holado_python/common/tools/comparators/datetime_comparator.py +74 -0
  253. holado_python/common/tools/comparators/float_comparator.py +97 -0
  254. holado_python/common/tools/comparators/integer_comparator.py +37 -0
  255. holado_python/common/tools/comparators/string_comparator.py +99 -0
  256. holado_python/common/tools/comparators/type_comparator.py +31 -0
  257. holado_python/common/tools/datetime.py +279 -0
  258. holado_python/standard_library/csv.py +207 -0
  259. holado_python/standard_library/hashlib.py +82 -0
  260. holado_python/standard_library/multiprocessing.py +62 -0
  261. holado_python/standard_library/queue.py +79 -0
  262. holado_python/standard_library/socket/blocking_socket.py +136 -0
  263. holado_python/standard_library/socket/echo_server.py +28 -0
  264. holado_python/standard_library/socket/message_socket.py +91 -0
  265. holado_python/standard_library/socket/non_blocking_socket.py +151 -0
  266. holado_python/standard_library/socket/socket.py +148 -0
  267. holado_python/standard_library/ssl/resources/certificates/NOTES.txt +5 -0
  268. holado_python/standard_library/ssl/resources/certificates/localhost.crt +19 -0
  269. holado_python/standard_library/ssl/resources/certificates/localhost.key +28 -0
  270. holado_python/standard_library/ssl/ssl.py +81 -0
  271. holado_python/standard_library/typing.py +192 -0
  272. holado_python/tests/behave/steps/__init__.py +27 -0
  273. holado_python/tests/behave/steps/builtins/str_steps.py +45 -0
  274. holado_python/tests/behave/steps/convert_steps.py +59 -0
  275. holado_python/tests/behave/steps/iterable_steps.py +87 -0
  276. holado_python/tests/behave/steps/standard_library/csv_steps.py +134 -0
  277. holado_python/tests/behave/steps/standard_library/datetime_steps.py +163 -0
  278. holado_python/tests/behave/steps/standard_library/hashlib_steps.py +57 -0
  279. holado_python/tests/behave/steps/standard_library/multiprocessing_steps.py +56 -0
  280. holado_python/tests/behave/steps/standard_library/queue_steps.py +358 -0
  281. holado_python/tests/behave/steps/standard_library/socket_steps.py +258 -0
  282. holado_python/tests/behave/steps/standard_library/ssl_steps.py +67 -0
  283. holado_rabbitmq/__init__.py +28 -0
  284. holado_rabbitmq/tests/behave/steps/__init__.py +17 -0
  285. holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py +537 -0
  286. holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py +64 -0
  287. holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py +311 -0
  288. holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +675 -0
  289. holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +173 -0
  290. holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py +428 -0
  291. holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py +24 -0
  292. holado_redis/__init__.py +17 -0
  293. holado_redis/tests/behave/steps/__init__.py +16 -0
  294. holado_redis/tests/behave/steps/tools/redis_client_steps.py +101 -0
  295. holado_redis/tools/redis/TODO.txt +7 -0
  296. holado_redis/tools/redis/redis_client.py +190 -0
  297. holado_redis/tools/redis/redis_manager.py +38 -0
  298. holado_report/__init__.py +27 -0
  299. holado_report/report/analyze/execution_historic_manager.py +96 -0
  300. holado_report/report/analyze/scenario_duration_manager.py +245 -0
  301. holado_report/report/builders/detailed_scenario_failed_report_builder.py +146 -0
  302. holado_report/report/builders/json_execution_historic_report_builder.py +123 -0
  303. holado_report/report/builders/report_builder.py +64 -0
  304. holado_report/report/builders/short_scenario_failed_report_builder.py +76 -0
  305. holado_report/report/builders/summary_report_builder.py +89 -0
  306. holado_report/report/builders/summary_scenario_failed_report_builder.py +56 -0
  307. holado_report/report/builders/summary_scenario_report_builder.py +74 -0
  308. holado_report/report/execution_historic.py +141 -0
  309. holado_report/report/report_manager.py +256 -0
  310. holado_report/report/reports/base_report.py +163 -0
  311. holado_report/report/reports/feature_report.py +106 -0
  312. holado_report/report/reports/scenario_report.py +64 -0
  313. holado_rest/__init__.py +24 -0
  314. holado_rest/api/rest/TODO.txt +2 -0
  315. holado_rest/api/rest/rest_client.py +113 -0
  316. holado_rest/api/rest/rest_manager.py +62 -0
  317. holado_rest/tests/behave/steps/__init__.py +16 -0
  318. holado_rest/tests/behave/steps/api/__init__.py +0 -0
  319. holado_rest/tests/behave/steps/api/rest_client_steps.py +141 -0
  320. holado_rest/tests/behave/steps/private/__init__.py +16 -0
  321. holado_rest/tests/behave/steps/private/api/__init__.py +0 -0
  322. holado_rest/tests/behave/steps/private/api/rest_steps.py +70 -0
  323. holado_s3/__init__.py +17 -0
  324. holado_s3/tests/behave/steps/__init__.py +17 -0
  325. holado_s3/tests/behave/steps/private/__init__.py +16 -0
  326. holado_s3/tests/behave/steps/private/tools/s3_steps.py +89 -0
  327. holado_s3/tests/behave/steps/tools/s3_client_steps.py +403 -0
  328. holado_s3/tests/behave/steps/tools/s3_server_steps.py +57 -0
  329. holado_s3/tools/s3/__init__.py +0 -0
  330. holado_s3/tools/s3/boto3_s3_client.py +59 -0
  331. holado_s3/tools/s3/minio_client.py +75 -0
  332. holado_s3/tools/s3/moto_server.py +52 -0
  333. holado_scripting/__init__.py +53 -0
  334. holado_scripting/common/tools/dynamic_text_manager.py +73 -0
  335. holado_scripting/common/tools/evaluate_parameters.py +210 -0
  336. holado_scripting/common/tools/expression_evaluator.py +387 -0
  337. holado_scripting/common/tools/variable_manager.py +321 -0
  338. holado_scripting/tests/behave/steps/__init__.py +22 -0
  339. holado_scripting/tests/behave/steps/common/tools/variable_convert_steps.py +158 -0
  340. holado_scripting/tests/behave/steps/common/tools/variable_new_steps.py +130 -0
  341. holado_scripting/tests/behave/steps/common/tools/variable_steps.py +108 -0
  342. holado_scripting/tests/behave/steps/common/tools/variable_verify_steps.py +160 -0
  343. holado_scripting/tests/behave/steps/scenario/function_steps.py +77 -0
  344. holado_scripting/tests/behave/steps/scenario/if_steps.py +87 -0
  345. holado_scripting/tests/behave/steps/scenario/loop_steps.py +119 -0
  346. holado_scripting/text/base/base_function.py +25 -0
  347. holado_scripting/text/base/base_verify_function.py +25 -0
  348. holado_scripting/text/base/text_inspecter.py +204 -0
  349. holado_scripting/text/interpreter/exceptions/interpreter_exception.py +25 -0
  350. holado_scripting/text/interpreter/functions/function_cast.py +60 -0
  351. holado_scripting/text/interpreter/functions/function_convert.py +57 -0
  352. holado_scripting/text/interpreter/functions/function_dynamic_value.py +40 -0
  353. holado_scripting/text/interpreter/functions/function_escape_all_bytes.py +35 -0
  354. holado_scripting/text/interpreter/functions/function_exists_variable.py +39 -0
  355. holado_scripting/text/interpreter/functions/function_hex_to_bytes.py +49 -0
  356. holado_scripting/text/interpreter/functions/function_hex_to_int.py +53 -0
  357. holado_scripting/text/interpreter/functions/function_to_base_64.py +41 -0
  358. holado_scripting/text/interpreter/functions/function_to_bytes.py +50 -0
  359. holado_scripting/text/interpreter/functions/function_to_hex.py +42 -0
  360. holado_scripting/text/interpreter/text_interpreter.py +216 -0
  361. holado_scripting/text/verifier/exceptions/verifier_exception.py +21 -0
  362. holado_scripting/text/verifier/functions/verify_function_extract_in.py +35 -0
  363. holado_scripting/text/verifier/functions/verify_function_match_pattern.py +63 -0
  364. holado_scripting/text/verifier/text_verifier.py +103 -0
  365. holado_sftp/__init__.py +16 -0
  366. holado_sftp/tests/behave/steps/__init__.py +17 -0
  367. holado_sftp/tests/behave/steps/private/__init__.py +16 -0
  368. holado_sftp/tests/behave/steps/private/tools/sftp_steps.py +78 -0
  369. holado_sftp/tests/behave/steps/tools/sftp_client_steps.py +94 -0
  370. holado_sftp/tests/behave/steps/tools/sftp_server_steps.py +82 -0
  371. holado_sftp/tools/sftp/__init__.py +0 -0
  372. holado_sftp/tools/sftp/sftp_client.py +103 -0
  373. holado_sftp/tools/sftp/sftp_server.py +39 -0
  374. holado_swagger/__init__.py +31 -0
  375. holado_swagger/swagger_hub/mockserver/mockserver_client.py +82 -0
  376. holado_swagger/swagger_hub/mockserver/mockserver_manager.py +32 -0
  377. holado_swagger/tests/behave/steps/__init__.py +16 -0
  378. holado_swagger/tests/behave/steps/swagger_hub/mockserver_steps.py +74 -0
  379. holado_system/system/command/command.py +216 -0
  380. holado_system/system/command/command_result.py +128 -0
  381. holado_system/system/command/curl_command.py +101 -0
  382. holado_system/system/command/exceptions.py +59 -0
  383. holado_system/system/filesystem/file.py +76 -0
  384. holado_system/system/global_system.py +187 -0
  385. holado_system/tests/behave/steps/__init__.py +18 -0
  386. holado_system/tests/behave/steps/system/commands_steps.py +92 -0
  387. holado_system/tests/behave/steps/system/file_steps.py +215 -0
  388. holado_system/tests/behave/steps/system/system_steps.py +84 -0
  389. holado_test/__init__.py +27 -0
  390. holado_test/behave/__init__.py +0 -0
  391. holado_test/behave/behave.py +397 -0
  392. holado_test/behave/behave_environment.py +143 -0
  393. holado_test/behave/behave_function.py +33 -0
  394. holado_test/behave/behave_manager.py +555 -0
  395. holado_test/behave/independant_runner.py +68 -0
  396. holado_test/behave/scenario/__init__.py +0 -0
  397. holado_test/behave/scenario/behave_step_tools.py +157 -0
  398. holado_test/common/context/feature_context.py +79 -0
  399. holado_test/common/context/scenario_context.py +217 -0
  400. holado_test/common/context/step_context.py +66 -0
  401. holado_test/common/exceptions/undefined_step_exception.py +21 -0
  402. holado_test/scenario/step_tools.py +523 -0
  403. holado_test/scenario/tester_tools.py +52 -0
  404. holado_test/test_config.py +26 -0
  405. holado_test/tests/behave/steps/__init__.py +18 -0
  406. holado_test/tests/behave/steps/scenario/exception_steps.py +87 -0
  407. holado_test/tests/behave/steps/scenario/scenario_steps.py +87 -0
  408. holado_test/tests/behave/steps/scenario/tester_steps.py +65 -0
  409. holado_value/__init__.py +24 -0
  410. holado_value/common/tables/comparators/table_2_value_table_cell_comparator.py +195 -0
  411. holado_value/common/tables/comparators/table_2_value_table_comparator.py +27 -0
  412. holado_value/common/tables/comparators/table_2_value_table_row_comparator.py +27 -0
  413. holado_value/common/tables/comparators/table_2_value_table_with_header_comparator.py +27 -0
  414. holado_value/common/tables/converters/value_table_converter.py +217 -0
  415. holado_value/common/tables/value_table.py +29 -0
  416. holado_value/common/tables/value_table_cell.py +67 -0
  417. holado_value/common/tables/value_table_manager.py +58 -0
  418. holado_value/common/tables/value_table_row.py +44 -0
  419. holado_value/common/tables/value_table_with_header.py +28 -0
  420. holado_value/common/tools/unique_value_manager.py +108 -0
  421. holado_value/common/tools/value.py +164 -0
  422. holado_value/common/tools/value_types.py +35 -0
  423. holado_value/tests/behave/steps/__init__.py +16 -0
  424. holado_value/tests/behave/steps/private/__init__.py +16 -0
  425. holado_ws/__init__.py +16 -0
  426. holado_ws/api/ws/TODO.txt +2 -0
  427. holado_ws/tests/behave/steps/__init__.py +16 -0
  428. holado_ws/tests/behave/steps/api/web_service_steps.py +189 -0
  429. holado_yaml/__init__.py +31 -0
  430. holado_yaml/tests/behave/steps/__init__.py +16 -0
  431. holado_yaml/tests/behave/steps/yaml_steps.py +64 -0
  432. holado_yaml/yaml/yaml_manager.py +86 -0
  433. test_holado/Dockerfile_test_holado +82 -0
  434. test_holado/__init__.py +4 -0
  435. test_holado/__main__.py +25 -0
  436. test_holado/build_docker_image_to_test_holado_in_docker.sh +7 -0
  437. test_holado/environment.py +42 -0
  438. test_holado/features/NonReg/api/REST.feature +21 -0
  439. test_holado/features/NonReg/api/gRPC.feature +122 -0
  440. test_holado/features/NonReg/common/multiprocessing/simple.feature +60 -0
  441. test_holado/features/NonReg/common/system/commands.feature +43 -0
  442. test_holado/features/NonReg/common/system/system.feature +20 -0
  443. test_holado/features/NonReg/common/tables/table.feature +239 -0
  444. test_holado/features/NonReg/common/tables/value_table_conversion.feature +29 -0
  445. test_holado/features/NonReg/common/tools/DateTime.feature +88 -0
  446. test_holado/features/NonReg/common/tools/UniqueValueManager.feature +43 -0
  447. test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature +135 -0
  448. test_holado/features/NonReg/holado_protobuf/protobuf.feature +291 -0
  449. test_holado/features/NonReg/holado_python/convert.feature +20 -0
  450. test_holado/features/NonReg/holado_python/iterable.feature +61 -0
  451. test_holado/features/NonReg/holado_python/standard_library/socket.feature +101 -0
  452. test_holado/features/NonReg/holado_python/standard_library/socket_with_ssl.feature +180 -0
  453. test_holado/features/NonReg/holado_scripting/common/tools/dynamic_text_manager.feature +18 -0
  454. test_holado/features/NonReg/holado_scripting/common/tools/expression_evaluator.feature +185 -0
  455. test_holado/features/NonReg/holado_scripting/common/tools/variable_manager.feature +71 -0
  456. test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.error.feature +21 -0
  457. test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.feature +120 -0
  458. test_holado/features/NonReg/holado_yaml/yaml.feature +218 -0
  459. test_holado/features/NonReg/ipc/bit_series.error.feature +33 -0
  460. test_holado/features/NonReg/ipc/bit_series.feature +131 -0
  461. test_holado/features/NonReg/ipc/json.feature +20 -0
  462. test_holado/features/NonReg/scenario/scenario.feature +139 -0
  463. test_holado/features/NonReg/test_steps/behave.feature +275 -0
  464. test_holado/features/NonReg/test_steps/common.feature +100 -0
  465. test_holado/features/NonReg/tools/RabbitMQ.feature +445 -0
  466. test_holado/features/NonReg/tools/RabbitMQ_steps.feature +276 -0
  467. test_holado/features/NonReg/tools/S3/boto3_client.feature +73 -0
  468. test_holado/features/NonReg/tools/S3/minio_client.feature +75 -0
  469. test_holado/features/NonReg/tools/db_sqlite3.feature +41 -0
  470. test_holado/features/NonReg/tools/sFTP.feature +25 -0
  471. test_holado/features/Test/logger.feature +28 -0
  472. test_holado/features/__init__.py +0 -0
  473. test_holado/logging.conf +41 -0
  474. test_holado/resources/proto/definitions/protobuf/custom_types/field_types.proto +24 -0
  475. test_holado/resources/proto/definitions/protobuf/protobuf.dev/tutorial/addressbook.proto +56 -0
  476. test_holado/resources/proto/generated/protobuf/custom_types/field_types_pb2.py +34 -0
  477. test_holado/resources/proto/generated/protobuf/protobuf/dev/tutorial/addressbook_pb2.py +34 -0
  478. test_holado/resources/scripts/list_tags.sh +2 -0
  479. test_holado/resources/scripts/update_resources_proto_generated.py +70 -0
  480. test_holado/steps/__init__.py +0 -0
  481. test_holado/steps/private_steps.py +20 -0
  482. test_holado/steps/public_steps.py +23 -0
  483. test_holado/test_holado_session_context.py +43 -0
  484. test_holado/tools/django/README.txt +3 -0
  485. test_holado/tools/django/api_grpc/api_grpc/__init__.py +0 -0
  486. test_holado/tools/django/api_grpc/api_grpc/api1/__init__.py +0 -0
  487. test_holado/tools/django/api_grpc/api_grpc/api1/admin.py +3 -0
  488. test_holado/tools/django/api_grpc/api_grpc/api1/apps.py +6 -0
  489. test_holado/tools/django/api_grpc/api_grpc/api1/migrations/__init__.py +0 -0
  490. test_holado/tools/django/api_grpc/api_grpc/api1/models.py +3 -0
  491. test_holado/tools/django/api_grpc/api_grpc/api1/proto/__init__.py +0 -0
  492. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account.proto +27 -0
  493. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2.py +33 -0
  494. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2_grpc.py +199 -0
  495. test_holado/tools/django/api_grpc/api_grpc/api1/serializers.py +12 -0
  496. test_holado/tools/django/api_grpc/api_grpc/api1/services.py +11 -0
  497. test_holado/tools/django/api_grpc/api_grpc/api1/tests.py +3 -0
  498. test_holado/tools/django/api_grpc/api_grpc/api1/views.py +3 -0
  499. test_holado/tools/django/api_grpc/api_grpc/asgi.py +16 -0
  500. test_holado/tools/django/api_grpc/api_grpc/settings.py +126 -0
  501. test_holado/tools/django/api_grpc/api_grpc/urls.py +27 -0
  502. test_holado/tools/django/api_grpc/api_grpc/wsgi.py +16 -0
  503. test_holado/tools/django/api_grpc/db.sqlite3 +0 -0
  504. test_holado/tools/django/api_grpc/manage.py +27 -0
  505. test_holado/tools/django/api_grpc/manual_test_commands.txt +25 -0
  506. test_holado/tools/django/api_rest/api_rest/__init__.py +0 -0
  507. test_holado/tools/django/api_rest/api_rest/api1/__init__.py +0 -0
  508. test_holado/tools/django/api_rest/api_rest/api1/admin.py +3 -0
  509. test_holado/tools/django/api_rest/api_rest/api1/apps.py +6 -0
  510. test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py +0 -0
  511. test_holado/tools/django/api_rest/api_rest/api1/models.py +3 -0
  512. test_holado/tools/django/api_rest/api_rest/api1/serializers.py +15 -0
  513. test_holado/tools/django/api_rest/api_rest/api1/tests.py +3 -0
  514. test_holado/tools/django/api_rest/api_rest/api1/views.py +24 -0
  515. test_holado/tools/django/api_rest/api_rest/asgi.py +16 -0
  516. test_holado/tools/django/api_rest/api_rest/settings.py +133 -0
  517. test_holado/tools/django/api_rest/api_rest/urls.py +32 -0
  518. test_holado/tools/django/api_rest/api_rest/wsgi.py +16 -0
  519. test_holado/tools/django/api_rest/db.sqlite3 +0 -0
  520. test_holado/tools/django/api_rest/manage.py +22 -0
  521. holado-0.2.2.dist-info/RECORD +0 -17
  522. {holado-0.2.2.dist-info → holado-0.2.3.dist-info}/WHEEL +0 -0
  523. {holado-0.2.2.dist-info → holado-0.2.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,61 @@
1
+ @testing_solution
2
+ @python
3
+ Feature: Test python iterable steps
4
+
5
+ @is_in
6
+ Scenario: Get if an element is in an iterable
7
+
8
+ ### PRECONDITIONS - BEGIN
9
+ Given begin preconditions
10
+
11
+ Given LIST_STR = ['v1', 'v2']
12
+ Given STR_IN = 'v1'
13
+ Given STR_NOT_IN = 'x'
14
+
15
+ Given end preconditions
16
+ ### PRECONDITIONS - END
17
+
18
+ Given IS_IN = is 'v1' in ['v1', 'v2']
19
+ Then IS_IN == True
20
+
21
+ Given IS_IN = is 'xx' in ['v1', 'v2']
22
+ Then IS_IN == False
23
+
24
+
25
+ Given IS_IN = is STR_IN in LIST_STR
26
+ Then IS_IN == True
27
+
28
+ Given IS_IN = is STR_NOT_IN in LIST_STR
29
+ Then IS_IN == False
30
+
31
+
32
+ @then_is_in
33
+ Scenario: Verify that element is in an iterable
34
+
35
+ ### PRECONDITIONS - BEGIN
36
+ Given begin preconditions
37
+
38
+ Given LIST_STR = ['v1', 'v2']
39
+ Given STR_IN = 'v1'
40
+ Given STR_NOT_IN = 'x'
41
+
42
+ Given end preconditions
43
+ ### PRECONDITIONS - END
44
+
45
+ Then 'v1' is in ['v1', 'v2']
46
+ Then 'xx' is not in ['v1', 'v2']
47
+
48
+ Then STR_IN is in LIST_STR
49
+ Then STR_NOT_IN is not in LIST_STR
50
+
51
+ Given next step shall fail on exception matching 'VerifyException\(Value is in iterable:.*value: v1.*iterable: \['v1', 'v2'\]\)'
52
+ Then STR_IN is not in LIST_STR
53
+
54
+ Given next step shall fail on exception matching 'VerifyException\(Value is not in iterable:.*value: x.*iterable: \['v1', 'v2'\]\)'
55
+ Then STR_NOT_IN is in LIST_STR
56
+
57
+
58
+
59
+
60
+
61
+
@@ -0,0 +1,101 @@
1
+ @testing_solution
2
+ @python
3
+ @socket
4
+ Feature: Test python socket steps
5
+
6
+ @blocking_socket
7
+ Scenario: Server and client with blocking connections
8
+
9
+ ### PRECONDITIONS - BEGIN
10
+ Given begin preconditions
11
+
12
+ Given PORT = first available anonymous port
13
+ Given SERVER = new echo TCP socket server
14
+ | Name | Value |
15
+ | 'host' | '127.0.0.1' |
16
+ | 'port' | PORT |
17
+
18
+ Given CLIENT = new TCP socket client
19
+ | Name | Value |
20
+ | 'host' | '127.0.0.1' |
21
+ | 'port' | PORT |
22
+
23
+ Given end preconditions
24
+ ### PRECONDITIONS - END
25
+
26
+ # Start echo server
27
+ When start (socket server: SERVER)
28
+
29
+ # Write data and verify result is identical
30
+ When write b'\x01\x02' (socket: CLIENT)
31
+ When DATA = read (socket: CLIENT)
32
+ Then DATA == b'\x01\x02'
33
+
34
+ When write b'\x11\x21' (socket: CLIENT)
35
+ When DATA = read (socket: CLIENT)
36
+ Then DATA == b'\x11\x21'
37
+
38
+ # Stop server & client
39
+ #When stop (socket server: SERVER)
40
+
41
+
42
+
43
+ @message_socket
44
+ Scenario: Echo server and message client with non blocking connection
45
+
46
+ ### PRECONDITIONS - BEGIN
47
+ Given begin preconditions
48
+
49
+ # Use echo server with a blocking connection
50
+ Given PORT = first available anonymous port
51
+ Given SERVER = new echo TCP socket server
52
+ | Name | Value |
53
+ | 'host' | '127.0.0.1' |
54
+ | 'port' | PORT |
55
+
56
+ # Create a message client
57
+ Given CLIENT = new message TCP socket client
58
+ | Name | Value |
59
+ | 'host' | '127.0.0.1' |
60
+ | 'port' | PORT |
61
+ | 'separator' | b'\n' |
62
+
63
+ Given end preconditions
64
+ ### PRECONDITIONS - END
65
+
66
+ # Start echo server & message client
67
+ When start (socket server: SERVER)
68
+ When start (socket client: CLIENT)
69
+
70
+ # Write data and verify result is identical
71
+ When write message b'\x01\x02' (socket: CLIENT)
72
+ When write message b'\x11\x21' (socket: CLIENT)
73
+
74
+ # Verify received messages
75
+ When wait socket CLIENT stops to receive messages (window: 0.1 s)
76
+ When MESSAGES = received messages (socket: CLIENT)
77
+ Then MESSAGES is list
78
+ | b'\x01\x02' |
79
+ | b'\x11\x21' |
80
+
81
+ When MESSAGES_2 = received messages (socket: CLIENT)
82
+ Then MESSAGES_2 == MESSAGES
83
+
84
+ # Verify pop messages functionality
85
+ When MSG_1 = read message (socket: CLIENT)
86
+ Then MSG_1 == b'\x01\x02'
87
+ When MESSAGES_3 = received messages (socket: CLIENT)
88
+ Then MESSAGES_3 is list
89
+ | b'\x11\x21' |
90
+
91
+ When MSG_2 = read message (socket: CLIENT)
92
+ Then MSG_2 == b'\x11\x21'
93
+ When MESSAGES_4 = received messages (socket: CLIENT)
94
+ Then MESSAGES_4 is empty list
95
+
96
+ # Stop server & client
97
+ #When stop (socket server: SERVER)
98
+ When stop (socket client: CLIENT)
99
+
100
+
101
+
@@ -0,0 +1,180 @@
1
+ @testing_solution
2
+ @python
3
+ @socket
4
+ @ssl
5
+ Feature: Test python socket steps with ssl
6
+
7
+ @blocking_socket
8
+ Scenario: Server and client with blocking connections
9
+
10
+ ### PRECONDITIONS - BEGIN
11
+ Given begin preconditions
12
+
13
+ # Get files of a self-signed certificate
14
+ Given CERTFILE_PATH = certfile path for localhost
15
+ Given KEYFILE_PATH = keyfile path for localhost
16
+
17
+ # Use echo server with a blocking connection
18
+ Given PORT = first available anonymous port
19
+ Given SERVER = new echo TCP socket server
20
+ | Name | Value |
21
+ | 'host' | 'localhost' |
22
+ | 'port' | PORT |
23
+ | 'ssl.activate' | True |
24
+ | 'ssl.context.ciphers' | 'SHA256' |
25
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
26
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
27
+
28
+ # Create a TCP client with a blocking connection
29
+ Given CLIENT = new TCP socket client
30
+ | Name | Value |
31
+ | 'host' | 'localhost' |
32
+ | 'port' | PORT |
33
+ | 'ssl.activate' | True |
34
+ | 'ssl.context.check_hostname' | True |
35
+ | 'ssl.context.load_verify_locations.cafile' | CERTFILE_PATH |
36
+
37
+ Given end preconditions
38
+ ### PRECONDITIONS - END
39
+
40
+ # Start echo server
41
+ When start (socket server: SERVER)
42
+
43
+ # Write data and verify result is identical
44
+ When write b'\x01\x02' (socket: CLIENT)
45
+ When DATA = read (socket: CLIENT)
46
+ Then DATA == b'\x01\x02'
47
+
48
+ When write b'\x11\x21' (socket: CLIENT)
49
+ When DATA = read (socket: CLIENT)
50
+ Then DATA == b'\x11\x21'
51
+
52
+ # Stop server
53
+ #When stop (socket server: SERVER)
54
+
55
+
56
+ @non_blocking_socket
57
+ Scenario: Server and client with non blocking connection
58
+
59
+ ### PRECONDITIONS - BEGIN
60
+ Given begin preconditions
61
+
62
+ # Get files of a self-signed certificate
63
+ Given CERTFILE_PATH = certfile path for localhost
64
+ Given KEYFILE_PATH = keyfile path for localhost
65
+
66
+ # Use echo server with a blocking connection
67
+ Given PORT = first available anonymous port
68
+ Given SERVER = new echo TCP socket server
69
+ | Name | Value |
70
+ | 'host' | 'localhost' |
71
+ | 'port' | PORT |
72
+ | 'ssl.activate' | True |
73
+ | 'ssl.context.ciphers' | 'SHA256' |
74
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
75
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
76
+
77
+ # Create a TCP client with a blocking connection
78
+ Given CLIENT = new TCP socket client
79
+ | Name | Value |
80
+ | 'host' | 'localhost' |
81
+ | 'port' | PORT |
82
+ | 'blocking' | False |
83
+ | 'ssl.activate' | True |
84
+ | 'ssl.context.check_hostname' | True |
85
+ | 'ssl.context.load_verify_locations.cafile' | CERTFILE_PATH |
86
+
87
+ Given end preconditions
88
+ ### PRECONDITIONS - END
89
+
90
+ # Start echo server & client
91
+ When start (socket server: SERVER)
92
+ When start (socket client: CLIENT)
93
+
94
+ # Write data and verify result is identical
95
+ When write b'\x01\x02' (socket: CLIENT)
96
+ When wait socket CLIENT stops to receive data (window: 0.1 s)
97
+ When DATA = read (socket: CLIENT)
98
+ Then DATA == b'\x01\x02'
99
+
100
+ When write b'\x11\x21' (socket: CLIENT)
101
+ When wait socket CLIENT stops to receive data (window: 0.1 s)
102
+ When DATA = read (socket: CLIENT)
103
+ Then DATA == b'\x11\x21'
104
+
105
+ # Stop server & client
106
+ #When stop (socket server: SERVER)
107
+ When stop (socket client: CLIENT)
108
+
109
+
110
+
111
+ @message_socket
112
+ Scenario: Echo server and message client (with underlying non blocking connection)
113
+
114
+ ### PRECONDITIONS - BEGIN
115
+ Given begin preconditions
116
+
117
+ # Get files of a self-signed certificate
118
+ Given CERTFILE_PATH = certfile path for localhost
119
+ Given KEYFILE_PATH = keyfile path for localhost
120
+
121
+ # Use echo server with a blocking connection
122
+ Given PORT = first available anonymous port
123
+ Given SERVER = new echo TCP socket server
124
+ | Name | Value |
125
+ | 'host' | 'localhost' |
126
+ | 'port' | PORT |
127
+ | 'ssl.activate' | True |
128
+ | 'ssl.context.ciphers' | 'SHA256' |
129
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
130
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
131
+
132
+ # Create a message client
133
+ Given CLIENT = new message TCP socket client
134
+ | Name | Value |
135
+ | 'host' | 'localhost' |
136
+ | 'port' | PORT |
137
+ | 'separator' | b'\n' |
138
+ | 'ssl.activate' | True |
139
+ | 'ssl.context.check_hostname' | True |
140
+ | 'ssl.context.load_verify_locations.cafile' | CERTFILE_PATH |
141
+
142
+ Given end preconditions
143
+ ### PRECONDITIONS - END
144
+
145
+ # Start echo server & message client
146
+ When start (socket server: SERVER)
147
+ When start (socket client: CLIENT)
148
+
149
+ # Write data and verify result is identical
150
+ When write message b'\x01\x02' (socket: CLIENT)
151
+ When write message b'\x11\x21' (socket: CLIENT)
152
+
153
+ # Verify received messages
154
+ When wait socket CLIENT stops to receive messages (window: 0.1 s)
155
+ When MESSAGES = received messages (socket: CLIENT)
156
+ Then MESSAGES is list
157
+ | b'\x01\x02' |
158
+ | b'\x11\x21' |
159
+
160
+ When MESSAGES_2 = received messages (socket: CLIENT)
161
+ Then MESSAGES_2 == MESSAGES
162
+
163
+ # Verify pop messages functionality
164
+ When MSG_1 = read message (socket: CLIENT)
165
+ Then MSG_1 == b'\x01\x02'
166
+ When MESSAGES_3 = received messages (socket: CLIENT)
167
+ Then MESSAGES_3 is list
168
+ | b'\x11\x21' |
169
+
170
+ When MSG_2 = read message (socket: CLIENT)
171
+ Then MSG_2 == b'\x11\x21'
172
+ When MESSAGES_4 = received messages (socket: CLIENT)
173
+ Then MESSAGES_4 is empty list
174
+
175
+ # Stop server & client
176
+ #When stop (socket server: SERVER)
177
+ When stop (socket client: CLIENT)
178
+
179
+
180
+
@@ -0,0 +1,18 @@
1
+ @testing_solution
2
+ @DynamicTextManager
3
+ Feature: Features related to DynamicTextManager
4
+
5
+ Scenario: dynamic string compare
6
+
7
+ Given VAR = 'test'%
8
+
9
+ Then VAR == 'test'%
10
+ #Then VAR == '${MatchPattern(test[a-zA-Z0-9]{6})}'
11
+ Then VAR != 'test'
12
+ Then VAR < 'tesu'
13
+
14
+ Then 'test'% == VAR
15
+ #Then '${MatchPattern(test[a-zA-Z0-9]{6})}' == VAR
16
+ Then 'test' != VAR
17
+ Then 'test' < VAR
18
+
@@ -0,0 +1,185 @@
1
+ @testing_solution
2
+ @expression_evaluator
3
+ Feature: Features related to expression_evaluator
4
+
5
+ Scenario: Expressions in tables
6
+
7
+ Given VAL_5 = 5
8
+ Given VAL_9 = 9
9
+ Given VAL_10 = 10
10
+ Given VAL_11 = 11
11
+ Given VAL_20 = 20
12
+
13
+ #Given TABLE = table
14
+ #| Name | Value |
15
+ #| 'name' | VAL |
16
+ #| 'name +' | VAL + 1 |
17
+ #| 'name -' | VAL - 1 |
18
+ Given TABLE = convert json '{"name": 10, "name +": 11, "name -": 9}' to name/value table with names uncollapsed
19
+
20
+ Then table TABLE is
21
+ | Name | Value |
22
+ | 'name' | 10 |
23
+ | 'name +' | 11 |
24
+ | 'name -' | 9 |
25
+
26
+ Then table TABLE is
27
+ | Name | Value |
28
+ | 'name' | VAL_10 |
29
+ | 'name +' | ${VAL_10} + 1 |
30
+ | 'name -' | ${VAL_10} - 1 |
31
+
32
+ Then table TABLE is
33
+ | Name | Value |
34
+ | 'name' | ${VAL_9} + 1 |
35
+ | 'name +' | ${VAL_9} + 2 |
36
+ | 'name -' | ${VAL_11} - 2 |
37
+
38
+ Then table TABLE is
39
+ | Name | Value |
40
+ | 'name' | ${VAL_20} / 2 |
41
+ | 'name +' | ${VAL_5} * 2 + 1 |
42
+ | 'name -' | ${VAL_5} * 2 - 1 |
43
+
44
+
45
+ @expression_assignment
46
+ Scenario: Expressions in assignment
47
+
48
+ Given VAL = ${int(32)}
49
+ Then VAL == 32
50
+
51
+ Given VAL = ${32}
52
+ Then VAL == 32
53
+
54
+ Given VAL = ${128} >> 2
55
+ Then VAL == 32
56
+
57
+ Given X = 128
58
+ Given VAL = ${X} >> 2 if ${X} >= 64 else ${X} >> 1
59
+ Then VAL == 32
60
+
61
+ Given X = 32
62
+ Given VAL = ${X} >> 2 if ${X} >= 64 else ${X} >> 1
63
+ Then VAL == 16
64
+
65
+ Given X = 32
66
+ Given VAL = ${X} + 1
67
+ Then VAL == 33
68
+
69
+ Given LIST = [1, 2, 3]
70
+ Given INDEX = 1
71
+ Given VAL = ${LIST[${INDEX}]}
72
+ Then VAL == 2
73
+
74
+ Given LIST_STR = '[1, 2, 3]'
75
+ Given LIST = ${list(${LIST_STR})}
76
+ Given INDEX = 1
77
+ Given VAL = ${LIST[${INDEX}]}
78
+ Then VAL == 2
79
+
80
+ @timedelta
81
+ Scenario: timedelta
82
+ ### PRECONDITIONS - BEGIN
83
+ Given begin preconditions
84
+
85
+ Given DT_1 = datetime now
86
+ Given DT_2 = DT_1 + 3 seconds
87
+ Given EXPECTED = ${datetime.timedelta(seconds=3)}
88
+
89
+ Given end preconditions
90
+ ### PRECONDITIONS - END
91
+
92
+ Given DELTA = ${DT_2} - ${DT_1}
93
+ Then DELTA == EXPECTED
94
+
95
+ Scenario: Expressions in for and if
96
+ ### PRECONDITIONS - BEGIN
97
+ Given begin preconditions
98
+
99
+ Given VAL_5 = 5
100
+ Given VAL_9 = 9
101
+ Given VAL_10 = 10
102
+ Given VAL_11 = 11
103
+ Given VAL_20 = 20
104
+
105
+ Given TABLE = convert json '{"name": 10, "name +": 11, "name -": 9}' to name/value table with names uncollapsed
106
+
107
+ Given end preconditions
108
+ ### PRECONDITIONS - END
109
+
110
+ Given for N in range(0,2):
111
+ Given VAL_5_1 = ${VAL_5} - 1
112
+ Given VAL_5_N = ${VAL_5} - ${N}
113
+
114
+ Then VAL_5_1 == 4
115
+ Then table TABLE is
116
+ | Name | Value |
117
+ | 'name' | VAL_10 |
118
+ | 'name +' | ${VAL_10} + 1 |
119
+ | 'name -' | ${VAL_10} - 1 |
120
+
121
+ Given if ${N} == 0:
122
+ Then VAL_5_N == 5
123
+
124
+ Then table TABLE is
125
+ | Name | Value |
126
+ | 'name' | VAL_10 |
127
+ | 'name +' | ${VAL_10} + 1 |
128
+ | 'name -' | ${VAL_10} - 1 |
129
+ Given else:
130
+ Then VAL_5_N == 4
131
+
132
+ Then table TABLE is
133
+ | Name | Value |
134
+ | 'name' | VAL_10 |
135
+ | 'name +' | ${VAL_10} + ${N} |
136
+ | 'name -' | ${VAL_10} - ${N} |
137
+ Given end if
138
+ Given end for
139
+
140
+
141
+ @expression_if
142
+ Scenario: Expressions in if
143
+ ### PRECONDITIONS - BEGIN
144
+ Given begin preconditions
145
+
146
+ Given VAL_5 = 5
147
+ Given VAL_9 = 9
148
+ Given VAL_10 = 10
149
+ Given VAL_11 = 11
150
+ Given VAL_20 = 20
151
+
152
+ Given TABLE = convert json '{"name": 10, "name +": 11, "name -": 9}' to name/value table with names uncollapsed
153
+
154
+ Given end preconditions
155
+ ### PRECONDITIONS - END
156
+
157
+ Given INDEX = 2
158
+ Given N_2 = 5
159
+ Given if ${N_${INDEX}} == 3:
160
+ Given RESULT = 13
161
+ Given else if ${N_${INDEX}} == 5:
162
+ Given RESULT = 15
163
+ Given else:
164
+ Given RESULT = 10
165
+ Given end if
166
+
167
+ Then RESULT == 15
168
+
169
+ @string_evaluation
170
+ Scenario: String evaluation
171
+ Given INDEX = 3
172
+ Given TEXT = 'toto.tata[${INDEX}]'
173
+ Then TEXT == 'toto.tata[3]'
174
+
175
+ Given TABLE = table with header
176
+ | Name | Value |
177
+ | 'toto.tata[${INDEX}]' | 5 |
178
+ Then table TABLE is
179
+ | Name | Value |
180
+ | 'toto.tata[3]' | 5 |
181
+
182
+ Given TOTO = 'toto'
183
+ Given TEXT = 'TOTO.tata[${INDEX}]'
184
+ Then TEXT == 'TOTO.tata[3]'
185
+
@@ -0,0 +1,71 @@
1
+ @testing_solution
2
+ @VariableManager
3
+ Feature: Features related to VariableManager
4
+
5
+ Scenario: basic variable use
6
+ Given VAR1 = 'test'
7
+ Given VAR2 = VAR1
8
+ Then VAR1 == 'test'
9
+ Then VAR2 == 'test'
10
+ Then VAR1 == VAR2
11
+
12
+ Scenario: string compare
13
+ Then 'test' == 'test'
14
+ Then 'test' != 'test1'
15
+ Then 'test' <= 'test'
16
+ Then 'test' <= 'tesu'
17
+ Then 'test' < 'tesu'
18
+
19
+ Given VAR = 'test'
20
+
21
+ Then VAR == 'test'
22
+ Then VAR != 'test1'
23
+ Then VAR <= 'test'
24
+ Then VAR <= 'tesu'
25
+ Then VAR < 'tesu'
26
+
27
+ Then 'test' == VAR
28
+ Then 'test1' != VAR
29
+ Then 'test' <= VAR
30
+ Then 'tess' <= VAR
31
+ Then 'tess' < VAR
32
+ Then 'tesu' > VAR
33
+
34
+ @list
35
+ Scenario: List of ids
36
+ Given LISTVAR = list
37
+ | 1 |
38
+ | 0 |
39
+ | 5 |
40
+
41
+ Then [1, 0, 5] == ${LISTVAR}
42
+ Then '[1, 0, 5]' != ${LISTVAR}
43
+ Then '[1, 0, 5]' == '${LISTVAR}'
44
+
45
+ Then '[1, 0, 5]' == str(${LISTVAR})
46
+ # In next expression, after having casted to str, ${} makes an evaluation of obtained string, thus result of ${str(LISTVAR)} is a list
47
+ Then '[1, 0, 5]' != ${str(LISTVAR)}
48
+ Then [1, 0, 5] == ${str(LISTVAR)}
49
+
50
+ Scenario: Comprehension expression
51
+ Given LISTVAR = list(range(0,5))
52
+ Then LISTVAR == [0, 1, 2, 3, 4]
53
+
54
+ Given RES = list of ${X} * 2 for X in LISTVAR
55
+ Then RES == [0, 2, 4, 6, 8]
56
+
57
+ Scenario: Sorted
58
+ Given VAL = [2,4,0,3,1]
59
+ Given RES = sorted VAL
60
+ Then RES == [0, 1, 2, 3, 4]
61
+
62
+ Given VAL = [(0,2),(1,4),(2,0),(3,3),(4,1)]
63
+ Given RES = sorted VAL by x: x[1]
64
+ Then RES == [(2,0),(4,1),(0,2),(3,3),(1,4)]
65
+
66
+ Scenario: Call python builtin functions
67
+ Given VAL_FLOAT = 2.568
68
+ When VAL_INT = round(${VAL_FLOAT})
69
+ Then VAL_INT == 3
70
+
71
+
@@ -0,0 +1,21 @@
1
+ @testing_solution
2
+ @TextInterpreter
3
+ @error
4
+ Feature: Features related to TextInterpreter
5
+
6
+ @HexToBytes
7
+ Scenario: function HexToBytes
8
+
9
+ Given HEX = '\x2d569F'
10
+ Given next step shall fail on exception matching 'Source \[-569F\] \(type: str\) is not an hexadecimal string'
11
+ Given VALUE_1 = ${HexToBytes(HEX)}
12
+
13
+ Given TABLE = table with header
14
+ | Name | Value |
15
+ | 'test' | ${HexToBytes(HEX)} |
16
+ Given next step shall fail on exception matching 'Source \[-569F\] \(type: str\) is not an hexadecimal string'
17
+ Then table TABLE is
18
+ | Name | Value |
19
+ | 'test' | 'PIPO' |
20
+
21
+