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,276 @@
1
+ @testing_solution
2
+ @rabbitmq
3
+ @steps
4
+ Feature: Test RabbitMQ steps
5
+
6
+ @doesnt_receive_message
7
+ Scenario: Consumer doesn't receive messages
8
+ ### PRECONDITIONS - BEGIN
9
+ Given begin preconditions
10
+
11
+ Given SERVER = new RabbitMQ server
12
+ When run as docker the RabbitMQ server SERVER on ports (5673, 15673)
13
+
14
+ Given CLIENT = new RabbitMQ client with rapid close
15
+ When connect with a blocking connection (RMQ client: CLIENT)
16
+ | Name | Value |
17
+ | 'host' | 'localhost' |
18
+ | 'port' | 5673 |
19
+
20
+ Given CONSUMER = new buffer consumer on queue 'test' (RMQ client: CLIENT)
21
+ When start consuming (RMQ client: CLIENT)
22
+
23
+ Given end preconditions
24
+ ### PRECONDITIONS - END
25
+
26
+ Then consumer CONSUMER doesn't receive any message (timeout: 0.3 s ; polling: 0.001 s)
27
+ Given DUR = last step duration
28
+
29
+ Then DUR >= 0.3
30
+ Then DUR < 0.4
31
+
32
+ When close (RMQ client: CLIENT)
33
+ When stop (RMQ server: SERVER)
34
+
35
+
36
+
37
+ @wait_consumer_receives_messages
38
+ Scenario: Wait consumer receives messages
39
+ ### PRECONDITIONS - BEGIN
40
+ Given begin preconditions
41
+
42
+ Given SERVER = new RabbitMQ server
43
+ When run as docker the RabbitMQ server SERVER on ports (5673, 15673)
44
+
45
+ Given CLIENT_PUB = new RabbitMQ client with rapid close
46
+ When connect with a blocking connection (RMQ client: CLIENT_PUB)
47
+ | Name | Value |
48
+ | 'host' | 'localhost' |
49
+ | 'port' | 5673 |
50
+ Given PUBLISHER = new publisher on queue 'test' (RMQ client: CLIENT_PUB)
51
+ Given start data events processing (RMQ client: CLIENT_PUB)
52
+
53
+ Given CLIENT = new RabbitMQ client with rapid close
54
+ When connect with a blocking connection (RMQ client: CLIENT)
55
+ | Name | Value |
56
+ | 'host' | 'localhost' |
57
+ | 'port' | 5673 |
58
+
59
+ Given CONSUMER = new buffer consumer on queue 'test' (RMQ client: CLIENT)
60
+ When start consuming (RMQ client: CLIENT)
61
+
62
+ Given end preconditions
63
+ ### PRECONDITIONS - END
64
+
65
+ # Use case:
66
+ # - message takes time to arrive
67
+ # - message arrives before timeout
68
+ Given PUB_THREAD = new thread that calls steps
69
+ """
70
+ When wait 0.3 seconds
71
+ When publish 'test message' (RMQ publisher: PUBLISHER)
72
+
73
+ When wait 0.3 seconds
74
+ When publish 'test message' (RMQ publisher: PUBLISHER)
75
+ """
76
+
77
+ When start thread PUB_THREAD
78
+ When wait consumer CONSUMER receives messages (timeout: 1 s ; polling: 0.001 s)
79
+ Given DUR = last step duration
80
+
81
+ Then consumer CONSUMER received 1 messages
82
+
83
+ Then DUR >= 0.3
84
+ Then DUR < 0.4
85
+
86
+ When join thread PUB_THREAD
87
+
88
+
89
+ # Use case:
90
+ # - message takes time to arrive
91
+ # - message arrives after timeout
92
+
93
+ # Wait a little before resetting consumer, in case last publish is received after reset
94
+ Given wait 0.2 seconds
95
+ Given reset stored messages in consumer CONSUMER
96
+
97
+ Given PUB_THREAD = new thread that calls steps
98
+ """
99
+ When wait 0.5 seconds
100
+ When publish 'test message' (RMQ publisher: PUBLISHER)
101
+ """
102
+
103
+ When start thread PUB_THREAD
104
+ Given next step shall fail on exception matching 'No message was received \(timeout: 0.3 seconds\)'
105
+ When wait consumer CONSUMER receives messages (timeout: 0.3 s ; polling: 0.001 s)
106
+ Given DUR = last step duration
107
+
108
+ Then DUR >= 0.3
109
+ Then DUR < 0.4
110
+
111
+ When join thread PUB_THREAD
112
+
113
+
114
+
115
+ # Use case:
116
+ # - 1 message arrives rapidely
117
+ # - messages arrive before timeout
118
+
119
+ # Wait a little before resetting consumer, in case last publish is received after reset
120
+ Given wait 0.2 seconds
121
+ Given reset stored messages in consumer CONSUMER
122
+
123
+ Given PUB_THREAD = new thread that calls steps
124
+ """
125
+ When publish 'test message' (RMQ publisher: PUBLISHER)
126
+
127
+ When wait 0.5 seconds
128
+ When publish 'test message' (RMQ publisher: PUBLISHER)
129
+ """
130
+
131
+ When start thread PUB_THREAD
132
+ When wait consumer CONSUMER receives messages (timeout: 0.3 s ; polling: 0.001 s)
133
+ Given DUR = last step duration
134
+
135
+ Then consumer CONSUMER received 1 messages
136
+
137
+ Then DUR >= 0.001
138
+ Then DUR < 0.1
139
+
140
+ When join thread PUB_THREAD
141
+
142
+
143
+ # Close
144
+ When close (RMQ client: CLIENT_PUB)
145
+ When close (RMQ client: CLIENT)
146
+ When stop (RMQ server: SERVER)
147
+
148
+
149
+
150
+ @wait_consumer_stops_to_receive_messages
151
+ Scenario: Wait consumer stops to receive messages
152
+ ### PRECONDITIONS - BEGIN
153
+ Given begin preconditions
154
+
155
+ Given SERVER = new RabbitMQ server
156
+ When run as docker the RabbitMQ server SERVER on ports (5673, 15673)
157
+
158
+ Given CLIENT_PUB = new RabbitMQ client with rapid close
159
+ When connect with a blocking connection (RMQ client: CLIENT_PUB)
160
+ | Name | Value |
161
+ | 'host' | 'localhost' |
162
+ | 'port' | 5673 |
163
+ Given PUBLISHER = new publisher on queue 'test' (RMQ client: CLIENT_PUB)
164
+ Given start data events processing (RMQ client: CLIENT_PUB)
165
+
166
+ Given CLIENT = new RabbitMQ client with rapid close
167
+ When connect with a blocking connection (RMQ client: CLIENT)
168
+ | Name | Value |
169
+ | 'host' | 'localhost' |
170
+ | 'port' | 5673 |
171
+
172
+ Given CONSUMER = new buffer consumer on queue 'test' (RMQ client: CLIENT)
173
+ When start consuming (RMQ client: CLIENT)
174
+
175
+ Given end preconditions
176
+ ### PRECONDITIONS - END
177
+
178
+ # Use case:
179
+ # - first message takes time to arrive
180
+ # - first message arrives before first timeout
181
+ Given PUB_THREAD = new thread that calls steps
182
+ """
183
+ When wait 0.5 seconds
184
+ When publish 'test message' (RMQ publisher: PUBLISHER)
185
+
186
+ When wait 0.01 seconds
187
+ When publish 'test message' (RMQ publisher: PUBLISHER)
188
+
189
+ When wait 0.1 seconds
190
+ When publish 'test message' (RMQ publisher: PUBLISHER)
191
+
192
+ When wait 0.3 seconds
193
+ When publish 'test message' (RMQ publisher: PUBLISHER)
194
+
195
+ When wait 0.3 seconds
196
+ When publish 'test message' (RMQ publisher: PUBLISHER)
197
+ """
198
+
199
+ When start thread PUB_THREAD
200
+ When wait consumer CONSUMER stops to receive messages (first timeout: 1 s ; window: 0.12 s ; polling: 0.001 s)
201
+ Given DUR = last step duration
202
+
203
+ Then consumer CONSUMER received 3 messages
204
+
205
+ Then DUR >= 0.73
206
+ Then DUR < 0.83
207
+
208
+ When join thread PUB_THREAD
209
+
210
+
211
+ # Use case:
212
+ # - first message takes time to arrive
213
+ # - first message arrives after first timeout
214
+ When wait consumer CONSUMER stops to receive messages (window: 0.2 s ; polling: 0.001 s ; raise: False)
215
+ Given reset stored messages in consumer CONSUMER
216
+ Given PUB_THREAD = new thread that calls steps
217
+ """
218
+ When wait 0.5 seconds
219
+ When publish 'test message' (RMQ publisher: PUBLISHER)
220
+ """
221
+
222
+ When start thread PUB_THREAD
223
+ Given next step shall fail on exception matching 'No message was received \(timeout: 0.3 seconds\)'
224
+ When wait consumer CONSUMER stops to receive messages (first timeout: 0.3 s ; window: 0.12 s ; polling: 0.001 s)
225
+ Given DUR = last step duration
226
+
227
+ Then DUR >= 0.3
228
+ Then DUR < 0.4
229
+
230
+ When join thread PUB_THREAD
231
+
232
+
233
+
234
+ # Use case:
235
+ # - first message arrives rapidely
236
+ # - first message arrives before first timeout
237
+ When wait consumer CONSUMER stops to receive messages (window: 0.2 s ; polling: 0.001 s ; raise: False)
238
+ Given reset stored messages in consumer CONSUMER
239
+ Given PUB_THREAD = new thread that calls steps
240
+ """
241
+ When publish 'test message' (RMQ publisher: PUBLISHER)
242
+
243
+ When wait 0.01 seconds
244
+ When publish 'test message' (RMQ publisher: PUBLISHER)
245
+
246
+ When wait 0.1 seconds
247
+ When publish 'test message' (RMQ publisher: PUBLISHER)
248
+
249
+ When wait 0.3 seconds
250
+ When publish 'test message' (RMQ publisher: PUBLISHER)
251
+
252
+ When wait 0.3 seconds
253
+ When publish 'test message' (RMQ publisher: PUBLISHER)
254
+ """
255
+
256
+ When start thread PUB_THREAD
257
+ When wait consumer CONSUMER stops to receive messages (first timeout: 1 s ; window: 0.12 s ; polling: 0.001 s)
258
+ Given DUR = last step duration
259
+
260
+ Then consumer CONSUMER received 3 messages
261
+
262
+ Then DUR >= 0.23
263
+ Then DUR < 0.33
264
+
265
+ When join thread PUB_THREAD
266
+
267
+
268
+ # Close
269
+ When close (RMQ client: CLIENT_PUB)
270
+ When close (RMQ client: CLIENT)
271
+ When stop (RMQ server: SERVER)
272
+
273
+
274
+
275
+
276
+
@@ -0,0 +1,73 @@
1
+ @testing_solution
2
+ @s3
3
+ @boto3
4
+ Feature: Test Boto3 S3 client module
5
+
6
+ @go_nogo
7
+ Scenario: Simple file put and get
8
+
9
+ ### PRECONDITIONS - BEGIN
10
+ Given begin preconditions
11
+
12
+ Given SERVER = start internal S3 server
13
+
14
+ Given CLIENT = new internal Boto3 S3 client
15
+
16
+ Given end preconditions
17
+ ### PRECONDITIONS - END
18
+
19
+ # Verify buckets are empty
20
+ When RESULT = list of buckets (S3 client: CLIENT)
21
+ Then RESULT is empty list
22
+
23
+ # Create bucket and verify it is empty
24
+ When create bucket 'my-bucket' (S3 client: CLIENT)
25
+
26
+ When RESULT = list of buckets (S3 client: CLIENT)
27
+ Then RESULT is list
28
+ | 'my-bucket' |
29
+
30
+ When RESULT = list of objects in bucket 'my-bucket' (S3 client: CLIENT)
31
+ When RESULT = convert list RESULT to table with object attributes as columns
32
+ Then table RESULT is empty
33
+
34
+ # Add a file with 2 keys
35
+ Given FILE = create CSV file with prefix 'file'
36
+ | Column 1 | Column 2 |
37
+ | 'Value 1' | 'Value 2' |
38
+ Given FILE_CONTENT = content of file FILE
39
+
40
+ When put file FILE in object 'file1' in bucket 'my-bucket' (S3 client: CLIENT)
41
+ When put file FILE in object '/tmp/file1' in bucket 'my-bucket' (S3 client: CLIENT)
42
+
43
+ # Verify bucket objects
44
+ When RESULT = list of objects in bucket 'my-bucket' (S3 client: CLIENT)
45
+ When RESULT = convert list RESULT to table with object attributes as columns
46
+ Then table RESULT is
47
+ | Key | LastModified | ETag | ChecksumAlgorithm | Size | StorageClass |
48
+ | '/tmp/file1' | N/A | N/A | N/A | 36 | N/A |
49
+ | 'file1' | N/A | N/A | N/A | 36 | N/A |
50
+
51
+ # Verify bucket objects with filters
52
+ When RESULT = list of objects in bucket 'my-bucket' (S3 client: CLIENT)
53
+ | Prefix |
54
+ | 'file' |
55
+ When RESULT = convert list RESULT to table with object attributes as columns
56
+ Then table RESULT is
57
+ | Key | LastModified | ETag | ChecksumAlgorithm | Size | StorageClass |
58
+ | 'file1' | N/A | N/A | N/A | 36 | N/A |
59
+
60
+ # WARNING: verification of file content is commented due to a problem of access denied in Moto server
61
+ Given next step shall fail on exception matching 'An error occurred \(403\) when calling the GetObject operation: Forbidden'
62
+ When RESULT_GET = data of object 'file1' in bucket 'my-bucket' (S3 client: CLIENT)
63
+ #Then RESULT_GET == FILE_CONTENT
64
+
65
+ Given DEST_PATH = scenario report directory 's3_client'
66
+ Given OBTAINED_FILE = '${DEST_PATH}/obtained_file1.csv'
67
+
68
+ # WARNING: verification of file content is commented due to an incompatibility between Minio client and Moto server
69
+ Given next step shall fail on exception matching 'An error occurred \(403\) when calling the HeadObject operation: Forbidden'
70
+ When get file OBTAINED_FILE from object 'file1' in bucket 'my-bucket' (S3 client: CLIENT)
71
+ #Given OBTAINED_FILE_CONTENT = content of file OBTAINED_FILE
72
+ #Then OBTAINED_FILE_CONTENT == FILE_CONTENT
73
+
@@ -0,0 +1,75 @@
1
+ @testing_solution
2
+ @s3
3
+ @minio
4
+ Feature: Test Minio S3 client module
5
+
6
+ @go_nogo
7
+ @need_update
8
+ Scenario: Simple file put and get
9
+
10
+ ### PRECONDITIONS - BEGIN
11
+ Given begin preconditions
12
+
13
+ Given SERVER = start internal S3 server
14
+
15
+ Given CLIENT = new internal Minio S3 client
16
+
17
+ Given end preconditions
18
+ ### PRECONDITIONS - END
19
+
20
+ # Verify buckets are empty
21
+ When RESULT = list of buckets (S3 client: CLIENT)
22
+ Then RESULT is empty list
23
+
24
+ # Create bucket and verify it is empty
25
+ When create bucket 'my-bucket' (S3 client: CLIENT)
26
+
27
+ When RESULT = list of buckets (S3 client: CLIENT)
28
+ Then RESULT is list
29
+ | 'my-bucket' |
30
+
31
+ When RESULT = list of objects in bucket 'my-bucket' (S3 client: CLIENT)
32
+ When RESULT = convert list RESULT to table with object attributes as columns
33
+ Then table RESULT is empty
34
+
35
+ # Add a file with 2 keys
36
+ Given FILE = create CSV file with prefix 'file'
37
+ | Column 1 | Column 2 |
38
+ | 'Value 1' | 'Value 2' |
39
+ Given FILE_CONTENT = content of file FILE
40
+
41
+ When put file FILE in object 'file1' in bucket 'my-bucket' (S3 client: CLIENT)
42
+ When put file FILE in object '/tmp/file1' in bucket 'my-bucket' (S3 client: CLIENT)
43
+
44
+ # Verify bucket objects
45
+ When RESULT = list of objects in bucket 'my-bucket' (S3 client: CLIENT)
46
+ When RESULT = convert list RESULT to table with object attributes as columns
47
+ Then table RESULT is
48
+ | bucket_name | content_type | etag | is_delete_marker | is_dir | is_latest | last_modified | metadata | object_name | owner_id | owner_name | size | storage_class | version_id |
49
+ | 'my-bucket' | N/A | N/A | N/A | False | N/A | N/A | N/A | '/tmp/file1' | N/A | N/A | 36 | N/A | N/A |
50
+ | 'my-bucket' | N/A | N/A | N/A | False | N/A | N/A | N/A | 'file1' | N/A | N/A | 36 | N/A | N/A |
51
+
52
+ # Verify bucket objects with filters
53
+ When RESULT = list of objects in bucket 'my-bucket' (S3 client: CLIENT)
54
+ | prefix |
55
+ | 'file' |
56
+ When RESULT = convert list RESULT to table with object attributes as columns
57
+ Then table RESULT is
58
+ | bucket_name | content_type | etag | is_delete_marker | is_dir | is_latest | last_modified | metadata | object_name | owner_id | owner_name | size | storage_class | version_id |
59
+ | 'my-bucket' | N/A | N/A | N/A | False | N/A | N/A | N/A | 'file1' | N/A | N/A | 36 | N/A | N/A |
60
+
61
+
62
+ # WARNING: verification of file content is commented due to an incompatibility between Minio client and Moto server
63
+ Given next step shall fail on exception matching 'Response code: 403'
64
+ When RESULT_GET = data of object 'file1' in bucket 'my-bucket' (S3 client: CLIENT)
65
+ #Then RESULT_GET == FILE_CONTENT
66
+
67
+ Given DEST_PATH = scenario report directory 's3_client'
68
+ Given OBTAINED_FILE = '${DEST_PATH}/obtained_file1.csv'
69
+
70
+ # WARNING: verification of file content is commented due to an incompatibility between Minio client and Moto server
71
+ Given next step shall fail on exception matching 'Access denied'
72
+ When get file OBTAINED_FILE from object 'file1' in bucket 'my-bucket' (S3 client: CLIENT)
73
+ #Given OBTAINED_FILE_CONTENT = content of file OBTAINED_FILE
74
+ #Then OBTAINED_FILE_CONTENT == FILE_CONTENT
75
+
@@ -0,0 +1,41 @@
1
+ @testing_solution
2
+ @db
3
+ @sqlite3
4
+ Feature: Test DB module with Sqlite3
5
+
6
+ Scenario: Simple example
7
+
8
+ ### PRECONDITIONS - BEGIN
9
+ Given begin preconditions
10
+
11
+
12
+ Given end preconditions
13
+ ### PRECONDITIONS - END
14
+
15
+ Given CLIENT = new SQLite3 client
16
+ | Name | Value |
17
+ | 'database' | ':memory:' |
18
+
19
+ When execute [create table people (name_last, age)] (DB client: CLIENT)
20
+
21
+ # Execute command with parameters in the qmark style:
22
+ Given WHO = 'Yeltsin'
23
+ Given AGE = 72
24
+ When RESULT = result of [insert into people (name_last, age) values (?, ?)] with parameters ('${WHO}', ${AGE}) (DB client: CLIENT)
25
+ Then RESULT == 1
26
+
27
+ # Execute command without parameters:
28
+ When RESULT = result of [select * from people] (DB client: CLIENT)
29
+ Then table RESULT is
30
+ | name_last | age |
31
+ | WHO | AGE |
32
+
33
+ # Execute command with parameters in the named style:
34
+ When RESULT = result of [select * from people where name_last=:who and age=:age] with parameters (DB client: CLIENT)
35
+ | Name | Value |
36
+ | 'who' | '${WHO}' |
37
+ | 'age' | ${AGE} |
38
+ Then table RESULT is
39
+ | name_last | age |
40
+ | WHO | AGE |
41
+
@@ -0,0 +1,25 @@
1
+ @testing_solution
2
+ @sftp
3
+ Feature: Test sFTP module
4
+
5
+ @go_nogo
6
+ Scenario: Simple test
7
+
8
+ ### PRECONDITIONS - BEGIN
9
+ Given begin preconditions
10
+
11
+ Given SERVER = start internal sFTP server
12
+ Given wait 1 seconds
13
+
14
+ Given CLIENT = new internal sFTP client
15
+
16
+ Given end preconditions
17
+ ### PRECONDITIONS - END
18
+
19
+ When RESULT = result of [pwd] (sFTP client: CLIENT)
20
+ Then RESULT == '/'
21
+
22
+ When RESULT = result of [listdir()] (sFTP client: CLIENT)
23
+ Then RESULT is empty list
24
+
25
+
@@ -0,0 +1,28 @@
1
+ @testing_solution
2
+ @logger
3
+ Feature: Test logger (LogManager,...)
4
+
5
+ Scenario: First scenario
6
+
7
+ ### PRECONDITIONS - BEGIN
8
+ Given begin preconditions
9
+
10
+
11
+ Given end preconditions
12
+ ### PRECONDITIONS - END
13
+
14
+ Given tester logs 'Hello 1'
15
+
16
+
17
+ Scenario: Second scenario
18
+
19
+ ### PRECONDITIONS - BEGIN
20
+ Given begin preconditions
21
+
22
+
23
+ Given end preconditions
24
+ ### PRECONDITIONS - END
25
+
26
+ Given tester logs 'Hello 2'
27
+
28
+
File without changes
@@ -0,0 +1,41 @@
1
+ [logger_root]
2
+ #level=INFO
3
+ level=DEBUG
4
+ #level=TRACE
5
+
6
+ [loggers_levels]
7
+ holado=INFO
8
+ #holado=DEBUG
9
+ #holado.common.context=INFO
10
+ #holado.common.context.session_context=DEBUG
11
+ holado_core.common.block.scope_manager=INFO
12
+ #holado_core.common.handlers=TRACE
13
+ #holado_core.common.tools=DEBUG
14
+ holado_core.common.tools.comparators=INFO
15
+ #holado_core.common.tools.tools=TRACE
16
+ holado_db.tools=DEBUG
17
+ holado_logging=INFO
18
+ #holado_multitask.multitasking.multitask_manager=TRACE
19
+ #holado_protobuf.ipc.protobuf=DEBUG
20
+ #holado_protobuf.ipc.protobuf.protobuf_messages=TRACE
21
+ #holado_python.standard_library.socket=DEBUG
22
+ #holado_value.common.tables.value_table_cell=TRACE
23
+ holado_s3.tools.s3.minio_client.trace=INFO
24
+
25
+ #holado_scripting.common.tools=DEBUG
26
+ #holado_scripting.common.tools.expression_evaluator=DEBUG
27
+ #holado_scripting.common.tools.expression_evaluator=TRACE
28
+ #holado_scripting.common.tools.variable_manager=TRACE
29
+ #holado_scripting.text.interpreter=TRACE
30
+
31
+ #holado_test.behave.behave=DEBUG
32
+
33
+ # External libraries
34
+ chardet=WARNING
35
+ pika=WARNING
36
+ psycopg=INFO
37
+ suds.transport=DEBUG
38
+ urllib3=INFO
39
+ zeep.transports=DEBUG
40
+ ssl=DEBUG
41
+
@@ -0,0 +1,24 @@
1
+ syntax = "proto3";
2
+ package custom_types;
3
+
4
+
5
+ message MessageWithMap {
6
+ int32 id = 1; // Unique ID number
7
+
8
+ map<string, string> map = 2;
9
+ }
10
+
11
+ message MessageWithOptional {
12
+ int32 id = 1; // Unique ID number
13
+
14
+ string text = 2;
15
+
16
+ optional string optional_text = 3;
17
+ }
18
+
19
+ message MessageWithRepeated {
20
+ int32 id = 1; // Unique ID number
21
+
22
+ repeated int32 values = 2;
23
+ }
24
+
@@ -0,0 +1,56 @@
1
+ // See README.txt for information and build instructions.
2
+ //
3
+ // Note: START and END tags are used in comments to define sections used in
4
+ // tutorials. They are not part of the syntax for Protocol Buffers.
5
+ //
6
+ // To get an in-depth walkthrough of this file and the related examples, see:
7
+ // https://developers.google.com/protocol-buffers/docs/tutorials
8
+
9
+ // [START declaration]
10
+ syntax = "proto3";
11
+ package tutorial;
12
+
13
+ import "google/protobuf/timestamp.proto";
14
+ // [END declaration]
15
+
16
+ // [START java_declaration]
17
+ option java_multiple_files = true;
18
+ option java_package = "com.example.tutorial.protos";
19
+ option java_outer_classname = "AddressBookProtos";
20
+ // [END java_declaration]
21
+
22
+ // [START csharp_declaration]
23
+ option csharp_namespace = "Google.Protobuf.Examples.AddressBook";
24
+ // [END csharp_declaration]
25
+
26
+ // [START go_declaration]
27
+ option go_package = "../tutorial";
28
+ // [END go_declaration]
29
+
30
+ // [START messages]
31
+ message Person {
32
+ string name = 1;
33
+ int32 id = 2; // Unique ID number for this person.
34
+ string email = 3;
35
+
36
+ enum PhoneType {
37
+ MOBILE = 0;
38
+ HOME = 1;
39
+ WORK = 2;
40
+ }
41
+
42
+ message PhoneNumber {
43
+ string number = 1;
44
+ PhoneType type = 2;
45
+ }
46
+
47
+ repeated PhoneNumber phones = 4;
48
+
49
+ google.protobuf.Timestamp last_updated = 5;
50
+ }
51
+
52
+ // Our address book file is just one of these.
53
+ message AddressBook {
54
+ repeated Person people = 1;
55
+ }
56
+ // [END messages]
@@ -0,0 +1,34 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: custom_types/field_types.proto
4
+ """Generated protocol buffer code."""
5
+ from google.protobuf import descriptor as _descriptor
6
+ from google.protobuf import descriptor_pool as _descriptor_pool
7
+ from google.protobuf import symbol_database as _symbol_database
8
+ from google.protobuf.internal import builder as _builder
9
+ # @@protoc_insertion_point(imports)
10
+
11
+ _sym_db = _symbol_database.Default()
12
+
13
+
14
+
15
+
16
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63ustom_types/field_types.proto\x12\x0c\x63ustom_types\"|\n\x0eMessageWithMap\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x32\n\x03map\x18\x02 \x03(\x0b\x32%.custom_types.MessageWithMap.MapEntry\x1a*\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n\x13MessageWithOptional\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x1a\n\roptional_text\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_optional_text\"1\n\x13MessageWithRepeated\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0e\n\x06values\x18\x02 \x03(\x05\x62\x06proto3')
17
+
18
+ _globals = globals()
19
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
20
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'custom_types.field_types_pb2', _globals)
21
+ if _descriptor._USE_C_DESCRIPTORS == False:
22
+
23
+ DESCRIPTOR._options = None
24
+ _MESSAGEWITHMAP_MAPENTRY._options = None
25
+ _MESSAGEWITHMAP_MAPENTRY._serialized_options = b'8\001'
26
+ _globals['_MESSAGEWITHMAP']._serialized_start=48
27
+ _globals['_MESSAGEWITHMAP']._serialized_end=172
28
+ _globals['_MESSAGEWITHMAP_MAPENTRY']._serialized_start=130
29
+ _globals['_MESSAGEWITHMAP_MAPENTRY']._serialized_end=172
30
+ _globals['_MESSAGEWITHOPTIONAL']._serialized_start=174
31
+ _globals['_MESSAGEWITHOPTIONAL']._serialized_end=267
32
+ _globals['_MESSAGEWITHREPEATED']._serialized_start=269
33
+ _globals['_MESSAGEWITHREPEATED']._serialized_end=318
34
+ # @@protoc_insertion_point(module_scope)