holado 0.13.22__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.
Files changed (698) hide show
  1. holado/__init__.py +358 -0
  2. holado/common/__init__.py +25 -0
  3. holado/common/context/__init__.py +25 -0
  4. holado/common/context/context.py +248 -0
  5. holado/common/context/service_manager.py +262 -0
  6. holado/common/context/session_context.py +516 -0
  7. holado/common/handlers/__init__.py +19 -0
  8. holado/common/handlers/enums.py +41 -0
  9. holado/common/handlers/object.py +175 -0
  10. holado/common/handlers/undefined.py +55 -0
  11. holado/common/tools/__init__.py +19 -0
  12. holado/common/tools/gc_manager.py +155 -0
  13. holado/holado_config.py +45 -0
  14. holado-0.13.22.dist-info/METADATA +194 -0
  15. holado-0.13.22.dist-info/RECORD +698 -0
  16. holado-0.13.22.dist-info/WHEEL +4 -0
  17. holado-0.13.22.dist-info/licenses/LICENSE +21 -0
  18. holado_ais/__init__.py +33 -0
  19. holado_ais/ais/MaritimeIdentificationDigits.csv +295 -0
  20. holado_ais/ais/ais_manager.py +151 -0
  21. holado_ais/ais/ais_messages.py +356 -0
  22. holado_ais/ais/ais_payload.py +35 -0
  23. holado_ais/ais/enums.py +37 -0
  24. holado_ais/ais/patch_pyais.py +1174 -0
  25. holado_ais/tests/behave/steps/__init__.py +17 -0
  26. holado_ais/tests/behave/steps/ais/__init__.py +0 -0
  27. holado_ais/tests/behave/steps/ais/ais_manager_steps.py +50 -0
  28. holado_ais/tests/behave/steps/ais/ais_messages_steps.py +237 -0
  29. holado_binary/__init__.py +17 -0
  30. holado_binary/ipc/binary.py +125 -0
  31. holado_binary/ipc/bit_series.py +307 -0
  32. holado_binary/tests/behave/steps/__init__.py +17 -0
  33. holado_binary/tests/behave/steps/ipc/binary_steps.py +57 -0
  34. holado_binary/tests/behave/steps/ipc/bit_series_steps.py +132 -0
  35. holado_context/__init__.py +16 -0
  36. holado_context/tests/behave/steps/__init__.py +16 -0
  37. holado_context/tests/behave/steps/private/__init__.py +16 -0
  38. holado_context/tests/behave/steps/private/common/context_steps.py +68 -0
  39. holado_core/__init__.py +32 -0
  40. holado_core/common/__init__.py +0 -0
  41. holado_core/common/actors/actions.py +97 -0
  42. holado_core/common/actors/actor.py +226 -0
  43. holado_core/common/actors/element_actor.py +32 -0
  44. holado_core/common/actors/find_actor.py +106 -0
  45. holado_core/common/actors/tree_actor.py +32 -0
  46. holado_core/common/actors/verify_actions.py +69 -0
  47. holado_core/common/block/base.py +122 -0
  48. holado_core/common/block/block_manager.py +173 -0
  49. holado_core/common/block/block_method.py +46 -0
  50. holado_core/common/block/block_steps.py +37 -0
  51. holado_core/common/block/function.py +42 -0
  52. holado_core/common/block/scope_function.py +28 -0
  53. holado_core/common/block/scope_manager.py +238 -0
  54. holado_core/common/block/scope_steps.py +141 -0
  55. holado_core/common/criterias/and_criteria.py +61 -0
  56. holado_core/common/criterias/criteria.py +78 -0
  57. holado_core/common/criterias/or_criteria.py +64 -0
  58. holado_core/common/criterias/tools/criteria_context.py +20 -0
  59. holado_core/common/criterias/tools/criteria_parameters.py +18 -0
  60. holado_core/common/drivers/driver.py +153 -0
  61. holado_core/common/drivers/element_driver.py +30 -0
  62. holado_core/common/drivers/element_internal_api.py +239 -0
  63. holado_core/common/drivers/internal_api.py +40 -0
  64. holado_core/common/drivers/tree_driver.py +30 -0
  65. holado_core/common/drivers/tree_internal_api.py +176 -0
  66. holado_core/common/exceptions/__init__.py +0 -0
  67. holado_core/common/exceptions/element_exception.py +28 -0
  68. holado_core/common/exceptions/exceptions.py +24 -0
  69. holado_core/common/exceptions/functional_exception.py +21 -0
  70. holado_core/common/exceptions/holado_exception.py +25 -0
  71. holado_core/common/exceptions/technical_exception.py +27 -0
  72. holado_core/common/exceptions/timeout_exception.py +20 -0
  73. holado_core/common/exceptions/verify_exception.py +20 -0
  74. holado_core/common/finders/after_in_tree_finder.py +87 -0
  75. holado_core/common/finders/element_finder.py +60 -0
  76. holado_core/common/finders/else_finder.py +105 -0
  77. holado_core/common/finders/finder.py +478 -0
  78. holado_core/common/finders/or_finder.py +98 -0
  79. holado_core/common/finders/then_finder.py +157 -0
  80. holado_core/common/finders/tools/enums.py +30 -0
  81. holado_core/common/finders/tools/find_builder.py +118 -0
  82. holado_core/common/finders/tools/find_context.py +405 -0
  83. holado_core/common/finders/tools/find_info.py +27 -0
  84. holado_core/common/finders/tools/find_parameters.py +240 -0
  85. holado_core/common/finders/tools/find_updater.py +95 -0
  86. holado_core/common/finders/tools/finder_info.py +26 -0
  87. holado_core/common/finders/tree_finder.py +146 -0
  88. holado_core/common/handlers/__init__.py +0 -0
  89. holado_core/common/handlers/abstracts/base_redo.py +702 -0
  90. holado_core/common/handlers/abstracts/get_or_create.py +120 -0
  91. holado_core/common/handlers/element_holder.py +122 -0
  92. holado_core/common/handlers/enums.py +23 -0
  93. holado_core/common/handlers/exceptions/redo_exceptions.py +28 -0
  94. holado_core/common/handlers/features/resource_by_name.py +187 -0
  95. holado_core/common/handlers/features/resource_by_type.py +174 -0
  96. holado_core/common/handlers/redo.py +119 -0
  97. holado_core/common/handlers/wait.py +127 -0
  98. holado_core/common/inspectors/element_inspector.py +57 -0
  99. holado_core/common/inspectors/inspector.py +221 -0
  100. holado_core/common/inspectors/tools/inspect_builder.py +169 -0
  101. holado_core/common/inspectors/tools/inspect_context.py +69 -0
  102. holado_core/common/inspectors/tools/inspect_parameters.py +181 -0
  103. holado_core/common/inspectors/tree_inspector.py +73 -0
  104. holado_core/common/resource/persisted_data_manager.py +113 -0
  105. holado_core/common/resource/persisted_method_to_call_manager.py +263 -0
  106. holado_core/common/resource/resource_manager.py +126 -0
  107. holado_core/common/resource/table_data_manager.py +110 -0
  108. holado_core/common/tables/__init__.py +1 -0
  109. holado_core/common/tables/comparators/__init__.py +0 -0
  110. holado_core/common/tables/comparators/boolean_table_cell_comparator.py +25 -0
  111. holado_core/common/tables/comparators/bytes_table_cell_comparator.py +25 -0
  112. holado_core/common/tables/comparators/datetime_table_cell_comparator.py +24 -0
  113. holado_core/common/tables/comparators/float_table_cell_comparator.py +31 -0
  114. holado_core/common/tables/comparators/integer_table_cell_comparator.py +25 -0
  115. holado_core/common/tables/comparators/internal_table_cell_comparator.py +30 -0
  116. holado_core/common/tables/comparators/string_table_cell_comparator.py +24 -0
  117. holado_core/common/tables/comparators/string_table_comparator.py +29 -0
  118. holado_core/common/tables/comparators/string_table_row_comparator.py +29 -0
  119. holado_core/common/tables/comparators/table_cell_comparator.py +40 -0
  120. holado_core/common/tables/comparators/table_comparator.py +209 -0
  121. holado_core/common/tables/comparators/table_comparator_manager.py +60 -0
  122. holado_core/common/tables/comparators/table_row_comparator.py +116 -0
  123. holado_core/common/tables/comparators/table_with_header_comparator.py +68 -0
  124. holado_core/common/tables/converters/__init__.py +0 -0
  125. holado_core/common/tables/converters/table_converter.py +233 -0
  126. holado_core/common/tables/enums.py +23 -0
  127. holado_core/common/tables/table.py +261 -0
  128. holado_core/common/tables/table_cell.py +126 -0
  129. holado_core/common/tables/table_manager.py +365 -0
  130. holado_core/common/tables/table_row.py +169 -0
  131. holado_core/common/tables/table_with_header.py +242 -0
  132. holado_core/common/tools/__init__.py +0 -0
  133. holado_core/common/tools/comparators/comparator.py +151 -0
  134. holado_core/common/tools/comparators/object_comparator.py +21 -0
  135. holado_core/common/tools/converters/converter.py +118 -0
  136. holado_core/common/tools/path_manager.py +238 -0
  137. holado_core/common/tools/string_tools.py +144 -0
  138. holado_core/common/tools/tools.py +197 -0
  139. holado_core/tests/behave/steps/__init__.py +20 -0
  140. holado_core/tests/behave/steps/common/__init__.py +0 -0
  141. holado_core/tests/behave/steps/common/common_steps.py +137 -0
  142. holado_core/tests/behave/steps/common/config_steps.py +42 -0
  143. holado_core/tests/behave/steps/common/resource_steps.py +62 -0
  144. holado_core/tests/behave/steps/common/tables_steps.py +560 -0
  145. holado_core/tools/__init__.py +0 -0
  146. holado_core/tools/abstracts/__init__.py +0 -0
  147. holado_core/tools/abstracts/blocking_command_service.py +64 -0
  148. holado_core/tools/abstracts/service.py +48 -0
  149. holado_crypto/__init__.py +31 -0
  150. holado_crypto/crypto/crypto.py +108 -0
  151. holado_crypto/crypto/key.py +92 -0
  152. holado_crypto/crypto/tcpbin.py +105 -0
  153. holado_crypto/crypto/transport/__init__.py +0 -0
  154. holado_crypto/crypto/transport/crc.py +40 -0
  155. holado_crypto/tests/behave/steps/__init__.py +18 -0
  156. holado_crypto/tests/behave/steps/crypto_steps.py +112 -0
  157. holado_crypto/tests/behave/steps/key_steps.py +82 -0
  158. holado_crypto/tests/behave/steps/tcpbin_steps.py +79 -0
  159. holado_data/__init__.py +31 -0
  160. holado_data/data/generator/base.py +93 -0
  161. holado_data/data/generator/generator_manager.py +27 -0
  162. holado_data/data/generator/python_generator.py +30 -0
  163. holado_data/tests/behave/steps/__init__.py +17 -0
  164. holado_data/tests/behave/steps/data/generator_steps.py +91 -0
  165. holado_data/tests/behave/steps/tools/utils_steps.py +59 -0
  166. holado_db/__init__.py +32 -0
  167. holado_db/tests/behave/steps/__init__.py +18 -0
  168. holado_db/tests/behave/steps/tools/db/db_client_steps.py +134 -0
  169. holado_db/tests/behave/steps/tools/db/postgresql_client_steps.py +59 -0
  170. holado_db/tests/behave/steps/tools/db/sqlite_client_steps.py +57 -0
  171. holado_db/tools/db/clients/base/db_audit.py +94 -0
  172. holado_db/tools/db/clients/base/db_client.py +344 -0
  173. holado_db/tools/db/clients/postgresql/postgresql_audit.py +75 -0
  174. holado_db/tools/db/clients/postgresql/postgresql_client.py +84 -0
  175. holado_db/tools/db/clients/sqlite/sqlite_audit.py +70 -0
  176. holado_db/tools/db/clients/sqlite/sqlite_client.py +60 -0
  177. holado_db/tools/db/db_manager.py +109 -0
  178. holado_db/tools/db/query/base/query_builder.py +138 -0
  179. holado_db/tools/db/query/pypika/pypika_query_builder.py +244 -0
  180. holado_db/tools/db/query/query_manager.py +77 -0
  181. holado_django/__init__.py +31 -0
  182. holado_django/server/HOWTO.txt +27 -0
  183. holado_django/server/django_projects/rest_api/db.sqlite3 +0 -0
  184. holado_django/server/django_projects/rest_api/manage.py +22 -0
  185. holado_django/server/django_projects/rest_api/rest_api/__init__.py +0 -0
  186. holado_django/server/django_projects/rest_api/rest_api/application/__init__.py +0 -0
  187. holado_django/server/django_projects/rest_api/rest_api/application/admin.py +3 -0
  188. holado_django/server/django_projects/rest_api/rest_api/application/apps.py +9 -0
  189. holado_django/server/django_projects/rest_api/rest_api/application/migrations/__init__.py +0 -0
  190. holado_django/server/django_projects/rest_api/rest_api/application/models.py +3 -0
  191. holado_django/server/django_projects/rest_api/rest_api/application/tests.py +3 -0
  192. holado_django/server/django_projects/rest_api/rest_api/application/views.py +6 -0
  193. holado_django/server/django_projects/rest_api/rest_api/asgi.py +16 -0
  194. holado_django/server/django_projects/rest_api/rest_api/settings.py +130 -0
  195. holado_django/server/django_projects/rest_api/rest_api/urls.py +35 -0
  196. holado_django/server/django_projects/rest_api/rest_api/wsgi.py +16 -0
  197. holado_django/server/django_server.py +110 -0
  198. holado_django/server/grpc_django_server.py +57 -0
  199. holado_django/server/patch_djangogrpcframework.py +46 -0
  200. holado_django/tests/behave/steps/__init__.py +16 -0
  201. holado_django/tests/behave/steps/django_server_steps.py +83 -0
  202. holado_docker/__init__.py +25 -0
  203. holado_docker/sdk/docker/container_logs.py +447 -0
  204. holado_docker/sdk/docker/docker_client.py +537 -0
  205. holado_docker/sdk/docker/docker_service.py +71 -0
  206. holado_docker/tests/behave/steps/__init__.py +16 -0
  207. holado_docker/tests/behave/steps/sdk/docker/container_logs_steps.py +47 -0
  208. holado_examples/projects/server_rest/server_rest_example/initialize_holado.py +72 -0
  209. holado_examples/projects/server_rest/server_rest_example/rest_api/db.sqlite3 +0 -0
  210. holado_examples/projects/server_rest/server_rest_example/rest_api/manage.py +22 -0
  211. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/__init__.py +0 -0
  212. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/__init__.py +0 -0
  213. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/admin.py +3 -0
  214. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/apps.py +7 -0
  215. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/migrations/__init__.py +0 -0
  216. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/models.py +3 -0
  217. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/serializers.py +15 -0
  218. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/tests.py +3 -0
  219. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/views.py +24 -0
  220. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/asgi.py +16 -0
  221. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/settings.py +130 -0
  222. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/urls.py +31 -0
  223. holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/wsgi.py +16 -0
  224. holado_examples/projects/server_rest/server_rest_example/rest_server.py +37 -0
  225. holado_examples/scripts/script_custom_initialization.py +16 -0
  226. holado_examples/scripts/script_minimal_initialization.py +23 -0
  227. holado_examples/tests/behave/testing_solution/__main__.py +13 -0
  228. holado_examples/tests/behave/testing_solution/behave_environment.py +35 -0
  229. holado_examples/tests/behave/testing_solution/environment.py +36 -0
  230. holado_examples/tests/behave/testing_solution/features/Configuration/Actions/configure_system.feature +10 -0
  231. holado_examples/tests/behave/testing_solution/features/NonReg/example.feature +26 -0
  232. holado_examples/tests/behave/testing_solution/initialize_holado.py +62 -0
  233. holado_examples/tests/behave/testing_solution/logging.conf +102 -0
  234. holado_examples/tests/behave/testing_solution/requirements.txt +5 -0
  235. holado_examples/tests/behave/testing_solution/run_test.sh +7 -0
  236. holado_examples/tests/behave/testing_solution/run_test_nonreg.sh +6 -0
  237. holado_examples/tests/behave/testing_solution/src/common/tools/path_manager.py +40 -0
  238. holado_examples/tests/behave/testing_solution/src/config/config_manager.py +30 -0
  239. holado_examples/tests/behave/testing_solution/src/context/session_context.py +45 -0
  240. holado_examples/tests/behave/testing_solution/steps/config_steps.py +21 -0
  241. holado_examples/tests/behave/testing_solution/steps/public_steps.py +10 -0
  242. holado_grpc/TODO +8 -0
  243. holado_grpc/__init__.py +40 -0
  244. holado_grpc/api/rpc/TODO.txt +4 -0
  245. holado_grpc/api/rpc/grpc_client.py +210 -0
  246. holado_grpc/api/rpc/grpc_manager.py +81 -0
  247. holado_grpc/ipc/rpc/__init__.py +0 -0
  248. holado_grpc/ipc/rpc/grpc_compiler.py +45 -0
  249. holado_grpc/ipc/rpc/grpc_services.py +165 -0
  250. holado_grpc/tests/behave/steps/__init__.py +16 -0
  251. holado_grpc/tests/behave/steps/api/grpc_client_steps.py +173 -0
  252. holado_grpc/tests/behave/steps/private/__init__.py +16 -0
  253. holado_grpc/tests/behave/steps/private/api/grpc_steps.py +77 -0
  254. holado_helper/__init__.py +35 -0
  255. holado_helper/debug/README.txt +32 -0
  256. holado_helper/debug/memory/memory_profiler.py +106 -0
  257. holado_helper/docker/init_user.sh +24 -0
  258. holado_helper/docker/logging.conf +44 -0
  259. holado_helper/docker/run_holado_test_nonreg_in_docker.sh +120 -0
  260. holado_helper/docker/run_terminal_in_docker.sh +101 -0
  261. holado_helper/holado_module_template/__init__.py +38 -0
  262. holado_helper/holado_module_template/tests/behave/steps/__init__.py +16 -0
  263. holado_helper/holado_module_template/tests/behave/steps/private/__init__.py +16 -0
  264. holado_helper/initialize_holado.py +72 -0
  265. holado_helper/script/action.py +130 -0
  266. holado_helper/script/action_script.py +477 -0
  267. holado_helper/script/any_action_script.py +126 -0
  268. holado_helper/script/behave_action_script.py +99 -0
  269. holado_helper/script/csv_action_script.py +142 -0
  270. holado_helper/script/initialize_script.py +95 -0
  271. holado_helper/script/input_output_script.py +136 -0
  272. holado_helper/script/job.py +75 -0
  273. holado_helper/script/json_action_script.py +104 -0
  274. holado_helper/script/script.py +110 -0
  275. holado_json/__init__.py +16 -0
  276. holado_json/filesystem/json_file.py +94 -0
  277. holado_json/filesystem/stream_json_file.py +117 -0
  278. holado_json/ipc/json.py +146 -0
  279. holado_json/ipc/json_converter.py +69 -0
  280. holado_json/ipc/json_types.py +183 -0
  281. holado_json/tests/behave/steps/__init__.py +16 -0
  282. holado_json/tests/behave/steps/ipc/__init__.py +0 -0
  283. holado_json/tests/behave/steps/ipc/json_steps.py +131 -0
  284. holado_keycloak/__init__.py +16 -0
  285. holado_keycloak/tests/behave/steps/__init__.py +16 -0
  286. holado_keycloak/tests/behave/steps/tools/keycloak_client_steps.py +73 -0
  287. holado_keycloak/tools/keycloak/__init__.py +0 -0
  288. holado_keycloak/tools/keycloak/keycloak_client.py +90 -0
  289. holado_logging/__init__.py +38 -0
  290. holado_logging/common/logging/holado_logger.py +71 -0
  291. holado_logging/common/logging/log_config.py +163 -0
  292. holado_logging/common/logging/log_manager.py +335 -0
  293. holado_multitask/__init__.py +33 -0
  294. holado_multitask/multiprocessing/context/process_context.py +35 -0
  295. holado_multitask/multiprocessing/function_process.py +102 -0
  296. holado_multitask/multiprocessing/periodic_function_process.py +137 -0
  297. holado_multitask/multiprocessing/process.py +213 -0
  298. holado_multitask/multiprocessing/processesmanager.py +137 -0
  299. holado_multitask/multitasking/multitask_manager.py +464 -0
  300. holado_multitask/multithreading/__init__.py +0 -0
  301. holado_multitask/multithreading/context/thread_context.py +86 -0
  302. holado_multitask/multithreading/functionthreaded.py +129 -0
  303. holado_multitask/multithreading/loopfunctionthreaded.py +45 -0
  304. holado_multitask/multithreading/loopthread.py +110 -0
  305. holado_multitask/multithreading/periodicfunctionthreaded.py +135 -0
  306. holado_multitask/multithreading/reflection/inspect.py +47 -0
  307. holado_multitask/multithreading/reflection/sys.py +29 -0
  308. holado_multitask/multithreading/reflection/traceback.py +35 -0
  309. holado_multitask/multithreading/thread.py +203 -0
  310. holado_multitask/multithreading/threadsmanager.py +167 -0
  311. holado_multitask/multithreading/timer.py +51 -0
  312. holado_multitask/tests/behave/steps/__init__.py +17 -0
  313. holado_multitask/tests/behave/steps/multiprocessing_steps.py +138 -0
  314. holado_multitask/tests/behave/steps/multithreading_steps.py +129 -0
  315. holado_protobuf/__init__.py +61 -0
  316. holado_protobuf/ipc/protobuf/__init__.py +0 -0
  317. holado_protobuf/ipc/protobuf/abstracts/type.py +45 -0
  318. holado_protobuf/ipc/protobuf/protobuf_compiler.py +118 -0
  319. holado_protobuf/ipc/protobuf/protobuf_converter.py +153 -0
  320. holado_protobuf/ipc/protobuf/protobuf_messages.py +968 -0
  321. holado_protobuf/ipc/protobuf/protobuf_modifier.py +65 -0
  322. holado_protobuf/ipc/protobuf/types/__init__.py +0 -0
  323. holado_protobuf/ipc/protobuf/types/google/__init__.py +0 -0
  324. holado_protobuf/ipc/protobuf/types/google/protobuf.py +124 -0
  325. holado_protobuf/tests/behave/steps/__init__.py +16 -0
  326. holado_protobuf/tests/behave/steps/ipc/protobuf_steps.py +297 -0
  327. holado_python/__init__.py +36 -0
  328. holado_python/common/enums.py +34 -0
  329. holado_python/common/iterables.py +38 -0
  330. holado_python/common/tools/comparators/boolean_comparator.py +37 -0
  331. holado_python/common/tools/comparators/bytes_comparator.py +48 -0
  332. holado_python/common/tools/comparators/datetime_comparator.py +74 -0
  333. holado_python/common/tools/comparators/float_comparator.py +97 -0
  334. holado_python/common/tools/comparators/integer_comparator.py +37 -0
  335. holado_python/common/tools/comparators/string_comparator.py +99 -0
  336. holado_python/common/tools/comparators/type_comparator.py +31 -0
  337. holado_python/common/tools/datetime.py +341 -0
  338. holado_python/standard_library/csv.py +207 -0
  339. holado_python/standard_library/hashlib.py +110 -0
  340. holado_python/standard_library/multiprocessing.py +62 -0
  341. holado_python/standard_library/queue.py +79 -0
  342. holado_python/standard_library/socket/blocking_socket.py +219 -0
  343. holado_python/standard_library/socket/echo_server.py +29 -0
  344. holado_python/standard_library/socket/message_socket.py +152 -0
  345. holado_python/standard_library/socket/non_blocking_socket.py +172 -0
  346. holado_python/standard_library/socket/socket.py +411 -0
  347. holado_python/standard_library/ssl/resources/certificates/NOTES.txt +5 -0
  348. holado_python/standard_library/ssl/resources/certificates/localhost.crt +19 -0
  349. holado_python/standard_library/ssl/resources/certificates/localhost.key +28 -0
  350. holado_python/standard_library/ssl/ssl.py +131 -0
  351. holado_python/standard_library/typing.py +192 -0
  352. holado_python/tests/behave/steps/__init__.py +27 -0
  353. holado_python/tests/behave/steps/builtins/str_steps.py +45 -0
  354. holado_python/tests/behave/steps/convert_steps.py +59 -0
  355. holado_python/tests/behave/steps/iterable_steps.py +87 -0
  356. holado_python/tests/behave/steps/standard_library/csv_steps.py +134 -0
  357. holado_python/tests/behave/steps/standard_library/datetime_steps.py +163 -0
  358. holado_python/tests/behave/steps/standard_library/hashlib_steps.py +57 -0
  359. holado_python/tests/behave/steps/standard_library/multiprocessing_steps.py +56 -0
  360. holado_python/tests/behave/steps/standard_library/queue_steps.py +358 -0
  361. holado_python/tests/behave/steps/standard_library/socket_steps.py +384 -0
  362. holado_python/tests/behave/steps/standard_library/ssl_steps.py +71 -0
  363. holado_rabbitmq/__init__.py +28 -0
  364. holado_rabbitmq/tests/behave/steps/__init__.py +17 -0
  365. holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py +565 -0
  366. holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py +64 -0
  367. holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py +333 -0
  368. holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +678 -0
  369. holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +146 -0
  370. holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py +428 -0
  371. holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py +24 -0
  372. holado_redis/__init__.py +17 -0
  373. holado_redis/tests/behave/steps/__init__.py +16 -0
  374. holado_redis/tests/behave/steps/tools/redis_client_steps.py +101 -0
  375. holado_redis/tools/redis/TODO.txt +7 -0
  376. holado_redis/tools/redis/redis_client.py +190 -0
  377. holado_redis/tools/redis/redis_manager.py +38 -0
  378. holado_report/__init__.py +36 -0
  379. holado_report/campaign/campaign_manager.py +348 -0
  380. holado_report/report/analyze/execution_historic_manager.py +96 -0
  381. holado_report/report/analyze/scenario_duration_manager.py +245 -0
  382. holado_report/report/builders/detailed_scenario_report_builder.py +172 -0
  383. holado_report/report/builders/execution_historic_report_builder.py +132 -0
  384. holado_report/report/builders/failure_report_builder.py +150 -0
  385. holado_report/report/builders/report_builder.py +64 -0
  386. holado_report/report/builders/short_scenario_report_builder.py +94 -0
  387. holado_report/report/builders/summary_by_category_report_builder.py +103 -0
  388. holado_report/report/builders/summary_report_builder.py +110 -0
  389. holado_report/report/builders/summary_scenario_by_category_report_builder.py +109 -0
  390. holado_report/report/builders/summary_scenario_report_builder.py +81 -0
  391. holado_report/report/execution_historic.py +144 -0
  392. holado_report/report/report_manager.py +424 -0
  393. holado_report/report/reports/base_report.py +163 -0
  394. holado_report/report/reports/feature_report.py +106 -0
  395. holado_report/report/reports/scenario_report.py +64 -0
  396. holado_rest/__init__.py +32 -0
  397. holado_rest/api/rest/TODO.txt +2 -0
  398. holado_rest/api/rest/rest_client.py +200 -0
  399. holado_rest/api/rest/rest_manager.py +72 -0
  400. holado_rest/tests/behave/steps/__init__.py +16 -0
  401. holado_rest/tests/behave/steps/api/__init__.py +0 -0
  402. holado_rest/tests/behave/steps/api/rest_client_steps.py +181 -0
  403. holado_rest/tests/behave/steps/private/__init__.py +16 -0
  404. holado_rest/tests/behave/steps/private/api/__init__.py +0 -0
  405. holado_rest/tests/behave/steps/private/api/rest_steps.py +75 -0
  406. holado_s3/__init__.py +17 -0
  407. holado_s3/tests/behave/steps/__init__.py +17 -0
  408. holado_s3/tests/behave/steps/private/__init__.py +16 -0
  409. holado_s3/tests/behave/steps/private/tools/s3_steps.py +89 -0
  410. holado_s3/tests/behave/steps/tools/s3_client_steps.py +403 -0
  411. holado_s3/tests/behave/steps/tools/s3_server_steps.py +57 -0
  412. holado_s3/tools/s3/__init__.py +0 -0
  413. holado_s3/tools/s3/boto3_s3_client.py +59 -0
  414. holado_s3/tools/s3/minio_client.py +75 -0
  415. holado_s3/tools/s3/moto_server.py +52 -0
  416. holado_scripting/__init__.py +54 -0
  417. holado_scripting/common/tools/dynamic_text_manager.py +73 -0
  418. holado_scripting/common/tools/evaluate_parameters.py +228 -0
  419. holado_scripting/common/tools/expression_evaluator.py +389 -0
  420. holado_scripting/common/tools/variable_manager.py +354 -0
  421. holado_scripting/tests/behave/steps/__init__.py +22 -0
  422. holado_scripting/tests/behave/steps/common/tools/variable_convert_steps.py +159 -0
  423. holado_scripting/tests/behave/steps/common/tools/variable_new_steps.py +130 -0
  424. holado_scripting/tests/behave/steps/common/tools/variable_steps.py +108 -0
  425. holado_scripting/tests/behave/steps/common/tools/variable_verify_steps.py +160 -0
  426. holado_scripting/tests/behave/steps/scenario/function_steps.py +77 -0
  427. holado_scripting/tests/behave/steps/scenario/if_steps.py +87 -0
  428. holado_scripting/tests/behave/steps/scenario/loop_steps.py +119 -0
  429. holado_scripting/text/base/base_function.py +25 -0
  430. holado_scripting/text/base/base_verify_function.py +25 -0
  431. holado_scripting/text/base/text_inspecter.py +204 -0
  432. holado_scripting/text/interpreter/exceptions/interpreter_exception.py +25 -0
  433. holado_scripting/text/interpreter/functions/function_apply_function.py +60 -0
  434. holado_scripting/text/interpreter/functions/function_cast.py +60 -0
  435. holado_scripting/text/interpreter/functions/function_convert.py +57 -0
  436. holado_scripting/text/interpreter/functions/function_dynamic_value.py +40 -0
  437. holado_scripting/text/interpreter/functions/function_escape_all_bytes.py +35 -0
  438. holado_scripting/text/interpreter/functions/function_exists_variable.py +39 -0
  439. holado_scripting/text/interpreter/functions/function_hex_to_bytes.py +49 -0
  440. holado_scripting/text/interpreter/functions/function_hex_to_int.py +53 -0
  441. holado_scripting/text/interpreter/functions/function_to_base_64.py +41 -0
  442. holado_scripting/text/interpreter/functions/function_to_bytes.py +50 -0
  443. holado_scripting/text/interpreter/functions/function_to_hex.py +42 -0
  444. holado_scripting/text/interpreter/functions/function_to_string.py +50 -0
  445. holado_scripting/text/interpreter/text_interpreter.py +219 -0
  446. holado_scripting/text/verifier/exceptions/verifier_exception.py +21 -0
  447. holado_scripting/text/verifier/functions/verify_function_extract_in.py +35 -0
  448. holado_scripting/text/verifier/functions/verify_function_match_pattern.py +63 -0
  449. holado_scripting/text/verifier/text_verifier.py +103 -0
  450. holado_sftp/__init__.py +16 -0
  451. holado_sftp/tests/behave/steps/__init__.py +17 -0
  452. holado_sftp/tests/behave/steps/private/__init__.py +16 -0
  453. holado_sftp/tests/behave/steps/private/tools/sftp_steps.py +78 -0
  454. holado_sftp/tests/behave/steps/tools/sftp_client_steps.py +94 -0
  455. holado_sftp/tests/behave/steps/tools/sftp_server_steps.py +82 -0
  456. holado_sftp/tools/sftp/__init__.py +0 -0
  457. holado_sftp/tools/sftp/sftp_client.py +103 -0
  458. holado_sftp/tools/sftp/sftp_server.py +39 -0
  459. holado_swagger/__init__.py +31 -0
  460. holado_swagger/swagger_hub/mockserver/mockserver_client.py +82 -0
  461. holado_swagger/swagger_hub/mockserver/mockserver_manager.py +33 -0
  462. holado_swagger/tests/behave/steps/__init__.py +16 -0
  463. holado_swagger/tests/behave/steps/swagger_hub/mockserver_steps.py +74 -0
  464. holado_system/system/command/command.py +247 -0
  465. holado_system/system/command/command_result.py +128 -0
  466. holado_system/system/command/curl_command.py +101 -0
  467. holado_system/system/command/exceptions.py +59 -0
  468. holado_system/system/filesystem/file.py +150 -0
  469. holado_system/system/global_system.py +187 -0
  470. holado_system/tests/behave/steps/__init__.py +18 -0
  471. holado_system/tests/behave/steps/system/commands_steps.py +92 -0
  472. holado_system/tests/behave/steps/system/file_steps.py +231 -0
  473. holado_system/tests/behave/steps/system/system_steps.py +84 -0
  474. holado_test/__init__.py +30 -0
  475. holado_test/behave/__init__.py +0 -0
  476. holado_test/behave/behave.py +400 -0
  477. holado_test/behave/behave_environment.py +169 -0
  478. holado_test/behave/behave_function.py +33 -0
  479. holado_test/behave/behave_manager.py +558 -0
  480. holado_test/behave/independant_runner.py +66 -0
  481. holado_test/behave/scenario/__init__.py +0 -0
  482. holado_test/behave/scenario/behave_step_tools.py +157 -0
  483. holado_test/common/context/feature_context.py +81 -0
  484. holado_test/common/context/scenario_context.py +169 -0
  485. holado_test/common/context/step_context.py +66 -0
  486. holado_test/common/exceptions/undefined_step_exception.py +21 -0
  487. holado_test/scenario/step_tools.py +547 -0
  488. holado_test/scenario/tester_tools.py +57 -0
  489. holado_test/test_config.py +26 -0
  490. holado_test/tests/behave/steps/__init__.py +18 -0
  491. holado_test/tests/behave/steps/scenario/exception_steps.py +87 -0
  492. holado_test/tests/behave/steps/scenario/scenario_steps.py +100 -0
  493. holado_test/tests/behave/steps/scenario/tester_steps.py +65 -0
  494. holado_test/tools/test_server/client/rest/test_server_client.py +150 -0
  495. holado_test/tools/test_server/server/Dockerfile +60 -0
  496. holado_test/tools/test_server/server/core/server_context.py +42 -0
  497. holado_test/tools/test_server/server/core/server_manager.py +41 -0
  498. holado_test/tools/test_server/server/requirements.txt +2 -0
  499. holado_test/tools/test_server/server/rest/README +2 -0
  500. holado_test/tools/test_server/server/rest/api/__init__.py +24 -0
  501. holado_test/tools/test_server/server/rest/api/campaign/__init__.py +32 -0
  502. holado_test/tools/test_server/server/rest/api/campaign/scenario.py +40 -0
  503. holado_test/tools/test_server/server/rest/initialize_holado.py +72 -0
  504. holado_test/tools/test_server/server/rest/logging.conf +51 -0
  505. holado_test/tools/test_server/server/rest/openapi.yaml +57 -0
  506. holado_test/tools/test_server/server/rest/run.py +41 -0
  507. holado_test/tools/test_server/server/run.sh +6 -0
  508. holado_test/tools/test_server/server/run_test_server_in_docker.sh +104 -0
  509. holado_tools/__init__.py +38 -0
  510. holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.py +36 -0
  511. holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.sh +6 -0
  512. holado_tools/scripts/execute_persisted_post_processes/initialize_holado.py +62 -0
  513. holado_tools/tests/behave/steps/__init__.py +16 -0
  514. holado_tools/tests/behave/steps/tools/host_controller/client_steps.py +97 -0
  515. holado_tools/tools/host_controller/client/rest/host_controller_client.py +275 -0
  516. holado_tools/tools/host_controller/server/Dockerfile +60 -0
  517. holado_tools/tools/host_controller/server/requirements.txt +2 -0
  518. holado_tools/tools/host_controller/server/rest/README +2 -0
  519. holado_tools/tools/host_controller/server/rest/api/__init__.py +24 -0
  520. holado_tools/tools/host_controller/server/rest/api/config.py +88 -0
  521. holado_tools/tools/host_controller/server/rest/api/docker/__init__.py +66 -0
  522. holado_tools/tools/host_controller/server/rest/api/docker/container.py +144 -0
  523. holado_tools/tools/host_controller/server/rest/api/docker/logs.py +66 -0
  524. holado_tools/tools/host_controller/server/rest/api/os.py +58 -0
  525. holado_tools/tools/host_controller/server/rest/initialize_holado.py +72 -0
  526. holado_tools/tools/host_controller/server/rest/openapi.yaml +561 -0
  527. holado_tools/tools/host_controller/server/rest/run.py +31 -0
  528. holado_tools/tools/host_controller/server/run_host_controller_in_docker.sh +107 -0
  529. holado_tools/tools/host_viewer/client/rest/host_viewer_client.py +190 -0
  530. holado_tools/tools/host_viewer/server/Dockerfile +60 -0
  531. holado_tools/tools/host_viewer/server/requirements.txt +2 -0
  532. holado_tools/tools/host_viewer/server/rest/README +2 -0
  533. holado_tools/tools/host_viewer/server/rest/api/__init__.py +24 -0
  534. holado_tools/tools/host_viewer/server/rest/api/docker/__init__.py +65 -0
  535. holado_tools/tools/host_viewer/server/rest/api/docker/container.py +87 -0
  536. holado_tools/tools/host_viewer/server/rest/api/os.py +58 -0
  537. holado_tools/tools/host_viewer/server/rest/initialize_holado.py +72 -0
  538. holado_tools/tools/host_viewer/server/rest/openapi.yaml +301 -0
  539. holado_tools/tools/host_viewer/server/rest/run.py +31 -0
  540. holado_tools/tools/host_viewer/server/run_host_viewer_in_docker.sh +107 -0
  541. holado_value/__init__.py +24 -0
  542. holado_value/common/tables/comparators/table_2_value_table_cell_comparator.py +196 -0
  543. holado_value/common/tables/comparators/table_2_value_table_comparator.py +27 -0
  544. holado_value/common/tables/comparators/table_2_value_table_row_comparator.py +27 -0
  545. holado_value/common/tables/comparators/table_2_value_table_with_header_comparator.py +27 -0
  546. holado_value/common/tables/converters/value_table_converter.py +267 -0
  547. holado_value/common/tables/value_table.py +29 -0
  548. holado_value/common/tables/value_table_cell.py +76 -0
  549. holado_value/common/tables/value_table_manager.py +48 -0
  550. holado_value/common/tables/value_table_row.py +43 -0
  551. holado_value/common/tables/value_table_with_header.py +28 -0
  552. holado_value/common/tools/unique_value_manager.py +109 -0
  553. holado_value/common/tools/value.py +191 -0
  554. holado_value/common/tools/value_types.py +41 -0
  555. holado_value/tests/behave/steps/__init__.py +16 -0
  556. holado_value/tests/behave/steps/private/__init__.py +16 -0
  557. holado_ws/__init__.py +16 -0
  558. holado_ws/api/ws/TODO.txt +2 -0
  559. holado_ws/tests/behave/steps/__init__.py +16 -0
  560. holado_ws/tests/behave/steps/api/web_service_steps.py +189 -0
  561. holado_xml/__init__.py +38 -0
  562. holado_xml/tests/behave/steps/__init__.py +16 -0
  563. holado_xml/tests/behave/steps/private/__init__.py +16 -0
  564. holado_xml/xml/stream_xml_file.py +181 -0
  565. holado_xml/xml/xml_file.py +97 -0
  566. holado_xml/xml/xml_manager.py +35 -0
  567. holado_yaml/__init__.py +31 -0
  568. holado_yaml/tests/behave/steps/__init__.py +16 -0
  569. holado_yaml/tests/behave/steps/yaml_steps.py +161 -0
  570. holado_yaml/yaml/enums.py +28 -0
  571. holado_yaml/yaml/pyyaml/pyyaml_client.py +72 -0
  572. holado_yaml/yaml/ruamel/ruamel_yaml_client.py +80 -0
  573. holado_yaml/yaml/yaml_client.py +203 -0
  574. holado_yaml/yaml/yaml_manager.py +94 -0
  575. test_holado/Dockerfile_test_holado +82 -0
  576. test_holado/__init__.py +4 -0
  577. test_holado/__main__.py +25 -0
  578. test_holado/build_docker_image_to_test_holado_in_docker.sh +7 -0
  579. test_holado/environment.py +60 -0
  580. test_holado/features/Configuration/Actions/execute_persisted_post_processes.feature +13 -0
  581. test_holado/features/NonReg/api/REST.feature +26 -0
  582. test_holado/features/NonReg/api/gRPC.feature +116 -0
  583. test_holado/features/NonReg/common/multiprocessing/simple.feature +60 -0
  584. test_holado/features/NonReg/common/system/commands.feature +43 -0
  585. test_holado/features/NonReg/common/system/system.feature +20 -0
  586. test_holado/features/NonReg/common/tables/table.feature +245 -0
  587. test_holado/features/NonReg/common/tables/value_table_conversion.feature +29 -0
  588. test_holado/features/NonReg/common/tools/DateTime.feature +88 -0
  589. test_holado/features/NonReg/common/tools/UniqueValueManager.feature +43 -0
  590. test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature +135 -0
  591. test_holado/features/NonReg/holado_ais/ais_message-nmea_raw_to_dict.feature +93 -0
  592. test_holado/features/NonReg/holado_ais/message_types/type-10.feature +38 -0
  593. test_holado/features/NonReg/holado_ais/message_types/type-12.feature +37 -0
  594. test_holado/features/NonReg/holado_ais/message_types/type-14.feature +36 -0
  595. test_holado/features/NonReg/holado_ais/message_types/type-15.feature +36 -0
  596. test_holado/features/NonReg/holado_ais/message_types/type-16.feature +38 -0
  597. test_holado/features/NonReg/holado_ais/message_types/type-17.feature +46 -0
  598. test_holado/features/NonReg/holado_ais/message_types/type-18.feature +37 -0
  599. test_holado/features/NonReg/holado_ais/message_types/type-19.feature +38 -0
  600. test_holado/features/NonReg/holado_ais/message_types/type-1_2_3.feature +42 -0
  601. test_holado/features/NonReg/holado_ais/message_types/type-20.feature +38 -0
  602. test_holado/features/NonReg/holado_ais/message_types/type-21.feature +37 -0
  603. test_holado/features/NonReg/holado_ais/message_types/type-22.feature +84 -0
  604. test_holado/features/NonReg/holado_ais/message_types/type-23.feature +49 -0
  605. test_holado/features/NonReg/holado_ais/message_types/type-24.feature +72 -0
  606. test_holado/features/NonReg/holado_ais/message_types/type-25.feature +143 -0
  607. test_holado/features/NonReg/holado_ais/message_types/type-26.feature +144 -0
  608. test_holado/features/NonReg/holado_ais/message_types/type-27.feature +36 -0
  609. test_holado/features/NonReg/holado_ais/message_types/type-4_11.feature +39 -0
  610. test_holado/features/NonReg/holado_ais/message_types/type-5.feature +33 -0
  611. test_holado/features/NonReg/holado_ais/message_types/type-6.feature +37 -0
  612. test_holado/features/NonReg/holado_ais/message_types/type-7_13.feature +43 -0
  613. test_holado/features/NonReg/holado_ais/message_types/type-8.feature +37 -0
  614. test_holado/features/NonReg/holado_ais/message_types/type-9.feature +37 -0
  615. test_holado/features/NonReg/holado_binary/bit_series.error.feature +33 -0
  616. test_holado/features/NonReg/holado_binary/bit_series.feature +144 -0
  617. test_holado/features/NonReg/holado_protobuf/protobuf.feature +291 -0
  618. test_holado/features/NonReg/holado_python/convert.feature +20 -0
  619. test_holado/features/NonReg/holado_python/iterable.feature +61 -0
  620. test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_reset.feature +191 -0
  621. test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_with_tls_and_verify.feature +279 -0
  622. test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_with_tls_without_verify.feature +299 -0
  623. test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_without_tls.feature +163 -0
  624. test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_with_mtls.feature +214 -0
  625. test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_with_tls.feature +184 -0
  626. test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_without_tls.feature +169 -0
  627. test_holado/features/NonReg/holado_scripting/common/tools/dynamic_text_manager.feature +18 -0
  628. test_holado/features/NonReg/holado_scripting/common/tools/expression_evaluator.feature +185 -0
  629. test_holado/features/NonReg/holado_scripting/common/tools/variable_manager.feature +71 -0
  630. test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.error.feature +21 -0
  631. test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.feature +120 -0
  632. test_holado/features/NonReg/holado_yaml/yaml.feature +514 -0
  633. test_holado/features/NonReg/ipc/json.feature +20 -0
  634. test_holado/features/NonReg/scenario/scenario.feature +183 -0
  635. test_holado/features/NonReg/test_steps/behave.feature +275 -0
  636. test_holado/features/NonReg/test_steps/common.feature +100 -0
  637. test_holado/features/NonReg/tools/RabbitMQ.feature +445 -0
  638. test_holado/features/NonReg/tools/RabbitMQ_steps.feature +276 -0
  639. test_holado/features/NonReg/tools/S3/boto3_client.feature +73 -0
  640. test_holado/features/NonReg/tools/S3/minio_client.feature +75 -0
  641. test_holado/features/NonReg/tools/db_sqlite3.feature +41 -0
  642. test_holado/features/NonReg/tools/sFTP.feature +25 -0
  643. test_holado/features/Test/logger.feature +28 -0
  644. test_holado/features/Test/test_host_controller.feature +13 -0
  645. test_holado/features/Test/test_parameter.feature +15 -0
  646. test_holado/features/__init__.py +0 -0
  647. test_holado/initialize_holado.py +62 -0
  648. test_holado/logging.conf +53 -0
  649. test_holado/resources/proto/definitions/protobuf/custom_types/field_types.proto +24 -0
  650. test_holado/resources/proto/definitions/protobuf/protobuf.dev/tutorial/addressbook.proto +56 -0
  651. test_holado/resources/proto/generated/protobuf/custom_types/field_types_pb2.py +34 -0
  652. test_holado/resources/proto/generated/protobuf/protobuf/dev/tutorial/addressbook_pb2.py +34 -0
  653. test_holado/resources/scripts/list_tags.sh +2 -0
  654. test_holado/resources/scripts/update_resources_proto_generated.py +70 -0
  655. test_holado/steps/__init__.py +0 -0
  656. test_holado/steps/private_steps.py +20 -0
  657. test_holado/steps/public_steps.py +23 -0
  658. test_holado/test_holado_session_context.py +43 -0
  659. test_holado/tools/connexion/api_rest/openapi.yaml +16 -0
  660. test_holado/tools/connexion/api_rest/run.py +19 -0
  661. test_holado/tools/django/README.txt +3 -0
  662. test_holado/tools/django/api_grpc/api_grpc/__init__.py +0 -0
  663. test_holado/tools/django/api_grpc/api_grpc/api1/__init__.py +0 -0
  664. test_holado/tools/django/api_grpc/api_grpc/api1/admin.py +3 -0
  665. test_holado/tools/django/api_grpc/api_grpc/api1/apps.py +6 -0
  666. test_holado/tools/django/api_grpc/api_grpc/api1/migrations/__init__.py +0 -0
  667. test_holado/tools/django/api_grpc/api_grpc/api1/models.py +3 -0
  668. test_holado/tools/django/api_grpc/api_grpc/api1/proto/__init__.py +0 -0
  669. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account.proto +27 -0
  670. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2.py +33 -0
  671. test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2_grpc.py +199 -0
  672. test_holado/tools/django/api_grpc/api_grpc/api1/serializers.py +12 -0
  673. test_holado/tools/django/api_grpc/api_grpc/api1/services.py +11 -0
  674. test_holado/tools/django/api_grpc/api_grpc/api1/tests.py +3 -0
  675. test_holado/tools/django/api_grpc/api_grpc/api1/views.py +3 -0
  676. test_holado/tools/django/api_grpc/api_grpc/asgi.py +16 -0
  677. test_holado/tools/django/api_grpc/api_grpc/settings.py +126 -0
  678. test_holado/tools/django/api_grpc/api_grpc/urls.py +27 -0
  679. test_holado/tools/django/api_grpc/api_grpc/wsgi.py +16 -0
  680. test_holado/tools/django/api_grpc/db.sqlite3 +0 -0
  681. test_holado/tools/django/api_grpc/manage.py +29 -0
  682. test_holado/tools/django/api_grpc/manual_test_commands.txt +25 -0
  683. test_holado/tools/django/api_grpc/patch_djangogrpcframework.py +42 -0
  684. test_holado/tools/django/api_rest/api_rest/__init__.py +0 -0
  685. test_holado/tools/django/api_rest/api_rest/api1/__init__.py +0 -0
  686. test_holado/tools/django/api_rest/api_rest/api1/admin.py +3 -0
  687. test_holado/tools/django/api_rest/api_rest/api1/apps.py +6 -0
  688. test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py +0 -0
  689. test_holado/tools/django/api_rest/api_rest/api1/models.py +3 -0
  690. test_holado/tools/django/api_rest/api_rest/api1/serializers.py +15 -0
  691. test_holado/tools/django/api_rest/api_rest/api1/tests.py +3 -0
  692. test_holado/tools/django/api_rest/api_rest/api1/views.py +24 -0
  693. test_holado/tools/django/api_rest/api_rest/asgi.py +16 -0
  694. test_holado/tools/django/api_rest/api_rest/settings.py +133 -0
  695. test_holado/tools/django/api_rest/api_rest/urls.py +32 -0
  696. test_holado/tools/django/api_rest/api_rest/wsgi.py +16 -0
  697. test_holado/tools/django/api_rest/db.sqlite3 +0 -0
  698. test_holado/tools/django/api_rest/manage.py +22 -0
@@ -0,0 +1,37 @@
1
+ @ais
2
+ @type_6
3
+ Feature: Message type 6 : Addressed Binary Message
4
+
5
+ Scenario: Create, convert, encode and decode message
6
+ # Create message
7
+ When MESSAGE = new AIS message of type 'T6_ADDRESSED_BINARY_MESSAGE'
8
+ | repeat | mmsi | seqno | dest_mmsi | retransmit | dac | fid | data |
9
+ | 1 | 235006280 | 3 | 23200002 | True | 1 | 1 | b'15007B00' |
10
+
11
+ # Verify bytes conversion
12
+ When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
13
+ When MESSAGE_BYTES = new AIS message of type 'T6_ADDRESSED_BINARY_MESSAGE' as bitarray bytes
14
+ | repeat | mmsi | seqno | dest_mmsi | retransmit | dac | fid | data |
15
+ | 1 | 235006280 | 3 | 23200002 | True | 1 | 1 | b'15007B00' |
16
+ Then MESSAGE_TO_BYTES == MESSAGE_BYTES
17
+
18
+ # Encode in NMEA
19
+ When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
20
+ | talker_id | radio_channel | seq_id | group_id |
21
+ | 'AIVDM' | 'A' | 0 | 0 |
22
+ Then ${len(NMEA_SENTENCES)} == 1
23
+
24
+ # Verify some NMEA fields
25
+ Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
26
+ Then STRING_NMEA_MSG[-3] == 'A'
27
+
28
+ # Decode NMEA message
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
+ When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
+ Then table DECODED_NMEA_MESSAGE_TABLE is
32
+ | dac | data | dest_mmsi | fid | mmsi | msg_type | repeat | retransmit | seqno |
33
+ | 1 | b'15007B00' | 23200002 | 1 | 235006280 | 6 | 1 | True | 3 |
34
+
35
+
36
+
37
+
@@ -0,0 +1,43 @@
1
+ @ais
2
+ @type_7
3
+ @type_13
4
+ Feature: Message types 7 and 13 : Binary Acknowledge
5
+
6
+ Scenario Outline: Create, convert, encode and decode message
7
+ # Create message
8
+ When MESSAGE = new AIS message of type '<message_type>'
9
+ | repeat | mmsi | mmsi1 | mmsiseq1 | mmsi2 | mmsiseq2 | mmsi3 | mmsiseq3 | mmsi4 | mmsiseq4 |
10
+ | 2 | 235006280 | 23200001 | 3 | 23200002 | 3 | 23200003 | 2 | 23200004 | 1 |
11
+
12
+ # Verify bytes conversion
13
+ When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
14
+ When MESSAGE_BYTES = new AIS message of type '<message_type>' as bitarray bytes
15
+ | repeat | mmsi | mmsi1 | mmsiseq1 | mmsi2 | mmsiseq2 | mmsi3 | mmsiseq3 | mmsi4 | mmsiseq4 |
16
+ | 2 | 235006280 | 23200001 | 3 | 23200002 | 3 | 23200003 | 2 | 23200004 | 1 |
17
+ Then MESSAGE_TO_BYTES == MESSAGE_BYTES
18
+
19
+ # Encode in NMEA
20
+ When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
21
+ | talker_id | radio_channel | seq_id | group_id |
22
+ | 'AIVDM' | <channel> | 0 | 0 |
23
+ Then ${len(NMEA_SENTENCES)} == 1
24
+
25
+ # Verify some NMEA fields
26
+ Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
27
+ Then STRING_NMEA_MSG[-3] == <channel>
28
+
29
+ # Decode NMEA message
30
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
31
+ When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
32
+ Then table DECODED_NMEA_MESSAGE_TABLE is
33
+ | mmsi | mmsi1 | mmsi2 | mmsi3 | mmsi4 | mmsiseq1 | mmsiseq2 | mmsiseq3 | mmsiseq4 | msg_type | repeat |
34
+ | 235006280 | 23200001 | 23200002 | 23200003 | 23200004 | 3 | 3 | 2 | 1 | <type> | 2 |
35
+
36
+ Examples: With types 7 and 13
37
+ | message_type | type | channel |
38
+ | T7_BINARY_ACKNOWLEGDE | 7 | 'A' |
39
+ | T13_BINARY_ACKNOWLEGDE | 13 | 'A' |
40
+
41
+
42
+
43
+
@@ -0,0 +1,37 @@
1
+ @ais
2
+ @type_8
3
+ Feature: Message type 8 : Binary Broadcast Message
4
+
5
+ Scenario: Create, convert, encode and decode message
6
+ # Create message
7
+ When MESSAGE = new AIS message of type 'T8_BINARY_BROADCAST_MESSAGE'
8
+ | repeat | mmsi | dac | fid | data |
9
+ | 1 | 235006280 | 5 | 3 | b'1' |
10
+
11
+ # Verify bytes conversion
12
+ When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
13
+ When MESSAGE_BYTES = new AIS message of type 'T8_BINARY_BROADCAST_MESSAGE' as bitarray bytes
14
+ | repeat | mmsi | dac | fid | data |
15
+ | 1 | 235006280 | 5 | 3 | b'1' |
16
+ Then MESSAGE_TO_BYTES == MESSAGE_BYTES
17
+
18
+ # Encode in NMEA
19
+ When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
20
+ | talker_id | radio_channel | seq_id | group_id |
21
+ | 'AIVDM' | 'A' | 0 | 0 |
22
+ Then ${len(NMEA_SENTENCES)} == 1
23
+
24
+ # Verify some NMEA fields
25
+ Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
26
+ Then STRING_NMEA_MSG[-3] == 'A'
27
+
28
+ # Decode NMEA message
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
+ When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
+ Then table DECODED_NMEA_MESSAGE_TABLE is
32
+ | dac | data | fid | mmsi | msg_type | repeat |
33
+ | 5 | b'1' | 3 | 235006280 | 8 | 1 |
34
+
35
+
36
+
37
+
@@ -0,0 +1,37 @@
1
+ @ais
2
+ @type_9
3
+ Feature: Message type 9 : Standard SAR Aircraft Position Report
4
+
5
+ Scenario: Create, convert, encode and decode message
6
+ # Create message
7
+ When MESSAGE = new AIS message of type 'T9_STANDARD_SAR_AIRCRAFT_POSITION_REPORT'
8
+ | repeat | mmsi | alt | speed | accuracy | lon | lat | course | second | reserved_1 | dte | assigned | raim | radio |
9
+ | 1 | 235006280 | 1 | 44.2 | False | 60.3 | 45.0 | 1.7 | 1 | 1 | True | True | True | 1 |
10
+
11
+ # Verify bytes conversion
12
+ When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
13
+ When MESSAGE_BYTES = new AIS message of type 'T9_STANDARD_SAR_AIRCRAFT_POSITION_REPORT' as bitarray bytes
14
+ | repeat | mmsi | alt | speed | accuracy | lon | lat | course | second | reserved_1 | dte | assigned | raim | radio |
15
+ | 1 | 235006280 | 1 | 44.2 | False | 60.3 | 45.0 | 1.7 | 1 | 1 | True | True | True | 1 |
16
+ Then MESSAGE_TO_BYTES == MESSAGE_BYTES
17
+
18
+ # Encode in NMEA
19
+ When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
20
+ | talker_id | radio_channel | seq_id | group_id |
21
+ | 'AIVDM' | 'A' | 0 | 0 |
22
+ Then ${len(NMEA_SENTENCES)} == 1
23
+
24
+ # Verify some NMEA fields
25
+ Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
26
+ Then STRING_NMEA_MSG[-3] == 'A'
27
+
28
+ # Decode NMEA message
29
+ Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
30
+ When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
31
+ Then table DECODED_NMEA_MESSAGE_TABLE is
32
+ | accuracy | alt | assigned | course | dte | lat | lon | mmsi | msg_type | radio | raim | repeat | reserved_1 | second | speed |
33
+ | False | 1 | True | 1.7 | True | 45.0 | 60.3 | 235006280 | 9 | 1 | True | 1 | 1 | 1 | 44.0 |
34
+
35
+
36
+
37
+
@@ -0,0 +1,33 @@
1
+ @testing_solution
2
+ @bit_series
3
+ @error
4
+ @go_nogo
5
+ Feature: Test bit_series module
6
+
7
+ Scenario: Create from hexa bit-series of bit length out of bytes array length
8
+ Given BIT_SERIES = bit series
9
+ | Name | Bit length | Type |
10
+ | 'F1' | 3 | int |
11
+ | 'F2' | 1 | int |
12
+ | 'F3' | 1 | int |
13
+
14
+ Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; left padding ; obtained padding bits: 100\)'
15
+ When fill bit series BIT_SERIES from hexadecimal string '92'
16
+
17
+ Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; left padding ; obtained padding bits: 100\)'
18
+ When fill bit series BIT_SERIES from hexadecimal string '92' (left padded)
19
+
20
+ Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; right padding ; obtained padding bits: 010\)'
21
+ When fill bit series BIT_SERIES from hexadecimal string '92' (right padded)
22
+
23
+ Scenario: Create and convert bit-series to hexa with a field value exceeding bit length
24
+ Given BIT_SERIES = bit series
25
+ | Name | Bit length | Type | Value |
26
+ | 'F1' | 3 | int | 4 |
27
+ | 'F2' | 1 | int | 1 |
28
+ | 'F3' | 2 | int | 2 |
29
+ | 'F4' | 2 | int | 4 |
30
+ Given next step shall fail on exception matching 'For field 'F4', the value \[4\] has binary length 3 \(expected length: 2\)'
31
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
32
+
33
+
@@ -0,0 +1,144 @@
1
+ @testing_solution
2
+ @bit_series
3
+ @go_nogo
4
+ Feature: Test bit_series module
5
+
6
+ @to_hexadecimal_string
7
+ Scenario: Create and convert bit-series to hexa
8
+ Given BIT_SERIES = bit series
9
+ | Name | Bit length | Type | Value |
10
+ | 'F1' | 3 | int | 4 |
11
+ | 'F2' | 1 | int | 1 |
12
+ | 'F3' | 2 | int | 2 |
13
+ | 'F4' | 2 | int | 1 |
14
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
15
+ Then RAW_TM == '99'
16
+
17
+ Given BIT_SERIES = bit series
18
+ | Name | Bit length | Type | Value |
19
+ | 'F1' | 3 | int | 4 |
20
+ | 'F2' | 1 | int | 1 |
21
+ | 'F3' | 2 | int | 2 |
22
+ | 'F4' | 2 | int | 1 |
23
+ | 'F5' | 16 | str | 'ffff' |
24
+ | 'F6' | 16 | str | 'AE1B' |
25
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
26
+ Then RAW_TM == '99FFFFAE1B'
27
+
28
+
29
+ @to_hexadecimal_string
30
+ @padding
31
+ Scenario: Create and convert to hexa bit-series of bit length out of bytes array length
32
+ Given BIT_SERIES = bit series
33
+ | Name | Bit length | Type | Value |
34
+ | 'F1' | 3 | int | 4 |
35
+ | 'F2' | 1 | int | 1 |
36
+ | 'F3' | 1 | int | 1 |
37
+
38
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
39
+ Then RAW_TM == '13'
40
+
41
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (left padded)
42
+ Then RAW_TM == '13'
43
+
44
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (right padded)
45
+ Then RAW_TM == '98'
46
+
47
+
48
+ Given BIT_SERIES = bit series
49
+ | Name | Bit length | Type | Value |
50
+ | 'F1' | 3 | int | 4 |
51
+ | 'F2' | 1 | int | 1 |
52
+ | 'F3' | 3 | int | 1 |
53
+
54
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
55
+ Then RAW_TM == '49'
56
+
57
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (left padded)
58
+ Then RAW_TM == '49'
59
+
60
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (right padded)
61
+ Then RAW_TM == '92'
62
+
63
+
64
+ @from_hexadecimal_string
65
+ Scenario: Create a bit-series from hexa
66
+ Given BIT_SERIES = bit series
67
+ | Name | Bit length | Type |
68
+ | 'F1' | 3 | int |
69
+ | 'F2' | 1 | int |
70
+ | 'F3' | 2 | int |
71
+ | 'F4' | 2 | int |
72
+ When fill bit series BIT_SERIES from hexadecimal string '92'
73
+ Then bit series BIT_SERIES is
74
+ | Name | Bit length | Type | Value |
75
+ | 'F1' | 3 | int | 4 |
76
+ | 'F2' | 1 | int | 1 |
77
+ | 'F3' | 2 | int | 0 |
78
+ | 'F4' | 2 | int | 2 |
79
+
80
+
81
+ @from_hexadecimal_string
82
+ @padding
83
+ Scenario: Create from hexa bit-series of bit length out of bytes array length
84
+ Given BIT_SERIES = bit series
85
+ | Name | Bit length | Type |
86
+ | 'F1' | 3 | int |
87
+ | 'F2' | 1 | int |
88
+ | 'F3' | 1 | int |
89
+
90
+ When fill bit series BIT_SERIES from hexadecimal string '13'
91
+ Then bit series BIT_SERIES is
92
+ | Name | Bit length | Type | Value |
93
+ | 'F1' | 3 | int | 4 |
94
+ | 'F2' | 1 | int | 1 |
95
+ | 'F3' | 1 | int | 1 |
96
+
97
+ When fill bit series BIT_SERIES from hexadecimal string '13' (left padded)
98
+ Then bit series BIT_SERIES is
99
+ | Name | Bit length | Type | Value |
100
+ | 'F1' | 3 | int | 4 |
101
+ | 'F2' | 1 | int | 1 |
102
+ | 'F3' | 1 | int | 1 |
103
+
104
+ When fill bit series BIT_SERIES from hexadecimal string '98' (right padded)
105
+ Then bit series BIT_SERIES is
106
+ | Name | Bit length | Type | Value |
107
+ | 'F1' | 3 | int | 4 |
108
+ | 'F2' | 1 | int | 1 |
109
+ | 'F3' | 1 | int | 1 |
110
+
111
+
112
+ @is_bit_series
113
+ Scenario: Verify hexa string is bit series
114
+ Then hexadecimal string '92' is bit series
115
+ | Name | Bit length | Type | Value |
116
+ | 'F1' | 3 | int | 4 |
117
+ | 'F2' | 1 | int | 1 |
118
+ | 'F3' | 2 | int | 0 |
119
+ | 'F4' | 2 | int | 2 |
120
+
121
+
122
+ @set_field
123
+ Scenario: Set bit-series field by variable expression
124
+ Given BIT_SERIES = bit series
125
+ | Name | Bit length | Type | Value |
126
+ | 'F1' | 3 | int | 4 |
127
+ | 'F2' | 1 | int | 1 |
128
+ | 'F3' | 2 | int | 2 |
129
+ | 'F4' | 2 | int | 1 |
130
+ | 'F5' | 16 | int | 0 |
131
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
132
+ Then BIT_SERIES['F5'] == 0
133
+ Then RAW_TM[-4:] == '0000'
134
+
135
+ Given BIT_SERIES['F5'] = 1
136
+ Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
137
+
138
+ Then BIT_SERIES['F5'] == 1
139
+ Then RAW_TM[-4:] == '0001'
140
+ Then BIT_SERIES['F5'] != 0
141
+ Then RAW_TM[-4:] != '0000'
142
+
143
+
144
+
@@ -0,0 +1,291 @@
1
+ @testing_solution
2
+ @protobuf
3
+ @go_nogo
4
+ Feature: Test Protobuf module
5
+
6
+ Scenario: Tutorial example
7
+
8
+ ### PRECONDITIONS - BEGIN
9
+ Given begin preconditions
10
+
11
+
12
+ Given end preconditions
13
+ ### PRECONDITIONS - END
14
+
15
+ Given PROTO = new Protobuf object of type 'tutorial.AddressBook'
16
+ | Name | Value |
17
+ | 'people[0].id' | 0 |
18
+ | 'people[0].name' | 'name0' |
19
+ | 'people[0].email' | 'email0@test.com' |
20
+ | 'people[0].last_updated' | '2022-01-01T01:00:00Z' |
21
+ | 'people[0].phones[0].number' | '0623456789' |
22
+ | 'people[0].phones[0].type' | MOBILE |
23
+ #| 'people[0].phones[0].type' | 0 |
24
+ | 'people[0].phones[1].number' | '0123456789' |
25
+ #| 'people[0].phones[1].type' | HOME |
26
+ | 'people[0].phones[1].type' | 1 |
27
+ | 'people[1].id' | 1 |
28
+ | 'people[1].name' | 'name1' |
29
+ | 'people[1].email' | 'email1@test.com' |
30
+ | 'people[1].last_updated' | '2022-02-02 02:00:00' |
31
+ | 'people[1].phones[0].number' | '0523456789' |
32
+ | 'people[1].phones[0].type' | WORK |
33
+ #| 'people[1].phones[0].type' | 2 |
34
+
35
+ Given PROTO_STR = serialize Protobuf object PROTO
36
+
37
+ Given NEW_PROTO = unserialize string PROTO_STR as 'tutorial.AddressBook' Protobuf object
38
+
39
+
40
+ Scenario: Map field assigned by key name
41
+
42
+ ### PRECONDITIONS - BEGIN
43
+ Given begin preconditions
44
+
45
+
46
+ Given end preconditions
47
+ ### PRECONDITIONS - END
48
+
49
+ Given PROTO = new Protobuf object of type 'custom_types.MessageWithMap'
50
+ | Name | Value |
51
+ | 'id' | 0 |
52
+ | 'map[k1]' | 'v1' |
53
+
54
+ Given PROTO_STR = serialize Protobuf object PROTO
55
+
56
+ Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithMap' Protobuf object
57
+
58
+ Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table with names uncollapsed
59
+ Then table NEW_PROTO_TABLE is
60
+ | Name | Value |
61
+ | 'id' | 0 |
62
+ | 'map[k1]' | 'v1' |
63
+
64
+ Scenario: Map field assigned by dict
65
+
66
+ ### PRECONDITIONS - BEGIN
67
+ Given begin preconditions
68
+
69
+
70
+ Given end preconditions
71
+ ### PRECONDITIONS - END
72
+
73
+ Given PROTO = new Protobuf object of type 'custom_types.MessageWithMap'
74
+ | Name | Value |
75
+ | 'id' | 0 |
76
+ | 'map' | {'k1':'v1'} |
77
+
78
+ Given PROTO_STR = serialize Protobuf object PROTO
79
+
80
+ Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithMap' Protobuf object
81
+
82
+ Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
83
+ Then table NEW_PROTO_TABLE is
84
+ | Name | Value |
85
+ | 'id' | 0 |
86
+ | 'map' | {'k1':'v1'} |
87
+
88
+
89
+ Scenario: Optional field when set
90
+ ### PRECONDITIONS - BEGIN
91
+ Given begin preconditions
92
+
93
+ Given PROTO = new Protobuf object of type 'custom_types.MessageWithOptional'
94
+ | Name | Value |
95
+ | 'id' | 0 |
96
+ | 'text' | 'toto' |
97
+ | 'optional_text' | 'pipo' |
98
+
99
+ Given end preconditions
100
+ ### PRECONDITIONS - END
101
+
102
+ Given PROTO_TABLE = convert Protobuf object PROTO to name/value table
103
+ Then table PROTO_TABLE is
104
+ | Name | Value |
105
+ | 'id' | 0 |
106
+ | 'text' | 'toto' |
107
+ | 'optional_text' | 'pipo' |
108
+
109
+ Given PROTO_STR = serialize Protobuf object PROTO
110
+
111
+ Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithOptional' Protobuf object
112
+
113
+ Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
114
+ Then NEW_PROTO_TABLE == PROTO_TABLE
115
+
116
+
117
+ Scenario: Optional field when not set
118
+ ### PRECONDITIONS - BEGIN
119
+ Given begin preconditions
120
+
121
+ Given PROTO = new Protobuf object of type 'custom_types.MessageWithOptional'
122
+ | Name | Value |
123
+ | 'id' | 0 |
124
+ | 'text' | 'toto' |
125
+
126
+ Given end preconditions
127
+ ### PRECONDITIONS - END
128
+
129
+ Given PROTO_TABLE = convert Protobuf object PROTO to name/value table
130
+ Then table PROTO_TABLE is
131
+ | Name | Value |
132
+ | 'id' | 0 |
133
+ | 'text' | 'toto' |
134
+
135
+ Given PROTO_STR = serialize Protobuf object PROTO
136
+
137
+ Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithOptional' Protobuf object
138
+
139
+ Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
140
+ Then NEW_PROTO_TABLE == PROTO_TABLE
141
+
142
+
143
+ Scenario: Normal field when not set
144
+ ### PRECONDITIONS - BEGIN
145
+ Given begin preconditions
146
+
147
+ Given PROTO = new Protobuf object of type 'custom_types.MessageWithOptional'
148
+ | Name | Value |
149
+ | 'id' | 0 |
150
+ | 'optional_text' | 'pipo' |
151
+
152
+ Given end preconditions
153
+ ### PRECONDITIONS - END
154
+
155
+ Given PROTO_TABLE = convert Protobuf object PROTO to name/value table
156
+ Then table PROTO_TABLE is
157
+ | Name | Value |
158
+ | 'id' | 0 |
159
+ | 'text' | '' |
160
+ | 'optional_text' | 'pipo' |
161
+
162
+ Given PROTO_STR = serialize Protobuf object PROTO
163
+
164
+ Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithOptional' Protobuf object
165
+
166
+ Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
167
+ Then NEW_PROTO_TABLE == PROTO_TABLE
168
+
169
+ @repeated_assigned_by_list
170
+ Scenario: Repeated field assigned by list
171
+
172
+ ### PRECONDITIONS - BEGIN
173
+ Given begin preconditions
174
+
175
+
176
+ Given end preconditions
177
+ ### PRECONDITIONS - END
178
+
179
+ Given PROTO = new Protobuf object of type 'custom_types.MessageWithRepeated'
180
+ | Name | Value |
181
+ | 'id' | 0 |
182
+ | 'values' | [1, 2, 3] |
183
+
184
+ Given PROTO_STR = serialize Protobuf object PROTO
185
+
186
+ Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithRepeated' Protobuf object
187
+
188
+ Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
189
+ Then table NEW_PROTO_TABLE is
190
+ | Name | Value |
191
+ | 'id' | 0 |
192
+ | 'values' | [1, 2, 3] |
193
+
194
+
195
+ @enum_field
196
+ Scenario: Enum field
197
+ ### PRECONDITIONS - BEGIN
198
+ Given begin preconditions
199
+
200
+ Given PROTO = new Protobuf object of type 'tutorial.AddressBook'
201
+ | Name | Value |
202
+ | 'people[0].id' | 0 |
203
+ | 'people[0].name' | 'name0' |
204
+ | 'people[0].email' | 'email0@test.com' |
205
+ | 'people[0].last_updated' | '2022-01-01T01:00:00Z' |
206
+ | 'people[0].phones[0].number' | '0623456789' |
207
+ | 'people[0].phones[0].type' | MOBILE |
208
+ #| 'people[0].phones[0].type' | 0 |
209
+ | 'people[0].phones[1].number' | '0123456789' |
210
+ #| 'people[0].phones[1].type' | HOME |
211
+ | 'people[0].phones[1].type' | 1 |
212
+ | 'people[0].phones[2].number' | '0923456789' |
213
+ | 'people[0].phones[2].type' | WORK |
214
+ #| 'people[0].phones[2].type' | 2 |
215
+
216
+ Given end preconditions
217
+ ### PRECONDITIONS - END
218
+
219
+ # Get enum value
220
+ Given MOBILE_VALUE = value of Protobuf enum 'tutorial.Person.PhoneType.MOBILE'
221
+ Then MOBILE_VALUE == 0
222
+ Given HOME_VALUE = value of Protobuf enum 'tutorial.Person.PhoneType.HOME'
223
+ Then HOME_VALUE == 1
224
+ Given WORK_VALUE = value of Protobuf enum 'tutorial.Person.PhoneType.WORK'
225
+ Then WORK_VALUE == 2
226
+
227
+ # Verify enum value in a Protobuf message
228
+ Then PROTO.people[0].phones[0].type == MOBILE_VALUE
229
+ Then PROTO.people[0].phones[1].type == HOME_VALUE
230
+ Then PROTO.people[0].phones[2].type == WORK_VALUE
231
+
232
+ # Verify enum name by its value
233
+ Given PHONE_TYPE_NAME = name of value MOBILE_VALUE of Protobuf enum type 'tutorial.Person.PhoneType'
234
+ Then PHONE_TYPE_NAME == 'MOBILE'
235
+
236
+ # Verify message by convertion as a table
237
+ Given PROTO_TABLE = convert Protobuf object PROTO to name/value table with names and repeated uncollapsed
238
+ Then table PROTO_TABLE is
239
+ | Name | Value |
240
+ | 'people[0].name' | 'name0' |
241
+ | 'people[0].id' | 0 |
242
+ | 'people[0].email' | 'email0@test.com' |
243
+ | 'people[0].phones[0].number' | '0623456789' |
244
+ | 'people[0].phones[0].type' | MOBILE |
245
+ | 'people[0].phones[1].number' | '0123456789' |
246
+ | 'people[0].phones[1].type' | HOME |
247
+ | 'people[0].phones[2].number' | '0923456789' |
248
+ | 'people[0].phones[2].type' | WORK |
249
+ | 'people[0].last_updated.seconds' | 1640998800 |
250
+ | 'people[0].last_updated.nanos' | 0 |
251
+
252
+
253
+ @import_enum
254
+ Scenario: Import enum
255
+ Given import Protobuf enum type 'tutorial.Person.PhoneType'
256
+ Then PhoneType.MOBILE == 0
257
+ Then PhoneType.HOME == 1
258
+ Then PhoneType.WORK == 2
259
+ Then tutorial.Person.PhoneType.MOBILE == 0
260
+ Then tutorial.Person.PhoneType.HOME == 1
261
+ Then tutorial.Person.PhoneType.WORK == 2
262
+
263
+ Given import values of Protobuf enum type 'tutorial.Person.PhoneType'
264
+ Then MOBILE == 0
265
+ Then HOME == 1
266
+ Then WORK == 2
267
+
268
+ Given import values of Protobuf enum type 'tutorial.Person.PhoneType' with prefix 'PHONE_TYPE_'
269
+ Then PHONE_TYPE_MOBILE == 0
270
+ Then PHONE_TYPE_HOME == 1
271
+ Then PHONE_TYPE_WORK == 2
272
+
273
+ # Use imports in other sentences
274
+ Given VALUE = -1
275
+ Given if ${PHONE_TYPE_MOBILE} == 0:
276
+ Given VALUE = 0
277
+ Given end if
278
+ Then VALUE == 0
279
+
280
+ Given if ${PhoneType.HOME} == 1:
281
+ Given VALUE = 1
282
+ Given end if
283
+ Then VALUE == 1
284
+
285
+ Given if 2 == ${PhoneType.WORK}:
286
+ Given VALUE = 2
287
+ Given end if
288
+ Then VALUE == 2
289
+
290
+
291
+
@@ -0,0 +1,20 @@
1
+ @testing_solution
2
+ @python
3
+ Feature: Test python convert steps
4
+
5
+ @list_to_hexa
6
+ Scenario: Convert list to hexa strings
7
+
8
+ ### PRECONDITIONS - BEGIN
9
+ Given begin preconditions
10
+
11
+ Given LIST_STR = ['v1', 'v2']
12
+ Given LIST_HEX_EXPECTED = ['7631', '7632']
13
+
14
+ Given end preconditions
15
+ ### PRECONDITIONS - END
16
+
17
+ Given LIST_HEX = convert list LIST_STR of strings to list of hexadecimal strings
18
+ Then LIST_HEX == LIST_HEX_EXPECTED
19
+
20
+