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,299 @@
1
+ @testing_solution
2
+ @python
3
+ @socket
4
+ @ssl
5
+ @without_cert_file
6
+ Feature: Test python socket steps with ssl, server with self-signed keys, and client doesn't verify certificate
7
+
8
+ @blocking_socket
9
+ Scenario: Server and client with blocking connections
10
+
11
+ ### PRECONDITIONS - BEGIN
12
+ Given begin preconditions
13
+
14
+ # Get certificate
15
+ #Given CACERTS_PATH = default CA certs file path
16
+ #Given CACERTS_PATH = CA certs file path (from certifi package)
17
+ #Given CERTS_PATH = default certs directory path
18
+
19
+ # Generate key files
20
+ Given CERTFILE_PATH = path to file with name 'localhost.crt'
21
+ Given KEYFILE_PATH = path to file with name 'localhost.key'
22
+ Given generate new self-signed key files for localhost
23
+ | Name | Value |
24
+ | 'public_key_path' | CERTFILE_PATH |
25
+ | 'private_key_path' | KEYFILE_PATH |
26
+ | 'algorithm' | 'rsa:2048' |
27
+
28
+ # Use echo server with a blocking connection
29
+ Given PORT = first available anonymous port
30
+ Given SERVER = new echo TCP socket server
31
+ | Name | Value |
32
+ | 'host' | 'localhost' |
33
+ | 'port' | PORT |
34
+ | 'ssl.activate' | True |
35
+ #| 'ssl.create_default_context.cafile' | CACERTS_PATH |
36
+ #| 'ssl.create_default_context.capath' | CERTS_PATH |
37
+ | 'ssl.context.ciphers' | 'ALL' |
38
+ #| 'ssl.context.ciphers' | '@SECLEVEL=2:ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES:DHE+AES:AESGCM:!aNULL:!eNULL:!aDSS:!SHA1:!AESCCM:!PSK' |
39
+ #| 'ssl.context.ciphers' | 'AES256-GCM-SHA384' |
40
+ #| 'ssl.context.ciphers' | 'DEFAULT' |
41
+ #| 'ssl.context.ciphers' | 'OPENSSL_CIPHERS' |
42
+ #| 'ssl.context.ciphers' | '@SECLEVEL=1:ALL' |
43
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
44
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
45
+ #| 'ssl.context.minimum_version' | ssl.TLSVersion.TLSv1_2 |
46
+
47
+ # Create a TCP client with a blocking connection
48
+ Given CLIENT = new TCP socket client
49
+ | Name | Value |
50
+ | 'host' | 'localhost' |
51
+ | 'port' | PORT |
52
+ | 'ssl.activate' | True |
53
+ #| 'ssl.create_default_context.cafile' | CERTFILE_PATH |
54
+ | 'ssl.context.ciphers' | 'ALL' |
55
+ #| 'ssl.context.ciphers' | '@SECLEVEL=2:ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES:DHE+AES:AESGCM:!aNULL:!eNULL:!aDSS:!SHA1:!AESCCM:!PSK' |
56
+ #| 'ssl.context.ciphers' | 'AES256-GCM-SHA384' |
57
+ #| 'ssl.context.ciphers' | 'DEFAULT' |
58
+ #| 'ssl.context.ciphers' | 'OPENSSL_CIPHERS' |
59
+ #| 'ssl.context.ciphers' | '@SECLEVEL=1:ALL' |
60
+ #| 'ssl.context.minimum_version' | ssl.TLSVersion.TLSv1_2 |
61
+ | 'ssl.context.check_hostname' | False |
62
+ | 'ssl.context.verify_mode' | ssl.CERT_NONE |
63
+ #| 'ssl.context.load_verify_locations.cafile' | CERTFILE_PATH |
64
+
65
+ Given end preconditions
66
+ ### PRECONDITIONS - END
67
+
68
+ # Start echo server
69
+ When start (socket server: SERVER)
70
+ When ensure SSL handshake is done (socket: CLIENT)
71
+
72
+ # Write data and verify result is identical
73
+ When write b'\x01\x02' (socket: CLIENT)
74
+ When DATA = read (socket: CLIENT)
75
+ Then DATA == b'\x01\x02'
76
+
77
+ When write b'\x11\x21' (socket: CLIENT)
78
+ When DATA = read (socket: CLIENT)
79
+ Then DATA == b'\x11\x21'
80
+
81
+ # Stop server
82
+ #When stop (socket server: SERVER)
83
+
84
+
85
+ @non_blocking_socket
86
+ Scenario: Server and client with non blocking connection
87
+
88
+ ### PRECONDITIONS - BEGIN
89
+ Given begin preconditions
90
+
91
+ # Generate key files
92
+ Given CERTFILE_PATH = path to file with name 'localhost.crt'
93
+ Given KEYFILE_PATH = path to file with name 'localhost.key'
94
+ Given generate new self-signed key files for localhost
95
+ | Name | Value |
96
+ | 'public_key_path' | CERTFILE_PATH |
97
+ | 'private_key_path' | KEYFILE_PATH |
98
+ | 'algorithm' | 'rsa:2048' |
99
+
100
+ # Use echo server with a blocking connection
101
+ Given PORT = first available anonymous port
102
+ Given SERVER = new echo TCP socket server
103
+ | Name | Value |
104
+ | 'host' | 'localhost' |
105
+ | 'port' | PORT |
106
+ | 'ssl.activate' | True |
107
+ | 'ssl.context.ciphers' | 'ALL' |
108
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
109
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
110
+
111
+ # Create a TCP client with a blocking connection
112
+ Given CLIENT = new TCP socket client
113
+ | Name | Value |
114
+ | 'host' | 'localhost' |
115
+ | 'port' | PORT |
116
+ | 'blocking' | False |
117
+ | 'ssl.activate' | True |
118
+ | 'ssl.context.check_hostname' | False |
119
+ | 'ssl.context.verify_mode' | ssl.CERT_NONE |
120
+
121
+ Given end preconditions
122
+ ### PRECONDITIONS - END
123
+
124
+ # Start echo server & client
125
+ When start (socket server: SERVER)
126
+ When start (socket client: CLIENT)
127
+
128
+ # Write data and verify result is identical
129
+ When write b'\x01\x02' (socket: CLIENT)
130
+ When await socket CLIENT receives data (window: 0.1 s)
131
+ When DATA = read (socket: CLIENT)
132
+ Then DATA == b'\x01\x02'
133
+
134
+ When write b'\x11\x21' (socket: CLIENT)
135
+ When await socket CLIENT receives data (window: 0.1 s)
136
+ When DATA = read (socket: CLIENT)
137
+ Then DATA == b'\x11\x21'
138
+
139
+ # Stop server & client
140
+ #When stop (socket server: SERVER)
141
+ When stop (socket client: CLIENT)
142
+
143
+
144
+
145
+ @message_socket
146
+ @blocking_socket
147
+ Scenario: Echo server and message client (with underlying blocking connection)
148
+
149
+ ### PRECONDITIONS - BEGIN
150
+ Given begin preconditions
151
+
152
+ # Generate key files
153
+ Given CERTFILE_PATH = path to file with name 'localhost.crt'
154
+ Given KEYFILE_PATH = path to file with name 'localhost.key'
155
+ Given generate new self-signed key files for localhost
156
+ | Name | Value |
157
+ | 'public_key_path' | CERTFILE_PATH |
158
+ | 'private_key_path' | KEYFILE_PATH |
159
+ | 'algorithm' | 'rsa:2048' |
160
+
161
+ # Use echo server with a blocking connection
162
+ Given PORT = first available anonymous port
163
+ Given SERVER = new echo TCP socket server
164
+ | Name | Value |
165
+ | 'host' | 'localhost' |
166
+ | 'port' | PORT |
167
+ | 'ssl.activate' | True |
168
+ | 'ssl.context.ciphers' | 'OPENSSL_CIPHERS' |
169
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
170
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
171
+
172
+ # Create a message client
173
+ Given CLIENT = new message TCP socket client
174
+ | Name | Value |
175
+ | 'host' | 'localhost' |
176
+ | 'port' | PORT |
177
+ | 'separator' | b'\n' |
178
+ | 'ssl.activate' | True |
179
+ | 'ssl.context.check_hostname' | False |
180
+ | 'ssl.context.verify_mode' | ssl.CERT_NONE |
181
+
182
+ Given end preconditions
183
+ ### PRECONDITIONS - END
184
+
185
+ # Start echo server & message client
186
+ When start (socket server: SERVER)
187
+ #When ensure SSL handshake is done (socket: CLIENT)
188
+ When start (socket client: CLIENT)
189
+
190
+ # Write data and verify result is identical
191
+ When write message b'\x01\x02' (socket: CLIENT)
192
+ When write message b'\x11\x21' (socket: CLIENT)
193
+
194
+ # Verify received messages
195
+ When await socket CLIENT receives messages (window: 0.1 s)
196
+ When MESSAGES = received messages (socket: CLIENT)
197
+ Then MESSAGES is list
198
+ | b'\x01\x02' |
199
+ | b'\x11\x21' |
200
+
201
+ When MESSAGES_2 = received messages (socket: CLIENT)
202
+ Then MESSAGES_2 == MESSAGES
203
+
204
+ # Verify pop messages functionality
205
+ When MSG_1 = read message (socket: CLIENT)
206
+ Then MSG_1 == b'\x01\x02'
207
+ When MESSAGES_3 = received messages (socket: CLIENT)
208
+ Then MESSAGES_3 is list
209
+ | b'\x11\x21' |
210
+
211
+ When MSG_2 = read message (socket: CLIENT)
212
+ Then MSG_2 == b'\x11\x21'
213
+ When MESSAGES_4 = received messages (socket: CLIENT)
214
+ Then MESSAGES_4 is empty list
215
+
216
+ # Stop server & client
217
+ #When stop (socket server: SERVER)
218
+ When stop (socket client: CLIENT)
219
+
220
+
221
+
222
+ @message_socket
223
+ @non_blocking_socket
224
+ Scenario: Echo server and message client (with underlying non-blocking connection)
225
+
226
+ ### PRECONDITIONS - BEGIN
227
+ Given begin preconditions
228
+
229
+ # Generate key files
230
+ Given CERTFILE_PATH = path to file with name 'localhost.crt'
231
+ Given KEYFILE_PATH = path to file with name 'localhost.key'
232
+ Given generate new self-signed key files for localhost
233
+ | Name | Value |
234
+ | 'public_key_path' | CERTFILE_PATH |
235
+ | 'private_key_path' | KEYFILE_PATH |
236
+ | 'algorithm' | 'rsa:2048' |
237
+
238
+ # Use echo server with a blocking connection
239
+ Given PORT = first available anonymous port
240
+ Given SERVER = new echo TCP socket server
241
+ | Name | Value |
242
+ | 'host' | 'localhost' |
243
+ | 'port' | PORT |
244
+ | 'ssl.activate' | True |
245
+ | 'ssl.context.ciphers' | 'SHA256' |
246
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
247
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
248
+
249
+ # Create a message client
250
+ Given CLIENT = new message TCP socket client
251
+ | Name | Value |
252
+ | 'host' | 'localhost' |
253
+ | 'port' | PORT |
254
+ | 'separator' | b'\n' |
255
+ | 'blocking' | False |
256
+ | 'ssl.activate' | True |
257
+ | 'ssl.context.check_hostname' | False |
258
+ | 'ssl.context.verify_mode' | ssl.CERT_NONE |
259
+
260
+ Given end preconditions
261
+ ### PRECONDITIONS - END
262
+
263
+ # Start echo server & message client
264
+ When start (socket server: SERVER)
265
+ #When ensure SSL handshake is done (socket: CLIENT)
266
+ When start (socket client: CLIENT)
267
+
268
+ # Write data and verify result is identical
269
+ When write message b'\x01\x02' (socket: CLIENT)
270
+ When write message b'\x11\x21' (socket: CLIENT)
271
+
272
+ # Verify received messages
273
+ When await socket CLIENT receives messages (window: 0.1 s)
274
+ When MESSAGES = received messages (socket: CLIENT)
275
+ Then MESSAGES is list
276
+ | b'\x01\x02' |
277
+ | b'\x11\x21' |
278
+
279
+ When MESSAGES_2 = received messages (socket: CLIENT)
280
+ Then MESSAGES_2 == MESSAGES
281
+
282
+ # Verify pop messages functionality
283
+ When MSG_1 = read message (socket: CLIENT)
284
+ Then MSG_1 == b'\x01\x02'
285
+ When MESSAGES_3 = received messages (socket: CLIENT)
286
+ Then MESSAGES_3 is list
287
+ | b'\x11\x21' |
288
+
289
+ When MSG_2 = read message (socket: CLIENT)
290
+ Then MSG_2 == b'\x11\x21'
291
+ When MESSAGES_4 = received messages (socket: CLIENT)
292
+ Then MESSAGES_4 is empty list
293
+
294
+ # Stop server & client
295
+ #When stop (socket server: SERVER)
296
+ When stop (socket client: CLIENT)
297
+
298
+
299
+
@@ -0,0 +1,163 @@
1
+ @testing_solution
2
+ @python
3
+ @socket
4
+ Feature: Test python socket steps
5
+
6
+ @blocking_socket
7
+ Scenario: Server and client with blocking connections
8
+
9
+ ### PRECONDITIONS - BEGIN
10
+ Given begin preconditions
11
+
12
+ Given PORT = first available anonymous port
13
+ Given SERVER = new echo TCP socket server
14
+ | Name | Value |
15
+ | 'host' | '127.0.0.1' |
16
+ | 'port' | PORT |
17
+
18
+ Given CLIENT = new TCP socket client
19
+ | Name | Value |
20
+ | 'host' | '127.0.0.1' |
21
+ | 'port' | PORT |
22
+
23
+ Given end preconditions
24
+ ### PRECONDITIONS - END
25
+
26
+ # Start echo server
27
+ When start (socket server: SERVER)
28
+
29
+ # Write data and verify result is identical
30
+ When write b'\x01\x02' (socket: CLIENT)
31
+ When DATA = read (socket: CLIENT)
32
+ Then DATA == b'\x01\x02'
33
+
34
+ When write b'\x11\x21' (socket: CLIENT)
35
+ When DATA = read (socket: CLIENT)
36
+ Then DATA == b'\x11\x21'
37
+
38
+ # Stop server & client
39
+ #When stop (socket server: SERVER)
40
+
41
+
42
+
43
+ @message_socket
44
+ @blocking_socket
45
+ Scenario: Echo server and message client with blocking connection
46
+
47
+ ### PRECONDITIONS - BEGIN
48
+ Given begin preconditions
49
+
50
+ # Use echo server with a blocking connection
51
+ Given PORT = first available anonymous port
52
+ Given SERVER = new echo TCP socket server
53
+ | Name | Value |
54
+ | 'host' | '127.0.0.1' |
55
+ | 'port' | PORT |
56
+
57
+ # Create a message client
58
+ Given CLIENT = new message TCP socket client
59
+ | Name | Value |
60
+ | 'host' | '127.0.0.1' |
61
+ | 'port' | PORT |
62
+ | 'separator' | b'\n' |
63
+
64
+ Given end preconditions
65
+ ### PRECONDITIONS - END
66
+
67
+ # Start echo server & message client
68
+ When start (socket server: SERVER)
69
+ When start (socket client: CLIENT)
70
+
71
+ # Write data and verify result is identical
72
+ When write message b'\x01\x02' (socket: CLIENT)
73
+ When write message b'\x11\x21' (socket: CLIENT)
74
+
75
+ # Verify received messages
76
+ When await socket CLIENT receives messages (window: 0.1 s)
77
+ When MESSAGES = received messages (socket: CLIENT)
78
+ Then MESSAGES is list
79
+ | b'\x01\x02' |
80
+ | b'\x11\x21' |
81
+
82
+ When MESSAGES_2 = received messages (socket: CLIENT)
83
+ Then MESSAGES_2 == MESSAGES
84
+
85
+ # Verify pop messages functionality
86
+ When MSG_1 = read message (socket: CLIENT)
87
+ Then MSG_1 == b'\x01\x02'
88
+ When MESSAGES_3 = received messages (socket: CLIENT)
89
+ Then MESSAGES_3 is list
90
+ | b'\x11\x21' |
91
+
92
+ When MSG_2 = read message (socket: CLIENT)
93
+ Then MSG_2 == b'\x11\x21'
94
+ When MESSAGES_4 = received messages (socket: CLIENT)
95
+ Then MESSAGES_4 is empty list
96
+
97
+ # Stop server & client
98
+ #When stop (socket server: SERVER)
99
+ When stop (socket client: CLIENT)
100
+
101
+
102
+
103
+ @message_socket
104
+ @non_blocking_socket
105
+ Scenario: Echo server and message client with non blocking connection
106
+
107
+ ### PRECONDITIONS - BEGIN
108
+ Given begin preconditions
109
+
110
+ # Use echo server with a blocking connection
111
+ Given PORT = first available anonymous port
112
+ Given SERVER = new echo TCP socket server
113
+ | Name | Value |
114
+ | 'host' | '127.0.0.1' |
115
+ | 'port' | PORT |
116
+
117
+ # Create a message client
118
+ Given CLIENT = new message TCP socket client
119
+ | Name | Value |
120
+ | 'host' | '127.0.0.1' |
121
+ | 'port' | PORT |
122
+ | 'separator' | b'\n' |
123
+ | 'blocking' | False |
124
+
125
+ Given end preconditions
126
+ ### PRECONDITIONS - END
127
+
128
+ # Start echo server & message client
129
+ When start (socket server: SERVER)
130
+ When start (socket client: CLIENT)
131
+
132
+ # Write data and verify result is identical
133
+ When write message b'\x01\x02' (socket: CLIENT)
134
+ When write message b'\x11\x21' (socket: CLIENT)
135
+
136
+ # Verify received messages
137
+ When await socket CLIENT receives messages (window: 0.1 s)
138
+ When MESSAGES = received messages (socket: CLIENT)
139
+ Then MESSAGES is list
140
+ | b'\x01\x02' |
141
+ | b'\x11\x21' |
142
+
143
+ When MESSAGES_2 = received messages (socket: CLIENT)
144
+ Then MESSAGES_2 == MESSAGES
145
+
146
+ # Verify pop messages functionality
147
+ When MSG_1 = read message (socket: CLIENT)
148
+ Then MSG_1 == b'\x01\x02'
149
+ When MESSAGES_3 = received messages (socket: CLIENT)
150
+ Then MESSAGES_3 is list
151
+ | b'\x11\x21' |
152
+
153
+ When MSG_2 = read message (socket: CLIENT)
154
+ Then MSG_2 == b'\x11\x21'
155
+ When MESSAGES_4 = received messages (socket: CLIENT)
156
+ Then MESSAGES_4 is empty list
157
+
158
+ # Stop server & client
159
+ #When stop (socket server: SERVER)
160
+ When stop (socket client: CLIENT)
161
+
162
+
163
+
@@ -0,0 +1,214 @@
1
+ @testing_solution
2
+ @python
3
+ @socket
4
+ @tcpbin.com
5
+ @with_mtls
6
+ Feature: Test python socket steps with mTLS
7
+
8
+ @blocking_socket
9
+ Scenario: Client with blocking connections
10
+
11
+ ### PRECONDITIONS - BEGIN
12
+ Given begin preconditions
13
+
14
+ # Get key files
15
+ #Given CA_CERTFILE_PATH = CA certfile path for tcpbin.com
16
+ Given CERTFILE_PATH = certfile path for tcpbin.com
17
+ Given KEYFILE_PATH = keyfile path for tcpbin.com
18
+
19
+ # Create a TCP client with a blocking connection
20
+ Given CLIENT = new TCP socket client
21
+ | Name | Value |
22
+ | 'host' | 'tcpbin.com' |
23
+ | 'port' | 4244 |
24
+ | 'ssl.activate' | True |
25
+ | 'ssl.context.ciphers' | 'ALL' |
26
+ | 'ssl.context.check_hostname' | True |
27
+ #| 'ssl.context.load_verify_locations.cafile' | CA_CERTFILE_PATH |
28
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
29
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
30
+
31
+ Given end preconditions
32
+ ### PRECONDITIONS - END
33
+
34
+ # Start client
35
+ When ensure SSL handshake is done (socket: CLIENT)
36
+
37
+ # Write data and verify result is identical
38
+ When write b'\x01\x02\n' (socket: CLIENT)
39
+ When DATA = read (socket: CLIENT)
40
+ Then DATA == b'\x01\x02\n'
41
+
42
+ When write b'\x11\x21\n' (socket: CLIENT)
43
+ When DATA = read (socket: CLIENT)
44
+ Then DATA == b'\x11\x21\n'
45
+
46
+
47
+
48
+ @non_blocking_socket
49
+ Scenario: Client with non blocking connection
50
+
51
+ ### PRECONDITIONS - BEGIN
52
+ Given begin preconditions
53
+
54
+ # Get key files
55
+ Given CERTFILE_PATH = certfile path for tcpbin.com
56
+ Given KEYFILE_PATH = keyfile path for tcpbin.com
57
+
58
+ # Create a TCP client with a blocking connection
59
+ Given CLIENT = new TCP socket client
60
+ | Name | Value |
61
+ | 'host' | 'tcpbin.com' |
62
+ | 'port' | 4244 |
63
+ | 'blocking' | False |
64
+ | 'ssl.activate' | True |
65
+ | 'ssl.context.ciphers' | 'ALL' |
66
+ | 'ssl.context.check_hostname' | True |
67
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
68
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
69
+
70
+ Given end preconditions
71
+ ### PRECONDITIONS - END
72
+
73
+ # Start Client
74
+ When start (socket client: CLIENT)
75
+
76
+ # Write data and verify result is identical
77
+ When write b'\x01\x02\n' (socket: CLIENT)
78
+ When await socket CLIENT receives a data (timeout: 10 s)
79
+ When DATA = read (socket: CLIENT)
80
+ Then DATA == b'\x01\x02\n'
81
+
82
+ When write b'\x11\x21\n' (socket: CLIENT)
83
+ When await socket CLIENT receives a data (timeout: 10 s)
84
+ When DATA = read (socket: CLIENT)
85
+ Then DATA == b'\x11\x21\n'
86
+
87
+ # Stop client
88
+ When stop (socket client: CLIENT)
89
+
90
+
91
+
92
+ @message_socket
93
+ @blocking_socket
94
+ Scenario: Message client (with underlying blocking connection)
95
+
96
+ ### PRECONDITIONS - BEGIN
97
+ Given begin preconditions
98
+
99
+ # Get key files
100
+ Given CERTFILE_PATH = certfile path for tcpbin.com
101
+ Given KEYFILE_PATH = keyfile path for tcpbin.com
102
+
103
+ # Create a message client
104
+ Given CLIENT = new message TCP socket client
105
+ | Name | Value |
106
+ | 'host' | 'tcpbin.com' |
107
+ | 'port' | 4244 |
108
+ | 'separator' | b'\n' |
109
+ | 'ssl.activate' | True |
110
+ | 'ssl.context.ciphers' | 'ALL' |
111
+ | 'ssl.context.check_hostname' | True |
112
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
113
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
114
+
115
+ Given end preconditions
116
+ ### PRECONDITIONS - END
117
+
118
+ # Start message client
119
+ When ensure SSL handshake is done (socket: CLIENT)
120
+ When start (socket client: CLIENT)
121
+
122
+ # Write data and verify result is identical
123
+ When write message b'\x01\x02' (socket: CLIENT)
124
+ When write message b'\x11\x21' (socket: CLIENT)
125
+
126
+ # Verify received messages
127
+ When await socket CLIENT receives messages (first timeout: 10 s ; window: 0.1 s)
128
+ When MESSAGES = received messages (socket: CLIENT)
129
+ Then MESSAGES is list
130
+ | b'\x01\x02' |
131
+ | b'\x11\x21' |
132
+
133
+ When MESSAGES_2 = received messages (socket: CLIENT)
134
+ Then MESSAGES_2 == MESSAGES
135
+
136
+ # Verify pop messages functionality
137
+ When MSG_1 = read message (socket: CLIENT)
138
+ Then MSG_1 == b'\x01\x02'
139
+ When MESSAGES_3 = received messages (socket: CLIENT)
140
+ Then MESSAGES_3 is list
141
+ | b'\x11\x21' |
142
+
143
+ When MSG_2 = read message (socket: CLIENT)
144
+ Then MSG_2 == b'\x11\x21'
145
+ When MESSAGES_4 = received messages (socket: CLIENT)
146
+ Then MESSAGES_4 is empty list
147
+
148
+ # Stop client
149
+ When stop (socket client: CLIENT)
150
+
151
+
152
+
153
+ @message_socket
154
+ @non_blocking_socket
155
+ Scenario: Message client (with underlying non-blocking connection)
156
+
157
+ ### PRECONDITIONS - BEGIN
158
+ Given begin preconditions
159
+
160
+ # Get key files
161
+ Given CERTFILE_PATH = certfile path for tcpbin.com
162
+ Given KEYFILE_PATH = keyfile path for tcpbin.com
163
+
164
+ # Create a message client
165
+ Given CLIENT = new message TCP socket client
166
+ | Name | Value |
167
+ | 'host' | 'tcpbin.com' |
168
+ | 'port' | 4244 |
169
+ | 'separator' | b'\n' |
170
+ | 'blocking' | False |
171
+ | 'ssl.activate' | True |
172
+ | 'ssl.context.ciphers' | 'ALL' |
173
+ | 'ssl.context.check_hostname' | True |
174
+ | 'ssl.context.load_cert_chain.certfile' | CERTFILE_PATH |
175
+ | 'ssl.context.load_cert_chain.keyfile' | KEYFILE_PATH |
176
+
177
+ Given end preconditions
178
+ ### PRECONDITIONS - END
179
+
180
+ # Start message client
181
+ When ensure SSL handshake is done (socket: CLIENT)
182
+ When start (socket client: CLIENT)
183
+
184
+ # Write data and verify result is identical
185
+ When write message b'\x01\x02' (socket: CLIENT)
186
+ When write message b'\x11\x21' (socket: CLIENT)
187
+
188
+ # Verify received messages
189
+ When await socket CLIENT receives messages (first timeout: 10 s ; window: 0.1 s)
190
+ When MESSAGES = received messages (socket: CLIENT)
191
+ Then MESSAGES is list
192
+ | b'\x01\x02' |
193
+ | b'\x11\x21' |
194
+
195
+ When MESSAGES_2 = received messages (socket: CLIENT)
196
+ Then MESSAGES_2 == MESSAGES
197
+
198
+ # Verify pop messages functionality
199
+ When MSG_1 = read message (socket: CLIENT)
200
+ Then MSG_1 == b'\x01\x02'
201
+ When MESSAGES_3 = received messages (socket: CLIENT)
202
+ Then MESSAGES_3 is list
203
+ | b'\x11\x21' |
204
+
205
+ When MSG_2 = read message (socket: CLIENT)
206
+ Then MSG_2 == b'\x11\x21'
207
+ When MESSAGES_4 = received messages (socket: CLIENT)
208
+ Then MESSAGES_4 is empty list
209
+
210
+ # Stop client
211
+ When stop (socket client: CLIENT)
212
+
213
+
214
+