holado 0.2.2__py3-none-any.whl → 0.2.4__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 (524) hide show
  1. holado/__init__.py +11 -1
  2. {holado-0.2.2.dist-info → holado-0.2.4.dist-info}/METADATA +13 -9
  3. holado-0.2.4.dist-info/RECORD +535 -0
  4. holado_ais/__init__.py +33 -0
  5. holado_ais/ais/MaritimeIdentificationDigits.csv +295 -0
  6. holado_ais/ais/ais_manager.py +151 -0
  7. holado_ais/ais/ais_messages.py +204 -0
  8. holado_ais/ais/ais_payload.py +35 -0
  9. holado_ais/ais/enums.py +37 -0
  10. holado_ais/ais/patch_pyais.py +1303 -0
  11. holado_ais/tests/behave/steps/__init__.py +17 -0
  12. holado_ais/tests/behave/steps/ais/__init__.py +0 -0
  13. holado_ais/tests/behave/steps/ais/ais_manager_steps.py +50 -0
  14. holado_ais/tests/behave/steps/ais/ais_messages_steps.py +182 -0
  15. holado_binary/__init__.py +17 -0
  16. holado_binary/ipc/binary.py +125 -0
  17. holado_binary/ipc/bit_series.py +307 -0
  18. holado_binary/tests/behave/steps/__init__.py +17 -0
  19. holado_binary/tests/behave/steps/ipc/binary_steps.py +57 -0
  20. holado_binary/tests/behave/steps/ipc/bit_series_steps.py +131 -0
  21. holado_context/__init__.py +16 -0
  22. holado_context/tests/behave/steps/__init__.py +16 -0
  23. holado_context/tests/behave/steps/private/__init__.py +16 -0
  24. holado_context/tests/behave/steps/private/common/context_steps.py +36 -0
  25. holado_core/__init__.py +32 -0
  26. holado_core/common/__init__.py +0 -0
  27. holado_core/common/actors/actions.py +97 -0
  28. holado_core/common/actors/actor.py +226 -0
  29. holado_core/common/actors/element_actor.py +32 -0
  30. holado_core/common/actors/find_actor.py +106 -0
  31. holado_core/common/actors/tree_actor.py +32 -0
  32. holado_core/common/actors/verify_actions.py +69 -0
  33. holado_core/common/block/base.py +122 -0
  34. holado_core/common/block/block_manager.py +173 -0
  35. holado_core/common/block/block_method.py +46 -0
  36. holado_core/common/block/block_steps.py +37 -0
  37. holado_core/common/block/function.py +42 -0
  38. holado_core/common/block/scope_function.py +28 -0
  39. holado_core/common/block/scope_manager.py +238 -0
  40. holado_core/common/block/scope_steps.py +141 -0
  41. holado_core/common/criterias/and_criteria.py +61 -0
  42. holado_core/common/criterias/criteria.py +78 -0
  43. holado_core/common/criterias/or_criteria.py +64 -0
  44. holado_core/common/criterias/tools/criteria_context.py +20 -0
  45. holado_core/common/criterias/tools/criteria_parameters.py +18 -0
  46. holado_core/common/drivers/driver.py +153 -0
  47. holado_core/common/drivers/element_driver.py +30 -0
  48. holado_core/common/drivers/element_internal_api.py +239 -0
  49. holado_core/common/drivers/internal_api.py +40 -0
  50. holado_core/common/drivers/tree_driver.py +30 -0
  51. holado_core/common/drivers/tree_internal_api.py +176 -0
  52. holado_core/common/exceptions/__init__.py +0 -0
  53. holado_core/common/exceptions/element_exception.py +28 -0
  54. holado_core/common/exceptions/exceptions.py +24 -0
  55. holado_core/common/exceptions/functional_exception.py +21 -0
  56. holado_core/common/exceptions/holado_exception.py +25 -0
  57. holado_core/common/exceptions/technical_exception.py +27 -0
  58. holado_core/common/exceptions/timeout_exception.py +20 -0
  59. holado_core/common/exceptions/verify_exception.py +20 -0
  60. holado_core/common/finders/after_in_tree_finder.py +87 -0
  61. holado_core/common/finders/element_finder.py +60 -0
  62. holado_core/common/finders/else_finder.py +105 -0
  63. holado_core/common/finders/finder.py +478 -0
  64. holado_core/common/finders/or_finder.py +98 -0
  65. holado_core/common/finders/then_finder.py +157 -0
  66. holado_core/common/finders/tools/enums.py +30 -0
  67. holado_core/common/finders/tools/find_builder.py +118 -0
  68. holado_core/common/finders/tools/find_context.py +405 -0
  69. holado_core/common/finders/tools/find_info.py +27 -0
  70. holado_core/common/finders/tools/find_parameters.py +240 -0
  71. holado_core/common/finders/tools/find_updater.py +95 -0
  72. holado_core/common/finders/tools/finder_info.py +26 -0
  73. holado_core/common/finders/tree_finder.py +146 -0
  74. holado_core/common/handlers/__init__.py +0 -0
  75. holado_core/common/handlers/abstracts/base_redo.py +695 -0
  76. holado_core/common/handlers/abstracts/get_or_create.py +120 -0
  77. holado_core/common/handlers/element_holder.py +122 -0
  78. holado_core/common/handlers/enums.py +23 -0
  79. holado_core/common/handlers/exceptions/redo_exceptions.py +28 -0
  80. holado_core/common/handlers/features/resource_by_name.py +187 -0
  81. holado_core/common/handlers/features/resource_by_type.py +174 -0
  82. holado_core/common/handlers/redo.py +119 -0
  83. holado_core/common/handlers/wait.py +127 -0
  84. holado_core/common/inspectors/element_inspector.py +57 -0
  85. holado_core/common/inspectors/inspector.py +221 -0
  86. holado_core/common/inspectors/tools/inspect_builder.py +169 -0
  87. holado_core/common/inspectors/tools/inspect_context.py +69 -0
  88. holado_core/common/inspectors/tools/inspect_parameters.py +181 -0
  89. holado_core/common/inspectors/tree_inspector.py +73 -0
  90. holado_core/common/resource/persisted_data_manager.py +113 -0
  91. holado_core/common/resource/persisted_method_to_call_manager.py +133 -0
  92. holado_core/common/resource/resource_manager.py +143 -0
  93. holado_core/common/tables/__init__.py +1 -0
  94. holado_core/common/tables/comparators/__init__.py +0 -0
  95. holado_core/common/tables/comparators/boolean_table_cell_comparator.py +25 -0
  96. holado_core/common/tables/comparators/bytes_table_cell_comparator.py +25 -0
  97. holado_core/common/tables/comparators/datetime_table_cell_comparator.py +24 -0
  98. holado_core/common/tables/comparators/float_table_cell_comparator.py +31 -0
  99. holado_core/common/tables/comparators/integer_table_cell_comparator.py +25 -0
  100. holado_core/common/tables/comparators/internal_table_cell_comparator.py +30 -0
  101. holado_core/common/tables/comparators/string_table_cell_comparator.py +24 -0
  102. holado_core/common/tables/comparators/string_table_comparator.py +29 -0
  103. holado_core/common/tables/comparators/string_table_row_comparator.py +29 -0
  104. holado_core/common/tables/comparators/table_cell_comparator.py +40 -0
  105. holado_core/common/tables/comparators/table_comparator.py +209 -0
  106. holado_core/common/tables/comparators/table_comparator_manager.py +60 -0
  107. holado_core/common/tables/comparators/table_row_comparator.py +116 -0
  108. holado_core/common/tables/comparators/table_with_header_comparator.py +68 -0
  109. holado_core/common/tables/converters/__init__.py +0 -0
  110. holado_core/common/tables/converters/table_converter.py +194 -0
  111. holado_core/common/tables/enums.py +23 -0
  112. holado_core/common/tables/table.py +261 -0
  113. holado_core/common/tables/table_cell.py +126 -0
  114. holado_core/common/tables/table_manager.py +366 -0
  115. holado_core/common/tables/table_row.py +169 -0
  116. holado_core/common/tables/table_with_header.py +236 -0
  117. holado_core/common/tools/__init__.py +0 -0
  118. holado_core/common/tools/comparators/comparator.py +151 -0
  119. holado_core/common/tools/comparators/object_comparator.py +21 -0
  120. holado_core/common/tools/converters/converter.py +107 -0
  121. holado_core/common/tools/path_manager.py +185 -0
  122. holado_core/common/tools/string_tools.py +135 -0
  123. holado_core/common/tools/tools.py +172 -0
  124. holado_core/common/transport/__init__.py +0 -0
  125. holado_core/common/transport/crc.py +40 -0
  126. holado_core/tests/behave/steps/__init__.py +20 -0
  127. holado_core/tests/behave/steps/common/__init__.py +0 -0
  128. holado_core/tests/behave/steps/common/common_steps.py +136 -0
  129. holado_core/tests/behave/steps/common/config_steps.py +42 -0
  130. holado_core/tests/behave/steps/common/resource_steps.py +62 -0
  131. holado_core/tests/behave/steps/common/tables_steps.py +537 -0
  132. holado_core/tools/__init__.py +0 -0
  133. holado_core/tools/abstracts/__init__.py +0 -0
  134. holado_core/tools/abstracts/blocking_command_service.py +56 -0
  135. holado_core/tools/abstracts/service.py +48 -0
  136. holado_data/__init__.py +31 -0
  137. holado_data/data/generator/base.py +93 -0
  138. holado_data/data/generator/python_generator.py +30 -0
  139. holado_data/tests/behave/steps/__init__.py +17 -0
  140. holado_data/tests/behave/steps/data/generator_steps.py +91 -0
  141. holado_data/tests/behave/steps/tools/utils_steps.py +60 -0
  142. holado_db/__init__.py +32 -0
  143. holado_db/tests/behave/steps/__init__.py +18 -0
  144. holado_db/tests/behave/steps/tools/db/db_client_steps.py +134 -0
  145. holado_db/tests/behave/steps/tools/db/postgresql_client_steps.py +59 -0
  146. holado_db/tests/behave/steps/tools/db/sqlite_client_steps.py +57 -0
  147. holado_db/tools/db/clients/base/db_client.py +206 -0
  148. holado_db/tools/db/clients/postgresql/postgresql_client.py +65 -0
  149. holado_db/tools/db/clients/sqlite/sqlite_client.py +56 -0
  150. holado_db/tools/db/db_manager.py +109 -0
  151. holado_db/tools/db/query/base/query_builder.py +87 -0
  152. holado_db/tools/db/query/pypika/pypika_query_builder.py +193 -0
  153. holado_db/tools/db/query/query_manager.py +77 -0
  154. holado_docker/__init__.py +25 -0
  155. holado_docker/sdk/docker/docker_client.py +268 -0
  156. holado_docker/sdk/docker/docker_service.py +71 -0
  157. holado_docker/tests/behave/steps/__init__.py +16 -0
  158. holado_docker/tests/behave/steps/tools/docker_steps.py +33 -0
  159. holado_docker/tools/docker_controler/__init__.py +26 -0
  160. holado_docker/tools/docker_controler/docker_controler_client.py +36 -0
  161. holado_docker/tools/docker_controler/docker_controler_server.py +31 -0
  162. holado_docker/tools/docker_controler/proto/compile_proto.py +60 -0
  163. holado_docker/tools/docker_controler/proto/definitions/docker_controler.proto +63 -0
  164. holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2.py +52 -0
  165. holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2_grpc.py +233 -0
  166. holado_grpc/__init__.py +32 -0
  167. holado_grpc/api/rpc/TODO.txt +4 -0
  168. holado_grpc/api/rpc/grpc_client.py +181 -0
  169. holado_grpc/api/rpc/grpc_manager.py +81 -0
  170. holado_grpc/ipc/rpc/__init__.py +0 -0
  171. holado_grpc/ipc/rpc/grpc_compiler.py +45 -0
  172. holado_grpc/ipc/rpc/grpc_services.py +165 -0
  173. holado_grpc/tests/behave/steps/__init__.py +16 -0
  174. holado_grpc/tests/behave/steps/api/grpc_client_steps.py +173 -0
  175. holado_grpc/tests/behave/steps/private/__init__.py +16 -0
  176. holado_grpc/tests/behave/steps/private/api/grpc_steps.py +77 -0
  177. holado_helper/__init__.py +35 -0
  178. holado_helper/debug/README.txt +32 -0
  179. holado_helper/debug/memory/memory_profiler.py +106 -0
  180. holado_helper/docker/init_user.sh +24 -0
  181. holado_helper/docker/logging.conf +42 -0
  182. holado_helper/docker/run_holado_test_nonreg_in_docker.sh +120 -0
  183. holado_helper/docker/run_terminal_in_docker-with_docker_control.sh +103 -0
  184. holado_helper/docker/run_terminal_in_docker.sh +101 -0
  185. holado_helper/holado_module_template/__init__.py +31 -0
  186. holado_helper/holado_module_template/test/behave/steps/__init__.py +16 -0
  187. holado_helper/holado_module_template/test/behave/steps/private/__init__.py +16 -0
  188. holado_helper/script/action.py +109 -0
  189. holado_helper/script/action_script.py +477 -0
  190. holado_helper/script/any_action_script.py +126 -0
  191. holado_helper/script/behave_action_script.py +99 -0
  192. holado_helper/script/csv_action_script.py +142 -0
  193. holado_helper/script/initialize_script.py +115 -0
  194. holado_helper/script/input_output_script.py +136 -0
  195. holado_helper/script/job.py +75 -0
  196. holado_helper/script/json_action_script.py +104 -0
  197. holado_helper/script/script.py +110 -0
  198. holado_json/__init__.py +16 -0
  199. holado_json/ipc/json.py +125 -0
  200. holado_json/ipc/json_converter.py +69 -0
  201. holado_json/ipc/json_types.py +183 -0
  202. holado_json/tests/behave/steps/__init__.py +16 -0
  203. holado_json/tests/behave/steps/ipc/__init__.py +0 -0
  204. holado_json/tests/behave/steps/ipc/json_steps.py +120 -0
  205. holado_keycloak/__init__.py +16 -0
  206. holado_keycloak/tests/behave/steps/__init__.py +16 -0
  207. holado_keycloak/tests/behave/steps/tools/keycloak_client_steps.py +59 -0
  208. holado_keycloak/tools/keycloak/__init__.py +0 -0
  209. holado_keycloak/tools/keycloak/keycloak_client.py +61 -0
  210. holado_logging/__init__.py +37 -0
  211. holado_logging/common/logging/holado_logger.py +75 -0
  212. holado_logging/common/logging/log_config.py +128 -0
  213. holado_logging/common/logging/log_manager.py +292 -0
  214. holado_multitask/__init__.py +33 -0
  215. holado_multitask/multiprocessing/context/process_context.py +35 -0
  216. holado_multitask/multiprocessing/function_process.py +102 -0
  217. holado_multitask/multiprocessing/periodic_function_process.py +135 -0
  218. holado_multitask/multiprocessing/process.py +196 -0
  219. holado_multitask/multiprocessing/processesmanager.py +133 -0
  220. holado_multitask/multitasking/multitask_manager.py +439 -0
  221. holado_multitask/multithreading/__init__.py +0 -0
  222. holado_multitask/multithreading/context/thread_context.py +84 -0
  223. holado_multitask/multithreading/functionthreaded.py +129 -0
  224. holado_multitask/multithreading/loopfunctionthreaded.py +45 -0
  225. holado_multitask/multithreading/loopthread.py +100 -0
  226. holado_multitask/multithreading/periodicfunctionthreaded.py +136 -0
  227. holado_multitask/multithreading/reflection/inspect.py +47 -0
  228. holado_multitask/multithreading/reflection/sys.py +29 -0
  229. holado_multitask/multithreading/reflection/traceback.py +35 -0
  230. holado_multitask/multithreading/thread.py +177 -0
  231. holado_multitask/multithreading/threadsmanager.py +162 -0
  232. holado_multitask/multithreading/timer.py +48 -0
  233. holado_multitask/tests/behave/steps/__init__.py +17 -0
  234. holado_multitask/tests/behave/steps/multiprocessing_steps.py +138 -0
  235. holado_multitask/tests/behave/steps/multithreading_steps.py +129 -0
  236. holado_protobuf/__init__.py +61 -0
  237. holado_protobuf/ipc/protobuf/__init__.py +0 -0
  238. holado_protobuf/ipc/protobuf/abstracts/type.py +45 -0
  239. holado_protobuf/ipc/protobuf/protobuf_compiler.py +118 -0
  240. holado_protobuf/ipc/protobuf/protobuf_converter.py +153 -0
  241. holado_protobuf/ipc/protobuf/protobuf_messages.py +968 -0
  242. holado_protobuf/ipc/protobuf/protobuf_modifier.py +65 -0
  243. holado_protobuf/ipc/protobuf/types/__init__.py +0 -0
  244. holado_protobuf/ipc/protobuf/types/google/__init__.py +0 -0
  245. holado_protobuf/ipc/protobuf/types/google/protobuf.py +124 -0
  246. holado_protobuf/tests/behave/steps/__init__.py +16 -0
  247. holado_protobuf/tests/behave/steps/ipc/protobuf_steps.py +297 -0
  248. holado_python/__init__.py +35 -0
  249. holado_python/common/enums.py +34 -0
  250. holado_python/common/iterables.py +30 -0
  251. holado_python/common/tools/comparators/boolean_comparator.py +37 -0
  252. holado_python/common/tools/comparators/bytes_comparator.py +48 -0
  253. holado_python/common/tools/comparators/datetime_comparator.py +74 -0
  254. holado_python/common/tools/comparators/float_comparator.py +97 -0
  255. holado_python/common/tools/comparators/integer_comparator.py +37 -0
  256. holado_python/common/tools/comparators/string_comparator.py +99 -0
  257. holado_python/common/tools/comparators/type_comparator.py +31 -0
  258. holado_python/common/tools/datetime.py +279 -0
  259. holado_python/standard_library/csv.py +207 -0
  260. holado_python/standard_library/hashlib.py +82 -0
  261. holado_python/standard_library/multiprocessing.py +62 -0
  262. holado_python/standard_library/queue.py +79 -0
  263. holado_python/standard_library/socket/blocking_socket.py +136 -0
  264. holado_python/standard_library/socket/echo_server.py +28 -0
  265. holado_python/standard_library/socket/message_socket.py +91 -0
  266. holado_python/standard_library/socket/non_blocking_socket.py +151 -0
  267. holado_python/standard_library/socket/socket.py +148 -0
  268. holado_python/standard_library/ssl/resources/certificates/NOTES.txt +5 -0
  269. holado_python/standard_library/ssl/resources/certificates/localhost.crt +19 -0
  270. holado_python/standard_library/ssl/resources/certificates/localhost.key +28 -0
  271. holado_python/standard_library/ssl/ssl.py +81 -0
  272. holado_python/standard_library/typing.py +192 -0
  273. holado_python/tests/behave/steps/__init__.py +27 -0
  274. holado_python/tests/behave/steps/builtins/str_steps.py +45 -0
  275. holado_python/tests/behave/steps/convert_steps.py +59 -0
  276. holado_python/tests/behave/steps/iterable_steps.py +87 -0
  277. holado_python/tests/behave/steps/standard_library/csv_steps.py +134 -0
  278. holado_python/tests/behave/steps/standard_library/datetime_steps.py +163 -0
  279. holado_python/tests/behave/steps/standard_library/hashlib_steps.py +57 -0
  280. holado_python/tests/behave/steps/standard_library/multiprocessing_steps.py +56 -0
  281. holado_python/tests/behave/steps/standard_library/queue_steps.py +358 -0
  282. holado_python/tests/behave/steps/standard_library/socket_steps.py +258 -0
  283. holado_python/tests/behave/steps/standard_library/ssl_steps.py +67 -0
  284. holado_rabbitmq/__init__.py +28 -0
  285. holado_rabbitmq/tests/behave/steps/__init__.py +17 -0
  286. holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py +537 -0
  287. holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py +64 -0
  288. holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py +311 -0
  289. holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +674 -0
  290. holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +173 -0
  291. holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py +428 -0
  292. holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py +24 -0
  293. holado_redis/__init__.py +17 -0
  294. holado_redis/tests/behave/steps/__init__.py +16 -0
  295. holado_redis/tests/behave/steps/tools/redis_client_steps.py +101 -0
  296. holado_redis/tools/redis/TODO.txt +7 -0
  297. holado_redis/tools/redis/redis_client.py +190 -0
  298. holado_redis/tools/redis/redis_manager.py +38 -0
  299. holado_report/__init__.py +27 -0
  300. holado_report/report/analyze/execution_historic_manager.py +96 -0
  301. holado_report/report/analyze/scenario_duration_manager.py +245 -0
  302. holado_report/report/builders/detailed_scenario_failed_report_builder.py +146 -0
  303. holado_report/report/builders/json_execution_historic_report_builder.py +123 -0
  304. holado_report/report/builders/report_builder.py +64 -0
  305. holado_report/report/builders/short_scenario_failed_report_builder.py +76 -0
  306. holado_report/report/builders/summary_report_builder.py +89 -0
  307. holado_report/report/builders/summary_scenario_failed_report_builder.py +56 -0
  308. holado_report/report/builders/summary_scenario_report_builder.py +74 -0
  309. holado_report/report/execution_historic.py +141 -0
  310. holado_report/report/report_manager.py +256 -0
  311. holado_report/report/reports/base_report.py +163 -0
  312. holado_report/report/reports/feature_report.py +106 -0
  313. holado_report/report/reports/scenario_report.py +64 -0
  314. holado_rest/__init__.py +24 -0
  315. holado_rest/api/rest/TODO.txt +2 -0
  316. holado_rest/api/rest/rest_client.py +113 -0
  317. holado_rest/api/rest/rest_manager.py +62 -0
  318. holado_rest/tests/behave/steps/__init__.py +16 -0
  319. holado_rest/tests/behave/steps/api/__init__.py +0 -0
  320. holado_rest/tests/behave/steps/api/rest_client_steps.py +141 -0
  321. holado_rest/tests/behave/steps/private/__init__.py +16 -0
  322. holado_rest/tests/behave/steps/private/api/__init__.py +0 -0
  323. holado_rest/tests/behave/steps/private/api/rest_steps.py +70 -0
  324. holado_s3/__init__.py +17 -0
  325. holado_s3/tests/behave/steps/__init__.py +17 -0
  326. holado_s3/tests/behave/steps/private/__init__.py +16 -0
  327. holado_s3/tests/behave/steps/private/tools/s3_steps.py +89 -0
  328. holado_s3/tests/behave/steps/tools/s3_client_steps.py +403 -0
  329. holado_s3/tests/behave/steps/tools/s3_server_steps.py +57 -0
  330. holado_s3/tools/s3/__init__.py +0 -0
  331. holado_s3/tools/s3/boto3_s3_client.py +59 -0
  332. holado_s3/tools/s3/minio_client.py +75 -0
  333. holado_s3/tools/s3/moto_server.py +52 -0
  334. holado_scripting/__init__.py +53 -0
  335. holado_scripting/common/tools/dynamic_text_manager.py +73 -0
  336. holado_scripting/common/tools/evaluate_parameters.py +210 -0
  337. holado_scripting/common/tools/expression_evaluator.py +387 -0
  338. holado_scripting/common/tools/variable_manager.py +321 -0
  339. holado_scripting/tests/behave/steps/__init__.py +22 -0
  340. holado_scripting/tests/behave/steps/common/tools/variable_convert_steps.py +158 -0
  341. holado_scripting/tests/behave/steps/common/tools/variable_new_steps.py +130 -0
  342. holado_scripting/tests/behave/steps/common/tools/variable_steps.py +108 -0
  343. holado_scripting/tests/behave/steps/common/tools/variable_verify_steps.py +160 -0
  344. holado_scripting/tests/behave/steps/scenario/function_steps.py +77 -0
  345. holado_scripting/tests/behave/steps/scenario/if_steps.py +87 -0
  346. holado_scripting/tests/behave/steps/scenario/loop_steps.py +119 -0
  347. holado_scripting/text/base/base_function.py +25 -0
  348. holado_scripting/text/base/base_verify_function.py +25 -0
  349. holado_scripting/text/base/text_inspecter.py +204 -0
  350. holado_scripting/text/interpreter/exceptions/interpreter_exception.py +25 -0
  351. holado_scripting/text/interpreter/functions/function_cast.py +60 -0
  352. holado_scripting/text/interpreter/functions/function_convert.py +57 -0
  353. holado_scripting/text/interpreter/functions/function_dynamic_value.py +40 -0
  354. holado_scripting/text/interpreter/functions/function_escape_all_bytes.py +35 -0
  355. holado_scripting/text/interpreter/functions/function_exists_variable.py +39 -0
  356. holado_scripting/text/interpreter/functions/function_hex_to_bytes.py +49 -0
  357. holado_scripting/text/interpreter/functions/function_hex_to_int.py +53 -0
  358. holado_scripting/text/interpreter/functions/function_to_base_64.py +41 -0
  359. holado_scripting/text/interpreter/functions/function_to_bytes.py +50 -0
  360. holado_scripting/text/interpreter/functions/function_to_hex.py +42 -0
  361. holado_scripting/text/interpreter/text_interpreter.py +216 -0
  362. holado_scripting/text/verifier/exceptions/verifier_exception.py +21 -0
  363. holado_scripting/text/verifier/functions/verify_function_extract_in.py +35 -0
  364. holado_scripting/text/verifier/functions/verify_function_match_pattern.py +63 -0
  365. holado_scripting/text/verifier/text_verifier.py +103 -0
  366. holado_sftp/__init__.py +16 -0
  367. holado_sftp/tests/behave/steps/__init__.py +17 -0
  368. holado_sftp/tests/behave/steps/private/__init__.py +16 -0
  369. holado_sftp/tests/behave/steps/private/tools/sftp_steps.py +78 -0
  370. holado_sftp/tests/behave/steps/tools/sftp_client_steps.py +94 -0
  371. holado_sftp/tests/behave/steps/tools/sftp_server_steps.py +82 -0
  372. holado_sftp/tools/sftp/__init__.py +0 -0
  373. holado_sftp/tools/sftp/sftp_client.py +103 -0
  374. holado_sftp/tools/sftp/sftp_server.py +39 -0
  375. holado_swagger/__init__.py +31 -0
  376. holado_swagger/swagger_hub/mockserver/mockserver_client.py +82 -0
  377. holado_swagger/swagger_hub/mockserver/mockserver_manager.py +32 -0
  378. holado_swagger/tests/behave/steps/__init__.py +16 -0
  379. holado_swagger/tests/behave/steps/swagger_hub/mockserver_steps.py +74 -0
  380. holado_system/system/command/command.py +216 -0
  381. holado_system/system/command/command_result.py +128 -0
  382. holado_system/system/command/curl_command.py +101 -0
  383. holado_system/system/command/exceptions.py +59 -0
  384. holado_system/system/filesystem/file.py +76 -0
  385. holado_system/system/global_system.py +187 -0
  386. holado_system/tests/behave/steps/__init__.py +18 -0
  387. holado_system/tests/behave/steps/system/commands_steps.py +92 -0
  388. holado_system/tests/behave/steps/system/file_steps.py +215 -0
  389. holado_system/tests/behave/steps/system/system_steps.py +84 -0
  390. holado_test/__init__.py +27 -0
  391. holado_test/behave/__init__.py +0 -0
  392. holado_test/behave/behave.py +397 -0
  393. holado_test/behave/behave_environment.py +143 -0
  394. holado_test/behave/behave_function.py +33 -0
  395. holado_test/behave/behave_manager.py +555 -0
  396. holado_test/behave/independant_runner.py +68 -0
  397. holado_test/behave/scenario/__init__.py +0 -0
  398. holado_test/behave/scenario/behave_step_tools.py +157 -0
  399. holado_test/common/context/feature_context.py +79 -0
  400. holado_test/common/context/scenario_context.py +217 -0
  401. holado_test/common/context/step_context.py +66 -0
  402. holado_test/common/exceptions/undefined_step_exception.py +21 -0
  403. holado_test/scenario/step_tools.py +523 -0
  404. holado_test/scenario/tester_tools.py +52 -0
  405. holado_test/test_config.py +26 -0
  406. holado_test/tests/behave/steps/__init__.py +18 -0
  407. holado_test/tests/behave/steps/scenario/exception_steps.py +87 -0
  408. holado_test/tests/behave/steps/scenario/scenario_steps.py +87 -0
  409. holado_test/tests/behave/steps/scenario/tester_steps.py +65 -0
  410. holado_value/__init__.py +24 -0
  411. holado_value/common/tables/comparators/table_2_value_table_cell_comparator.py +195 -0
  412. holado_value/common/tables/comparators/table_2_value_table_comparator.py +27 -0
  413. holado_value/common/tables/comparators/table_2_value_table_row_comparator.py +27 -0
  414. holado_value/common/tables/comparators/table_2_value_table_with_header_comparator.py +27 -0
  415. holado_value/common/tables/converters/value_table_converter.py +217 -0
  416. holado_value/common/tables/value_table.py +29 -0
  417. holado_value/common/tables/value_table_cell.py +67 -0
  418. holado_value/common/tables/value_table_manager.py +58 -0
  419. holado_value/common/tables/value_table_row.py +44 -0
  420. holado_value/common/tables/value_table_with_header.py +28 -0
  421. holado_value/common/tools/unique_value_manager.py +108 -0
  422. holado_value/common/tools/value.py +164 -0
  423. holado_value/common/tools/value_types.py +35 -0
  424. holado_value/tests/behave/steps/__init__.py +16 -0
  425. holado_value/tests/behave/steps/private/__init__.py +16 -0
  426. holado_ws/__init__.py +16 -0
  427. holado_ws/api/ws/TODO.txt +2 -0
  428. holado_ws/tests/behave/steps/__init__.py +16 -0
  429. holado_ws/tests/behave/steps/api/web_service_steps.py +189 -0
  430. holado_yaml/__init__.py +31 -0
  431. holado_yaml/tests/behave/steps/__init__.py +16 -0
  432. holado_yaml/tests/behave/steps/yaml_steps.py +64 -0
  433. holado_yaml/yaml/yaml_manager.py +86 -0
  434. test_holado/Dockerfile_test_holado +82 -0
  435. test_holado/__init__.py +4 -0
  436. test_holado/__main__.py +25 -0
  437. test_holado/build_docker_image_to_test_holado_in_docker.sh +7 -0
  438. test_holado/environment.py +42 -0
  439. test_holado/features/NonReg/api/REST.feature +21 -0
  440. test_holado/features/NonReg/api/gRPC.feature +122 -0
  441. test_holado/features/NonReg/common/multiprocessing/simple.feature +60 -0
  442. test_holado/features/NonReg/common/system/commands.feature +43 -0
  443. test_holado/features/NonReg/common/system/system.feature +20 -0
  444. test_holado/features/NonReg/common/tables/table.feature +239 -0
  445. test_holado/features/NonReg/common/tables/value_table_conversion.feature +29 -0
  446. test_holado/features/NonReg/common/tools/DateTime.feature +88 -0
  447. test_holado/features/NonReg/common/tools/UniqueValueManager.feature +43 -0
  448. test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature +135 -0
  449. test_holado/features/NonReg/holado_protobuf/protobuf.feature +291 -0
  450. test_holado/features/NonReg/holado_python/convert.feature +20 -0
  451. test_holado/features/NonReg/holado_python/iterable.feature +61 -0
  452. test_holado/features/NonReg/holado_python/standard_library/socket.feature +101 -0
  453. test_holado/features/NonReg/holado_python/standard_library/socket_with_ssl.feature +180 -0
  454. test_holado/features/NonReg/holado_scripting/common/tools/dynamic_text_manager.feature +18 -0
  455. test_holado/features/NonReg/holado_scripting/common/tools/expression_evaluator.feature +185 -0
  456. test_holado/features/NonReg/holado_scripting/common/tools/variable_manager.feature +71 -0
  457. test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.error.feature +21 -0
  458. test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.feature +120 -0
  459. test_holado/features/NonReg/holado_yaml/yaml.feature +218 -0
  460. test_holado/features/NonReg/ipc/bit_series.error.feature +33 -0
  461. test_holado/features/NonReg/ipc/bit_series.feature +131 -0
  462. test_holado/features/NonReg/ipc/json.feature +20 -0
  463. test_holado/features/NonReg/scenario/scenario.feature +139 -0
  464. test_holado/features/NonReg/test_steps/behave.feature +275 -0
  465. test_holado/features/NonReg/test_steps/common.feature +100 -0
  466. test_holado/features/NonReg/tools/RabbitMQ.feature +445 -0
  467. test_holado/features/NonReg/tools/RabbitMQ_steps.feature +276 -0
  468. test_holado/features/NonReg/tools/S3/boto3_client.feature +73 -0
  469. test_holado/features/NonReg/tools/S3/minio_client.feature +75 -0
  470. test_holado/features/NonReg/tools/db_sqlite3.feature +41 -0
  471. test_holado/features/NonReg/tools/sFTP.feature +25 -0
  472. test_holado/features/Test/logger.feature +28 -0
  473. test_holado/features/__init__.py +0 -0
  474. test_holado/logging.conf +41 -0
  475. test_holado/resources/proto/definitions/protobuf/custom_types/field_types.proto +24 -0
  476. test_holado/resources/proto/definitions/protobuf/protobuf.dev/tutorial/addressbook.proto +56 -0
  477. test_holado/resources/proto/generated/protobuf/custom_types/field_types_pb2.py +34 -0
  478. test_holado/resources/proto/generated/protobuf/protobuf/dev/tutorial/addressbook_pb2.py +34 -0
  479. test_holado/resources/scripts/list_tags.sh +2 -0
  480. test_holado/resources/scripts/update_resources_proto_generated.py +70 -0
  481. test_holado/steps/__init__.py +0 -0
  482. test_holado/steps/private_steps.py +20 -0
  483. test_holado/steps/public_steps.py +23 -0
  484. test_holado/test_holado_session_context.py +43 -0
  485. test_holado/tools/django/README.txt +3 -0
  486. test_holado/tools/django/api_grpc/api_grpc/__init__.py +0 -0
  487. test_holado/tools/django/api_grpc/api_grpc/api1/__init__.py +0 -0
  488. test_holado/tools/django/api_grpc/api_grpc/api1/admin.py +3 -0
  489. test_holado/tools/django/api_grpc/api_grpc/api1/apps.py +6 -0
  490. test_holado/tools/django/api_grpc/api_grpc/api1/migrations/__init__.py +0 -0
  491. test_holado/tools/django/api_grpc/api_grpc/api1/models.py +3 -0
  492. test_holado/tools/django/api_grpc/api_grpc/api1/proto/__init__.py +0 -0
  493. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account.proto +27 -0
  494. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2.py +33 -0
  495. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2_grpc.py +199 -0
  496. test_holado/tools/django/api_grpc/api_grpc/api1/serializers.py +12 -0
  497. test_holado/tools/django/api_grpc/api_grpc/api1/services.py +11 -0
  498. test_holado/tools/django/api_grpc/api_grpc/api1/tests.py +3 -0
  499. test_holado/tools/django/api_grpc/api_grpc/api1/views.py +3 -0
  500. test_holado/tools/django/api_grpc/api_grpc/asgi.py +16 -0
  501. test_holado/tools/django/api_grpc/api_grpc/settings.py +126 -0
  502. test_holado/tools/django/api_grpc/api_grpc/urls.py +27 -0
  503. test_holado/tools/django/api_grpc/api_grpc/wsgi.py +16 -0
  504. test_holado/tools/django/api_grpc/db.sqlite3 +0 -0
  505. test_holado/tools/django/api_grpc/manage.py +27 -0
  506. test_holado/tools/django/api_grpc/manual_test_commands.txt +25 -0
  507. test_holado/tools/django/api_rest/api_rest/__init__.py +0 -0
  508. test_holado/tools/django/api_rest/api_rest/api1/__init__.py +0 -0
  509. test_holado/tools/django/api_rest/api_rest/api1/admin.py +3 -0
  510. test_holado/tools/django/api_rest/api_rest/api1/apps.py +6 -0
  511. test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py +0 -0
  512. test_holado/tools/django/api_rest/api_rest/api1/models.py +3 -0
  513. test_holado/tools/django/api_rest/api_rest/api1/serializers.py +15 -0
  514. test_holado/tools/django/api_rest/api_rest/api1/tests.py +3 -0
  515. test_holado/tools/django/api_rest/api_rest/api1/views.py +24 -0
  516. test_holado/tools/django/api_rest/api_rest/asgi.py +16 -0
  517. test_holado/tools/django/api_rest/api_rest/settings.py +133 -0
  518. test_holado/tools/django/api_rest/api_rest/urls.py +32 -0
  519. test_holado/tools/django/api_rest/api_rest/wsgi.py +16 -0
  520. test_holado/tools/django/api_rest/db.sqlite3 +0 -0
  521. test_holado/tools/django/api_rest/manage.py +22 -0
  522. holado-0.2.2.dist-info/RECORD +0 -17
  523. {holado-0.2.2.dist-info → holado-0.2.4.dist-info}/WHEEL +0 -0
  524. {holado-0.2.2.dist-info → holado-0.2.4.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,16 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #################################################
4
+ # HolAdo (Holistic Automation do)
5
+ #
6
+ # (C) Copyright 2021-2025 by Eric Klumpp
7
+ #
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
13
+ #################################################
14
+
15
+
16
+ from .api.grpc_steps import *
@@ -0,0 +1,77 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #################################################
4
+ # HolAdo (Holistic Automation do)
5
+ #
6
+ # (C) Copyright 2021-2025 by Eric Klumpp
7
+ #
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
13
+ #################################################
14
+
15
+
16
+ from holado.common.context.session_context import SessionContext
17
+ from holado_test.behave.behave import *
18
+ import os.path
19
+ from holado_core.tools.abstracts.blocking_command_service import BlockingCommandService
20
+ import logging
21
+ from holado_test.scenario.step_tools import StepTools
22
+
23
+ logger = logging.getLogger(__name__)
24
+
25
+
26
+ def __get_session_context():
27
+ return SessionContext.instance()
28
+
29
+ def __get_scenario_context():
30
+ return __get_session_context().get_scenario_context()
31
+
32
+ def __get_text_interpreter():
33
+ return __get_scenario_context().get_text_interpreter()
34
+
35
+ def __get_variable_manager():
36
+ return __get_scenario_context().get_variable_manager()
37
+
38
+
39
+ @Given(r"(?P<var_name>{Variable}) = start internal gRPC server")
40
+ def step_impl(context, var_name):
41
+ """
42
+ This step runs the api_grpc/api1 gRPC server available in testing tools.
43
+
44
+ It was written with djangogrpcframework that is not maintained anymore.
45
+ Version 0.2.1 of djangogrpcframework is not compatible as is with Django>=4.1.4.
46
+ A workaround working currently is to comment line 20 "requires_system_checks = False" in file "django_grpc_framework/management/commands/grpcrunserver.py".
47
+ TODO: update tools by using library https://github.com/socotecio/django-socio-grpc instead of djangogrpcframework
48
+ """
49
+ var_name = StepTools.evaluate_variable_name(var_name)
50
+
51
+ here = os.path.abspath(os.path.dirname(__file__))
52
+ api_grpc_path = os.path.normpath(os.path.join(here, "..", "..", "..", "..", "..", "..", "..", "tests", "behave", "test_holado", "tools", "django", "api_grpc"))
53
+ manage_path = os.path.join(api_grpc_path, "manage.py")
54
+ cmd = f"python {manage_path} grpcrunserver"
55
+
56
+ obj = BlockingCommandService("internal gRPC server", cmd)
57
+ obj.auto_stop = True
58
+ obj.start()
59
+
60
+ __get_variable_manager().register_variable(var_name, obj)
61
+
62
+ # Update imported grpc messages and services
63
+ proto_path = os.path.join(api_grpc_path, "api_grpc", "api1", "proto")
64
+ __get_session_context().protobuf_messages.import_all_compiled_proto(proto_path)
65
+ __get_session_context().grpc_services.import_all_compiled_proto(proto_path)
66
+
67
+
68
+ @Given(r"(?P<var_name>{Variable}) = new internal gRPC client on service (?P<service_name>{Str})")
69
+ def step_impl(context, var_name, service_name):
70
+ var_name = StepTools.evaluate_variable_name(var_name)
71
+
72
+ execute_steps(u"""
73
+ Given {var_name} = new gRPC client
74
+ | Name | Value |
75
+ | 'endpoint' | '0.0.0.0:50051' |
76
+ | 'service' | {service_name} |
77
+ """.format(var_name=var_name, service_name=service_name))
@@ -0,0 +1,35 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #################################################
4
+ # HolAdo (Holistic Automation do)
5
+ #
6
+ # (C) Copyright 2021-2025 by Eric Klumpp
7
+ #
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
13
+ #################################################
14
+
15
+ # This module is a helper for use cases using HolAdo solution.
16
+ # Usage: copy needed files and adapt them for specific usage.
17
+
18
+
19
+
20
+ def dependencies():
21
+ """
22
+ Return None or the list of names of modules it depend on
23
+ """
24
+ return None
25
+
26
+ def register():
27
+ """
28
+ Register the services of this module
29
+ """
30
+ # from holado.common.context.session_context import SessionContext
31
+
32
+ # from holado_xxx.xxx import XXXManager
33
+ # SessionContext.instance().services.register_service_type("xxx_manager", XXXManager)
34
+ pass
35
+
@@ -0,0 +1,32 @@
1
+ #################################################
2
+ # HolAdo (Holistic Automation do)
3
+ #
4
+ # (C) Copyright 2021-2025 by Eric Klumpp
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+ #
8
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
+
10
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
11
+ #################################################
12
+
13
+ This module gives some tools for debugging purposes.
14
+ Each tool uses internally a third party library.
15
+
16
+
17
+ Existing external tools can be found in following links:
18
+ https://wiki.python.org/moin/PythonDebuggingTools
19
+
20
+ For memory profiling:
21
+ https://www.datacamp.com/tutorial/memory-profiling-python
22
+ https://stackify.com/top-5-python-memory-profilers/
23
+
24
+ For deadlock analyse:
25
+ pystack, py-spy
26
+
27
+ Commands with py-spy:
28
+ sudo env "PATH=$PATH" py-spy dump --pid XXX --full-filenames > py-spy_dump_summary.txt
29
+ sudo env "PATH=$PATH" py-spy dump --pid XXX --full-filenames --locals --subprocesses > py-spy_dump_details.txt
30
+ sudo env "PATH=$PATH" py-spy dump --pid XXX --full-filenames --locals --subprocesses --json > py-spy_dump_details.json
31
+
32
+
@@ -0,0 +1,106 @@
1
+
2
+ #################################################
3
+ # HolAdo (Holistic Automation do)
4
+ #
5
+ # (C) Copyright 2021-2025 by Eric Klumpp
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10
+
11
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
12
+ #################################################
13
+
14
+ from holado_core.common.tools.tools import Tools
15
+ import logging
16
+ from holado_core.common.exceptions.technical_exception import TechnicalException
17
+ from holado_python.standard_library.typing import Typing
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+
22
+ try:
23
+ import pympler
24
+ from pympler.tracker import SummaryTracker
25
+ from pympler.tracker import ObjectTracker
26
+ with_pympler = True
27
+ except Exception as exc:
28
+ if Tools.do_log(logger, logging.DEBUG):
29
+ logger.debug(f"Pympler is not available for memory profiling. Initialization failed on error: {exc}")
30
+ with_pympler = False
31
+
32
+
33
+ class MemoryProfiler():
34
+ """
35
+ Manage many methods to profile memory.
36
+ It uses internally different libraries, depending on profiling method.
37
+ """
38
+ __stored_trackers = {}
39
+
40
+ @classmethod
41
+ def is_tracker_available(cls):
42
+ return with_pympler
43
+
44
+ @classmethod
45
+ def create_or_reset_tracker_of_objects_summary_changes(cls, name):
46
+ if name in cls.__stored_trackers:
47
+ cls.reset_tracker(cls.__stored_trackers[name])
48
+ else:
49
+ cls.__stored_trackers[name] = cls.new_tracker_of_objects_summary_changes()
50
+ return cls.__stored_trackers[name]
51
+
52
+ @classmethod
53
+ def create_or_reset_tracker_of_objects_changes(cls, name):
54
+ if name in cls.__stored_trackers:
55
+ cls.reset_tracker(cls.__stored_trackers[name])
56
+ else:
57
+ cls.__stored_trackers[name] = cls.new_tracker_of_objects_changes()
58
+ return cls.__stored_trackers[name]
59
+
60
+ @classmethod
61
+ def new_tracker_of_objects_summary_changes(cls):
62
+ if cls.is_tracker_available():
63
+ return SummaryTracker()
64
+ else:
65
+ raise TechnicalException("Third library 'Pympler' is needed for this profiling method")
66
+
67
+ @classmethod
68
+ def new_tracker_of_objects_changes(cls):
69
+ if cls.is_tracker_available():
70
+ return ObjectTracker()
71
+ else:
72
+ raise TechnicalException("Third library 'Pympler' is needed for this profiling method")
73
+
74
+ @classmethod
75
+ def reset_tracker(cls, tracker):
76
+ if isinstance(tracker, SummaryTracker):
77
+ _ = tracker.diff()
78
+ elif isinstance(tracker, ObjectTracker):
79
+ _ = tracker.get_diff()
80
+ else:
81
+ raise TechnicalException(f"Unexpected tracker type '{Typing.get_object_class_fullname(tracker)}'")
82
+
83
+ @classmethod
84
+ def log_tracker_diff(cls, name=None, tracker=None, prefix=None, level=logging.DEBUG, logger_=None):
85
+ if logger_ is None:
86
+ logger_ = logger
87
+ if not logger_.isEnabledFor(level):
88
+ return
89
+
90
+ if name is not None:
91
+ tracker = cls.__stored_trackers.get(name)
92
+ if tracker is None:
93
+ raise TechnicalException(f"Parameter 'tracker' or 'name' must be defined")
94
+
95
+ if isinstance(tracker, SummaryTracker):
96
+ tracker_descr = "objects summary"
97
+ elif isinstance(tracker, ObjectTracker):
98
+ tracker_descr = "objects summary"
99
+ else:
100
+ raise TechnicalException(f"Unexpected tracker type '{Typing.get_object_class_fullname(tracker)}'")
101
+
102
+ logger_.log(level, f"{prefix if prefix else ''}Preparing changes in {tracker_descr}...")
103
+ formatted_diff = "\n".join(tracker.format_diff())
104
+ logger_.log(level, f"{prefix if prefix else ''}Changes in {tracker_descr}:\n{formatted_diff}")
105
+
106
+
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+
3
+ # Script to init a new docker user as existing user appuser.
4
+ #
5
+ # Default HolAdo Dockerfile creates a user appuser, configure it so that it can run tests, and it runs as this user.
6
+ # When defining a specific new user when running docker image, this user is not configured to be able to run tests.
7
+ # The purpose of this script is to give a simple solution to initialize this new user as user appuser.
8
+ #
9
+ # USAGE:
10
+ # In the command run in docker, call this script before the command to execute.
11
+ #
12
+ # Example: to run all non-reg tests as a specific user defined in run command, set in yaml file
13
+ #
14
+ # user: ${TEST_UID}:${TEST_GID}
15
+ # command: "bash -c \"/code/holado/python/src/holado_helper/docker/init_user.sh && ./run_test_nonreg.sh\""
16
+
17
+
18
+ # Activate python venv
19
+ source /code/env/bin/activate
20
+
21
+ # Set environment variables needed by HolAdo
22
+ export HOLADO_PATH=/code/holado/python/
23
+
24
+
@@ -0,0 +1,42 @@
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=DEBUG
21
+ #holado_protobuf.ipc.protobuf.protobuf_messages=TRACE
22
+ #holado_python.standard_library.socket=DEBUG
23
+ #holado_value.common.tables.value_table_cell=TRACE
24
+ holado_s3.tools.s3.minio_client.trace=INFO
25
+
26
+ #holado_scripting.common.tools=DEBUG
27
+ #holado_scripting.common.tools.expression_evaluator=DEBUG
28
+ #holado_scripting.common.tools.expression_evaluator=TRACE
29
+ #holado_scripting.common.tools.variable_manager=TRACE
30
+ #holado_scripting.text.interpreter=TRACE
31
+
32
+ #holado_test.behave.behave=DEBUG
33
+
34
+ # External libraries
35
+ chardet=WARNING
36
+ pika=WARNING
37
+ psycopg=INFO
38
+ suds.transport=DEBUG
39
+ urllib3=INFO
40
+ zeep.transports=DEBUG
41
+ ssl=DEBUG
42
+
@@ -0,0 +1,120 @@
1
+ #!/bin/bash
2
+
3
+ # Script to launch run_test.sh with testing docker.
4
+ #
5
+ # This script helper is written to run HolAdo tests.
6
+ # With this script, the features to launch are embedded in docker image.
7
+ #
8
+ # USAGE:
9
+ # Considering a working directory WORK_DIR, to launch scenarios, open a console in WORK_DIR, and launch the script with wanted parameters (see bellow).
10
+ # Then a new report is added in folder HOLADO_TEST_OUTPUT_BASEDIR/reports if environment variable HOLADO_TEST_OUTPUT_BASEDIR is defined, else in folder WORK_DIR/reports.
11
+ #
12
+ # REQUIREMENTS:
13
+ # Define in .profile the following variables
14
+ # - HOLADO_TEST_IMAGE_TAG: docker image tag to use (usually "main" or tag associated to any branch)
15
+ # - optional but preferable:
16
+ # - HOLADO_TEST_OUTPUT_BASEDIR: absolute path to base output directory of testing solution
17
+ # - HOLADO_TEST_LOCAL_RESOURCES_BASEDIR: absolute path to base local resources directory of testing solution (where data are stored through campaigns)
18
+ # - optional:
19
+ # - HOLADO_TEST_IMAGE_REGISTRY: docker image registry to use (default: "registry.gitlab.com/testing-solution/python")
20
+ # - HOLADO_TEST_USE_LOCALHOST: force the container network to 'host'.
21
+ # - HOLADO_TEST_NETWORK: specify on which network the docker is run.
22
+ # Example:
23
+ # export HOLADO_TEST_IMAGE_TAG=main
24
+ # export HOLADO_TEST_USE_LOCALHOST=True
25
+ # export HOLADO_TEST_OUTPUT_BASEDIR=$HOME/.holado/output
26
+ # export HOLADO_TEST_LOCAL_RESOURCES_BASEDIR=$HOME/.holado/resources
27
+ #
28
+ # If no parameters are added to the script, all features/scenarios are run.
29
+ # Additional parameters can be specified to change runner behaviors, usually used to execute specific features/scenarios.
30
+ # In order to execute specific scenarios, the easiest way is to filter scenarios by tags with "-t" parameter.
31
+ # For example, following command executes all scenarios having both tags "scenario" and "table_possible_values":
32
+ # run_test_in_docker.sh -t scenario -t table_possible_values
33
+ #
34
+ # Note: Technically, the additional parameters are directly passed to internal script run_test.sh.
35
+ # For a complete help on possible parameters, simply add "-h" to command.
36
+
37
+
38
+ for v in HOLADO_TEST_IMAGE_TAG; do
39
+ if [ -z ${!v} ]; then
40
+ echo "Environment variable $v must be set"
41
+ exit 1
42
+ fi
43
+ done
44
+
45
+ CWD="$(dirname "${BASH_SOURCE[0]}")"
46
+ WORK_DIR="$(pwd)"
47
+
48
+ if [[ -z "$HOLADO_TEST_IMAGE_REGISTRY" ]]; then
49
+ HOLADO_TEST_IMAGE_REGISTRY=registry.gitlab.com/testing-solution/python
50
+ fi
51
+ TEST_IMAGE=${HOLADO_TEST_IMAGE_REGISTRY}:${HOLADO_TEST_IMAGE_TAG}
52
+
53
+ # Update docker image
54
+ echo "Updating docker image ${TEST_IMAGE}..."
55
+ docker pull ${TEST_IMAGE}
56
+
57
+ # Define test output directory
58
+ if [[ ! -z "$HOLADO_TEST_OUTPUT_BASEDIR" ]]; then
59
+ OUTPUT_DIR=${HOLADO_TEST_OUTPUT_BASEDIR}
60
+ else
61
+ OUTPUT_DIR=${WORK_DIR}/output
62
+ fi
63
+ echo "Output directory: $OUTPUT_DIR"
64
+
65
+ # Define test resources directory
66
+ if [[ ! -z "$HOLADO_TEST_LOCAL_RESOURCES_BASEDIR" ]]; then
67
+ RESOURCES_DIR=${HOLADO_TEST_LOCAL_RESOURCES_BASEDIR}
68
+ else
69
+ RESOURCES_DIR=${WORK_DIR}/resources
70
+ fi
71
+ echo "Resources directory: $RESOURCES_DIR"
72
+
73
+ # Make dirs
74
+ if [ ! -d ${OUTPUT_DIR} ]; then
75
+ echo "Create output directory: ${OUTPUT_DIR}"
76
+ mkdir -p ${OUTPUT_DIR}
77
+ fi
78
+ if [ ! -d ${RESOURCES_DIR} ]; then
79
+ echo "Create resources directory: ${RESOURCES_DIR}"
80
+ mkdir -p ${RESOURCES_DIR}
81
+ fi
82
+
83
+ # Define container network
84
+ if [ "$HOLADO_TEST_USE_LOCALHOST" = True ]; then
85
+ NETWORK_DEF_CMD="--network=host"
86
+ else
87
+ if [[ ! -z "$HOLADO_TEST_NETWORK" ]]; then
88
+ NETWORK_DEF_CMD="--network $HOLADO_TEST_NETWORK"
89
+ else
90
+ NETWORK_DEF_CMD=""
91
+ fi
92
+ fi
93
+
94
+ # Define if logging.conf must be override
95
+ if [ -f ${WORK_DIR}/logging.conf ]; then
96
+ LOGGING_CONF_CMD="-v ${WORK_DIR}/logging.conf:/code/holado/python/tests/behave/test_holado/logging.conf"
97
+ elif [ -f ${CWD}/logging.conf ]; then
98
+ LOGGING_CONF_CMD="-v ${CWD}/logging.conf:/code/holado/python/tests/behave/test_holado/logging.conf"
99
+ else
100
+ LOGGING_CONF_CMD=""
101
+ fi
102
+
103
+ # Docker run
104
+ if [[ -z "$HOLADO_TEST_RUNNER_NAME" ]]; then
105
+ HOLADO_TEST_RUNNER_NAME=holado_test_runner
106
+ fi
107
+
108
+ echo
109
+ echo "Running tests (docker name: ${HOLADO_TEST_RUNNER_NAME})..."
110
+ echo
111
+ # Note: In bellow command, some non-regression scenarios are skipped, those currently not working when run in docker
112
+ docker run --rm -t $((docker info | grep -i rootless > /dev/null && echo -n "--user root") || echo -n "-u $(id -u ${USER}):$(id -g ${USER})") --name ${HOLADO_TEST_RUNNER_NAME} \
113
+ -v "${OUTPUT_DIR}":/output \
114
+ -v "${RESOURCES_DIR}":/resources \
115
+ ${LOGGING_CONF_CMD} \
116
+ -e HOLADO_TEST_OUTPUT_BASEDIR=/output \
117
+ -e HOLADO_TEST_LOCAL_RESOURCES_BASEDIR=/resources \
118
+ ${NETWORK_DEF_CMD} \
119
+ ${TEST_IMAGE} /bin/bash -c "./run_test_nonreg.sh -t ~grpc -t ~rabbitmq -t ~sftp $*"
120
+
@@ -0,0 +1,103 @@
1
+ #!/bin/bash
2
+
3
+ # Script to launch a command with testing docker.
4
+ #
5
+ # It is usually used to launch a script embedded in docker image.
6
+ #
7
+ # USAGE:
8
+ # Considering a working directory WORK_DIR, to launch scenarios, open a console in WORK_DIR, and launch the script with wanted parameters (see bellow).
9
+ #
10
+ # Example: display feature & scenario durations of a report
11
+ # run_terminal_in_docker.sh python ./resources/scripts/print_report_execution_historic.py -r {dirname_to_report} -f feature.name -f feature.filename -f feature.duration -s scenario.name -s scenario.line -s scenario.duration
12
+ #
13
+ # REQUIREMENTS:
14
+ # Define in .profile the following variables
15
+ # - HOLADO_TEST_IMAGE_TAG: docker image tag to use (usually "main" or tag associated to any branch)
16
+ # - optional but preferable:
17
+ # - HOLADO_TEST_OUTPUT_BASEDIR: absolute path to base output directory of testing solution
18
+ # - HOLADO_TEST_LOCAL_RESOURCES_BASEDIR: absolute path to base local resources directory of testing solution (where data are stored through campaigns)
19
+ # - optional:
20
+ # - HOLADO_TEST_USE_LOCALHOST: force the container network to 'host'.
21
+ # - HOLADO_TEST_NETWORK: specify on which network the docker is run.
22
+ # Example:
23
+ # export HOLADO_TEST_IMAGE_TAG=main
24
+ # export HOLADO_TEST_USE_LOCALHOST=True
25
+ # export HOLADO_TEST_OUTPUT_BASEDIR=$HOME/.holado/output
26
+ # export HOLADO_TEST_LOCAL_RESOURCES_BASEDIR=$HOME/.holado/resources
27
+ #
28
+
29
+
30
+ for v in HOLADO_TEST_IMAGE_TAG; do
31
+ if [ -z ${!v} ]; then
32
+ echo "Environment variable $v must be set"
33
+ exit 1
34
+ fi
35
+ done
36
+
37
+ WORK_DIR="$(pwd)"
38
+
39
+ if [[ -z "$HOLADO_TEST_IMAGE_REGISTRY" ]]; then
40
+ HOLADO_TEST_IMAGE_REGISTRY=registry.gitlab.com/testing-solution/python
41
+ fi
42
+ TEST_IMAGE=${HOLADO_TEST_IMAGE_REGISTRY}:${HOLADO_TEST_IMAGE_TAG}
43
+
44
+ # Update docker image
45
+ echo "Updating docker image ${TEST_IMAGE}..."
46
+ docker pull ${TEST_IMAGE}
47
+
48
+ # Define test output directory
49
+ if [[ ! -z "$HOLADO_TEST_OUTPUT_BASEDIR" ]]; then
50
+ OUTPUT_DIR=${HOLADO_TEST_OUTPUT_BASEDIR}
51
+ else
52
+ OUTPUT_DIR=${WORK_DIR}/output
53
+ fi
54
+ echo "Output directory: $OUTPUT_DIR"
55
+
56
+ # Define test resources directory
57
+ if [[ ! -z "$HOLADO_TEST_LOCAL_RESOURCES_BASEDIR" ]]; then
58
+ RESOURCES_DIR=${HOLADO_TEST_LOCAL_RESOURCES_BASEDIR}
59
+ else
60
+ RESOURCES_DIR=${WORK_DIR}/resources
61
+ fi
62
+ echo "Resources directory: $RESOURCES_DIR"
63
+
64
+ # Make dirs
65
+ if [ ! -d ${OUTPUT_DIR} ]; then
66
+ echo "Create output directory: ${OUTPUT_DIR}"
67
+ mkdir -p ${OUTPUT_DIR}
68
+ fi
69
+ if [ ! -d ${RESOURCES_DIR} ]; then
70
+ echo "Create resources directory: ${RESOURCES_DIR}"
71
+ mkdir -p ${RESOURCES_DIR}
72
+ fi
73
+
74
+ # Define container network
75
+ if [ "$HOLADO_TEST_USE_LOCALHOST" = True ]; then
76
+ NETWORK_DEF_COMMAND="--network=host"
77
+ else
78
+ if [[ ! -z "$HOLADO_TEST_NETWORK" ]]; then
79
+ NETWORK_DEF_COMMAND="--network $HOLADO_TEST_NETWORK"
80
+ else
81
+ NETWORK_DEF_COMMAND=""
82
+ fi
83
+ fi
84
+
85
+ # Docker run
86
+ if [[ -z "$HOLADO_TEST_RUNNER_NAME" ]]; then
87
+ HOLADO_TEST_RUNNER_NAME=holado_test_runner
88
+ fi
89
+
90
+ echo
91
+ echo "Running tests (docker name: ${HOLADO_TEST_RUNNER_NAME})..."
92
+ echo
93
+ #docker run --rm -it $((docker info | grep -i rootless > /dev/null && echo -n "--user root") || echo -n "-u $(id -u ${USER}):$(id -g ${USER})") --name ${HOLADO_TEST_RUNNER_NAME} \
94
+ docker run --rm -it --user root --name ${HOLADO_TEST_RUNNER_NAME} \
95
+ --privileged -v /var/run/docker.sock:/var/run/docker.sock \
96
+ -v "${OUTPUT_DIR}":/output \
97
+ -v "${RESOURCES_DIR}":/resources \
98
+ -e HOLADO_TEST_OUTPUT_BASEDIR=/output \
99
+ -e HOLADO_TEST_LOCAL_RESOURCES_BASEDIR=/resources \
100
+ ${NETWORK_DEF_COMMAND} \
101
+ -w /work_dir \
102
+ ${TEST_IMAGE} /bin/bash
103
+
@@ -0,0 +1,101 @@
1
+ #!/bin/bash
2
+
3
+ # Script to launch a command with testing docker.
4
+ #
5
+ # It is usually used to launch a script embedded in docker image.
6
+ #
7
+ # USAGE:
8
+ # Considering a working directory WORK_DIR, to launch scenarios, open a console in WORK_DIR, and launch the script with wanted parameters (see bellow).
9
+ #
10
+ # Example: display feature & scenario durations of a report
11
+ # run_terminal_in_docker.sh python ./resources/scripts/print_report_execution_historic.py -r {dirname_to_report} -f feature.name -f feature.filename -f feature.duration -s scenario.name -s scenario.line -s scenario.duration
12
+ #
13
+ # REQUIREMENTS:
14
+ # Define in .profile the following variables
15
+ # - HOLADO_TEST_IMAGE_TAG: docker image tag to use (usually "main" or tag associated to any branch)
16
+ # - optional but preferable:
17
+ # - HOLADO_TEST_OUTPUT_BASEDIR: absolute path to base output directory of testing solution
18
+ # - HOLADO_TEST_LOCAL_RESOURCES_BASEDIR: absolute path to base local resources directory of testing solution (where data are stored through campaigns)
19
+ # - optional:
20
+ # - HOLADO_TEST_USE_LOCALHOST: force the container network to 'host'.
21
+ # - HOLADO_TEST_NETWORK: specify on which network the docker is run.
22
+ # Example:
23
+ # export HOLADO_TEST_IMAGE_TAG=main
24
+ # export HOLADO_TEST_USE_LOCALHOST=True
25
+ # export HOLADO_TEST_OUTPUT_BASEDIR=$HOME/.holado/output
26
+ # export HOLADO_TEST_LOCAL_RESOURCES_BASEDIR=$HOME/.holado/resources
27
+ #
28
+
29
+
30
+ for v in HOLADO_TEST_IMAGE_TAG; do
31
+ if [ -z ${!v} ]; then
32
+ echo "Environment variable $v must be set"
33
+ exit 1
34
+ fi
35
+ done
36
+
37
+ WORK_DIR="$(pwd)"
38
+
39
+ if [[ -z "$HOLADO_TEST_IMAGE_REGISTRY" ]]; then
40
+ HOLADO_TEST_IMAGE_REGISTRY=registry.gitlab.com/testing-solution/python
41
+ fi
42
+ TEST_IMAGE=${HOLADO_TEST_IMAGE_REGISTRY}:${HOLADO_TEST_IMAGE_TAG}
43
+
44
+ # Update docker image
45
+ echo "Updating docker image ${TEST_IMAGE}..."
46
+ docker pull ${TEST_IMAGE}
47
+
48
+ # Define test output directory
49
+ if [[ ! -z "$HOLADO_TEST_OUTPUT_BASEDIR" ]]; then
50
+ OUTPUT_DIR=${HOLADO_TEST_OUTPUT_BASEDIR}
51
+ else
52
+ OUTPUT_DIR=${WORK_DIR}/output
53
+ fi
54
+ echo "Output directory: $OUTPUT_DIR"
55
+
56
+ # Define test resources directory
57
+ if [[ ! -z "$HOLADO_TEST_LOCAL_RESOURCES_BASEDIR" ]]; then
58
+ RESOURCES_DIR=${HOLADO_TEST_LOCAL_RESOURCES_BASEDIR}
59
+ else
60
+ RESOURCES_DIR=${WORK_DIR}/resources
61
+ fi
62
+ echo "Resources directory: $RESOURCES_DIR"
63
+
64
+ # Make dirs
65
+ if [ ! -d ${OUTPUT_DIR} ]; then
66
+ echo "Create output directory: ${OUTPUT_DIR}"
67
+ mkdir -p ${OUTPUT_DIR}
68
+ fi
69
+ if [ ! -d ${RESOURCES_DIR} ]; then
70
+ echo "Create resources directory: ${RESOURCES_DIR}"
71
+ mkdir -p ${RESOURCES_DIR}
72
+ fi
73
+
74
+ # Define container network
75
+ if [ "$HOLADO_TEST_USE_LOCALHOST" = True ]; then
76
+ NETWORK_DEF_COMMAND="--network=host"
77
+ else
78
+ if [[ ! -z "$HOLADO_TEST_NETWORK" ]]; then
79
+ NETWORK_DEF_COMMAND="--network $HOLADO_TEST_NETWORK"
80
+ else
81
+ NETWORK_DEF_COMMAND=""
82
+ fi
83
+ fi
84
+
85
+ # Docker run
86
+ if [[ -z "$HOLADO_TEST_RUNNER_NAME" ]]; then
87
+ HOLADO_TEST_RUNNER_NAME=holado_test_runner
88
+ fi
89
+
90
+ echo
91
+ echo "Running tests (docker name: ${HOLADO_TEST_RUNNER_NAME})..."
92
+ echo
93
+ docker run --rm -it $((docker info | grep -i rootless > /dev/null && echo -n "--user root") || echo -n "-u $(id -u ${USER}):$(id -g ${USER})") --name ${HOLADO_TEST_RUNNER_NAME} \
94
+ -v "${OUTPUT_DIR}":/output \
95
+ -v "${RESOURCES_DIR}":/resources \
96
+ -e HOLADO_TEST_OUTPUT_BASEDIR=/output \
97
+ -e HOLADO_TEST_LOCAL_RESOURCES_BASEDIR=/resources \
98
+ ${NETWORK_DEF_COMMAND} \
99
+ -w /work_dir \
100
+ ${TEST_IMAGE} /bin/bash
101
+