holado 0.2.1__py3-none-any.whl → 0.2.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of holado might be problematic. Click here for more details.
- holado/__init__.py +8 -4
- {holado-0.2.1.dist-info → holado-0.2.3.dist-info}/METADATA +13 -9
- holado-0.2.3.dist-info/RECORD +535 -0
- holado_ais/__init__.py +33 -0
- holado_ais/ais/MaritimeIdentificationDigits.csv +295 -0
- holado_ais/ais/ais_manager.py +151 -0
- holado_ais/ais/ais_messages.py +203 -0
- holado_ais/ais/ais_payload.py +35 -0
- holado_ais/ais/enums.py +37 -0
- holado_ais/ais/patch_pyais.py +1303 -0
- holado_ais/tests/behave/steps/__init__.py +17 -0
- holado_ais/tests/behave/steps/ais/__init__.py +0 -0
- holado_ais/tests/behave/steps/ais/ais_manager_steps.py +50 -0
- holado_ais/tests/behave/steps/ais/ais_messages_steps.py +182 -0
- holado_binary/__init__.py +17 -0
- holado_binary/ipc/binary.py +125 -0
- holado_binary/ipc/bit_series.py +307 -0
- holado_binary/tests/behave/steps/__init__.py +17 -0
- holado_binary/tests/behave/steps/ipc/binary_steps.py +57 -0
- holado_binary/tests/behave/steps/ipc/bit_series_steps.py +131 -0
- holado_context/__init__.py +16 -0
- holado_context/tests/behave/steps/__init__.py +16 -0
- holado_context/tests/behave/steps/private/__init__.py +16 -0
- holado_context/tests/behave/steps/private/common/context_steps.py +36 -0
- holado_core/__init__.py +32 -0
- holado_core/common/__init__.py +0 -0
- holado_core/common/actors/actions.py +97 -0
- holado_core/common/actors/actor.py +226 -0
- holado_core/common/actors/element_actor.py +32 -0
- holado_core/common/actors/find_actor.py +106 -0
- holado_core/common/actors/tree_actor.py +32 -0
- holado_core/common/actors/verify_actions.py +69 -0
- holado_core/common/block/base.py +122 -0
- holado_core/common/block/block_manager.py +173 -0
- holado_core/common/block/block_method.py +46 -0
- holado_core/common/block/block_steps.py +37 -0
- holado_core/common/block/function.py +42 -0
- holado_core/common/block/scope_function.py +28 -0
- holado_core/common/block/scope_manager.py +238 -0
- holado_core/common/block/scope_steps.py +141 -0
- holado_core/common/criterias/and_criteria.py +61 -0
- holado_core/common/criterias/criteria.py +78 -0
- holado_core/common/criterias/or_criteria.py +64 -0
- holado_core/common/criterias/tools/criteria_context.py +20 -0
- holado_core/common/criterias/tools/criteria_parameters.py +18 -0
- holado_core/common/drivers/driver.py +153 -0
- holado_core/common/drivers/element_driver.py +30 -0
- holado_core/common/drivers/element_internal_api.py +239 -0
- holado_core/common/drivers/internal_api.py +40 -0
- holado_core/common/drivers/tree_driver.py +30 -0
- holado_core/common/drivers/tree_internal_api.py +176 -0
- holado_core/common/exceptions/__init__.py +0 -0
- holado_core/common/exceptions/element_exception.py +28 -0
- holado_core/common/exceptions/exceptions.py +24 -0
- holado_core/common/exceptions/functional_exception.py +21 -0
- holado_core/common/exceptions/holado_exception.py +25 -0
- holado_core/common/exceptions/technical_exception.py +27 -0
- holado_core/common/exceptions/timeout_exception.py +20 -0
- holado_core/common/exceptions/verify_exception.py +20 -0
- holado_core/common/finders/after_in_tree_finder.py +87 -0
- holado_core/common/finders/element_finder.py +60 -0
- holado_core/common/finders/else_finder.py +105 -0
- holado_core/common/finders/finder.py +478 -0
- holado_core/common/finders/or_finder.py +98 -0
- holado_core/common/finders/then_finder.py +157 -0
- holado_core/common/finders/tools/enums.py +30 -0
- holado_core/common/finders/tools/find_builder.py +118 -0
- holado_core/common/finders/tools/find_context.py +405 -0
- holado_core/common/finders/tools/find_info.py +27 -0
- holado_core/common/finders/tools/find_parameters.py +240 -0
- holado_core/common/finders/tools/find_updater.py +95 -0
- holado_core/common/finders/tools/finder_info.py +26 -0
- holado_core/common/finders/tree_finder.py +146 -0
- holado_core/common/handlers/__init__.py +0 -0
- holado_core/common/handlers/abstracts/base_redo.py +695 -0
- holado_core/common/handlers/abstracts/get_or_create.py +120 -0
- holado_core/common/handlers/element_holder.py +122 -0
- holado_core/common/handlers/enums.py +23 -0
- holado_core/common/handlers/exceptions/redo_exceptions.py +28 -0
- holado_core/common/handlers/features/resource_by_name.py +187 -0
- holado_core/common/handlers/features/resource_by_type.py +174 -0
- holado_core/common/handlers/redo.py +119 -0
- holado_core/common/handlers/wait.py +127 -0
- holado_core/common/inspectors/element_inspector.py +57 -0
- holado_core/common/inspectors/inspector.py +221 -0
- holado_core/common/inspectors/tools/inspect_builder.py +169 -0
- holado_core/common/inspectors/tools/inspect_context.py +69 -0
- holado_core/common/inspectors/tools/inspect_parameters.py +181 -0
- holado_core/common/inspectors/tree_inspector.py +73 -0
- holado_core/common/resource/persisted_data_manager.py +113 -0
- holado_core/common/resource/persisted_method_to_call_manager.py +133 -0
- holado_core/common/resource/resource_manager.py +143 -0
- holado_core/common/tables/__init__.py +1 -0
- holado_core/common/tables/comparators/__init__.py +0 -0
- holado_core/common/tables/comparators/boolean_table_cell_comparator.py +25 -0
- holado_core/common/tables/comparators/bytes_table_cell_comparator.py +25 -0
- holado_core/common/tables/comparators/datetime_table_cell_comparator.py +24 -0
- holado_core/common/tables/comparators/float_table_cell_comparator.py +31 -0
- holado_core/common/tables/comparators/integer_table_cell_comparator.py +25 -0
- holado_core/common/tables/comparators/internal_table_cell_comparator.py +30 -0
- holado_core/common/tables/comparators/string_table_cell_comparator.py +24 -0
- holado_core/common/tables/comparators/string_table_comparator.py +29 -0
- holado_core/common/tables/comparators/string_table_row_comparator.py +29 -0
- holado_core/common/tables/comparators/table_cell_comparator.py +40 -0
- holado_core/common/tables/comparators/table_comparator.py +209 -0
- holado_core/common/tables/comparators/table_comparator_manager.py +60 -0
- holado_core/common/tables/comparators/table_row_comparator.py +116 -0
- holado_core/common/tables/comparators/table_with_header_comparator.py +68 -0
- holado_core/common/tables/converters/__init__.py +0 -0
- holado_core/common/tables/converters/table_converter.py +194 -0
- holado_core/common/tables/enums.py +23 -0
- holado_core/common/tables/table.py +261 -0
- holado_core/common/tables/table_cell.py +126 -0
- holado_core/common/tables/table_manager.py +366 -0
- holado_core/common/tables/table_row.py +169 -0
- holado_core/common/tables/table_with_header.py +236 -0
- holado_core/common/tools/__init__.py +0 -0
- holado_core/common/tools/comparators/comparator.py +151 -0
- holado_core/common/tools/comparators/object_comparator.py +21 -0
- holado_core/common/tools/converters/converter.py +107 -0
- holado_core/common/tools/path_manager.py +185 -0
- holado_core/common/tools/string_tools.py +135 -0
- holado_core/common/tools/tools.py +172 -0
- holado_core/common/transport/__init__.py +0 -0
- holado_core/common/transport/crc.py +40 -0
- holado_core/tests/behave/steps/__init__.py +20 -0
- holado_core/tests/behave/steps/common/__init__.py +0 -0
- holado_core/tests/behave/steps/common/common_steps.py +136 -0
- holado_core/tests/behave/steps/common/config_steps.py +42 -0
- holado_core/tests/behave/steps/common/resource_steps.py +62 -0
- holado_core/tests/behave/steps/common/tables_steps.py +537 -0
- holado_core/tools/__init__.py +0 -0
- holado_core/tools/abstracts/__init__.py +0 -0
- holado_core/tools/abstracts/blocking_command_service.py +56 -0
- holado_core/tools/abstracts/service.py +48 -0
- holado_data/__init__.py +31 -0
- holado_data/data/generator/base.py +93 -0
- holado_data/data/generator/python_generator.py +30 -0
- holado_data/tests/behave/steps/__init__.py +17 -0
- holado_data/tests/behave/steps/data/generator_steps.py +91 -0
- holado_data/tests/behave/steps/tools/utils_steps.py +60 -0
- holado_db/__init__.py +32 -0
- holado_db/tests/behave/steps/__init__.py +18 -0
- holado_db/tests/behave/steps/tools/db/db_client_steps.py +134 -0
- holado_db/tests/behave/steps/tools/db/postgresql_client_steps.py +59 -0
- holado_db/tests/behave/steps/tools/db/sqlite_client_steps.py +57 -0
- holado_db/tools/db/clients/base/db_client.py +206 -0
- holado_db/tools/db/clients/postgresql/postgresql_client.py +65 -0
- holado_db/tools/db/clients/sqlite/sqlite_client.py +56 -0
- holado_db/tools/db/db_manager.py +109 -0
- holado_db/tools/db/query/base/query_builder.py +87 -0
- holado_db/tools/db/query/pypika/pypika_query_builder.py +193 -0
- holado_db/tools/db/query/query_manager.py +77 -0
- holado_docker/__init__.py +25 -0
- holado_docker/sdk/docker/docker_client.py +268 -0
- holado_docker/sdk/docker/docker_service.py +71 -0
- holado_docker/tests/behave/steps/__init__.py +16 -0
- holado_docker/tests/behave/steps/tools/docker_steps.py +33 -0
- holado_docker/tools/docker_controler/__init__.py +26 -0
- holado_docker/tools/docker_controler/docker_controler_client.py +36 -0
- holado_docker/tools/docker_controler/docker_controler_server.py +31 -0
- holado_docker/tools/docker_controler/proto/compile_proto.py +60 -0
- holado_docker/tools/docker_controler/proto/definitions/docker_controler.proto +63 -0
- holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2.py +52 -0
- holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2_grpc.py +233 -0
- holado_grpc/__init__.py +32 -0
- holado_grpc/api/rpc/TODO.txt +4 -0
- holado_grpc/api/rpc/grpc_client.py +181 -0
- holado_grpc/api/rpc/grpc_manager.py +81 -0
- holado_grpc/ipc/rpc/__init__.py +0 -0
- holado_grpc/ipc/rpc/grpc_compiler.py +45 -0
- holado_grpc/ipc/rpc/grpc_services.py +165 -0
- holado_grpc/tests/behave/steps/__init__.py +16 -0
- holado_grpc/tests/behave/steps/api/grpc_client_steps.py +173 -0
- holado_grpc/tests/behave/steps/private/__init__.py +16 -0
- holado_grpc/tests/behave/steps/private/api/grpc_steps.py +77 -0
- holado_helper/__init__.py +35 -0
- holado_helper/debug/README.txt +32 -0
- holado_helper/debug/memory/memory_profiler.py +106 -0
- holado_helper/docker/init_user.sh +24 -0
- holado_helper/docker/logging.conf +42 -0
- holado_helper/docker/run_holado_test_nonreg_in_docker.sh +120 -0
- holado_helper/docker/run_terminal_in_docker-with_docker_control.sh +103 -0
- holado_helper/docker/run_terminal_in_docker.sh +101 -0
- holado_helper/holado_module_template/__init__.py +31 -0
- holado_helper/holado_module_template/test/behave/steps/__init__.py +16 -0
- holado_helper/holado_module_template/test/behave/steps/private/__init__.py +16 -0
- holado_helper/script/action.py +109 -0
- holado_helper/script/action_script.py +477 -0
- holado_helper/script/any_action_script.py +126 -0
- holado_helper/script/behave_action_script.py +99 -0
- holado_helper/script/csv_action_script.py +142 -0
- holado_helper/script/initialize_script.py +115 -0
- holado_helper/script/input_output_script.py +136 -0
- holado_helper/script/job.py +75 -0
- holado_helper/script/json_action_script.py +104 -0
- holado_helper/script/script.py +110 -0
- holado_json/__init__.py +16 -0
- holado_json/ipc/json.py +125 -0
- holado_json/ipc/json_converter.py +69 -0
- holado_json/ipc/json_types.py +183 -0
- holado_json/tests/behave/steps/__init__.py +16 -0
- holado_json/tests/behave/steps/ipc/__init__.py +0 -0
- holado_json/tests/behave/steps/ipc/json_steps.py +120 -0
- holado_keycloak/__init__.py +16 -0
- holado_keycloak/tests/behave/steps/__init__.py +16 -0
- holado_keycloak/tests/behave/steps/tools/keycloak_client_steps.py +59 -0
- holado_keycloak/tools/keycloak/__init__.py +0 -0
- holado_keycloak/tools/keycloak/keycloak_client.py +61 -0
- holado_logging/__init__.py +36 -0
- holado_logging/common/logging/holado_logger.py +75 -0
- holado_logging/common/logging/log_config.py +128 -0
- holado_logging/common/logging/log_manager.py +292 -0
- holado_multitask/__init__.py +33 -0
- holado_multitask/multiprocessing/context/process_context.py +35 -0
- holado_multitask/multiprocessing/function_process.py +102 -0
- holado_multitask/multiprocessing/periodic_function_process.py +135 -0
- holado_multitask/multiprocessing/process.py +196 -0
- holado_multitask/multiprocessing/processesmanager.py +133 -0
- holado_multitask/multitasking/multitask_manager.py +439 -0
- holado_multitask/multithreading/__init__.py +0 -0
- holado_multitask/multithreading/context/thread_context.py +84 -0
- holado_multitask/multithreading/functionthreaded.py +129 -0
- holado_multitask/multithreading/loopfunctionthreaded.py +45 -0
- holado_multitask/multithreading/loopthread.py +100 -0
- holado_multitask/multithreading/periodicfunctionthreaded.py +136 -0
- holado_multitask/multithreading/reflection/inspect.py +47 -0
- holado_multitask/multithreading/reflection/sys.py +29 -0
- holado_multitask/multithreading/reflection/traceback.py +35 -0
- holado_multitask/multithreading/thread.py +177 -0
- holado_multitask/multithreading/threadsmanager.py +162 -0
- holado_multitask/multithreading/timer.py +48 -0
- holado_multitask/tests/behave/steps/__init__.py +17 -0
- holado_multitask/tests/behave/steps/multiprocessing_steps.py +138 -0
- holado_multitask/tests/behave/steps/multithreading_steps.py +129 -0
- holado_protobuf/__init__.py +61 -0
- holado_protobuf/ipc/protobuf/__init__.py +0 -0
- holado_protobuf/ipc/protobuf/abstracts/type.py +45 -0
- holado_protobuf/ipc/protobuf/protobuf_compiler.py +118 -0
- holado_protobuf/ipc/protobuf/protobuf_converter.py +153 -0
- holado_protobuf/ipc/protobuf/protobuf_messages.py +965 -0
- holado_protobuf/ipc/protobuf/protobuf_modifier.py +65 -0
- holado_protobuf/ipc/protobuf/types/__init__.py +0 -0
- holado_protobuf/ipc/protobuf/types/google/__init__.py +0 -0
- holado_protobuf/ipc/protobuf/types/google/protobuf.py +124 -0
- holado_protobuf/tests/behave/steps/__init__.py +16 -0
- holado_protobuf/tests/behave/steps/ipc/protobuf_steps.py +297 -0
- holado_python/__init__.py +35 -0
- holado_python/common/enums.py +34 -0
- holado_python/common/iterables.py +30 -0
- holado_python/common/tools/comparators/boolean_comparator.py +37 -0
- holado_python/common/tools/comparators/bytes_comparator.py +48 -0
- holado_python/common/tools/comparators/datetime_comparator.py +74 -0
- holado_python/common/tools/comparators/float_comparator.py +97 -0
- holado_python/common/tools/comparators/integer_comparator.py +37 -0
- holado_python/common/tools/comparators/string_comparator.py +99 -0
- holado_python/common/tools/comparators/type_comparator.py +31 -0
- holado_python/common/tools/datetime.py +279 -0
- holado_python/standard_library/csv.py +207 -0
- holado_python/standard_library/hashlib.py +82 -0
- holado_python/standard_library/multiprocessing.py +62 -0
- holado_python/standard_library/queue.py +79 -0
- holado_python/standard_library/socket/blocking_socket.py +136 -0
- holado_python/standard_library/socket/echo_server.py +28 -0
- holado_python/standard_library/socket/message_socket.py +91 -0
- holado_python/standard_library/socket/non_blocking_socket.py +151 -0
- holado_python/standard_library/socket/socket.py +148 -0
- holado_python/standard_library/ssl/resources/certificates/NOTES.txt +5 -0
- holado_python/standard_library/ssl/resources/certificates/localhost.crt +19 -0
- holado_python/standard_library/ssl/resources/certificates/localhost.key +28 -0
- holado_python/standard_library/ssl/ssl.py +81 -0
- holado_python/standard_library/typing.py +192 -0
- holado_python/tests/behave/steps/__init__.py +27 -0
- holado_python/tests/behave/steps/builtins/str_steps.py +45 -0
- holado_python/tests/behave/steps/convert_steps.py +59 -0
- holado_python/tests/behave/steps/iterable_steps.py +87 -0
- holado_python/tests/behave/steps/standard_library/csv_steps.py +134 -0
- holado_python/tests/behave/steps/standard_library/datetime_steps.py +163 -0
- holado_python/tests/behave/steps/standard_library/hashlib_steps.py +57 -0
- holado_python/tests/behave/steps/standard_library/multiprocessing_steps.py +56 -0
- holado_python/tests/behave/steps/standard_library/queue_steps.py +358 -0
- holado_python/tests/behave/steps/standard_library/socket_steps.py +258 -0
- holado_python/tests/behave/steps/standard_library/ssl_steps.py +67 -0
- holado_rabbitmq/__init__.py +28 -0
- holado_rabbitmq/tests/behave/steps/__init__.py +17 -0
- holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py +537 -0
- holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py +64 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py +311 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +675 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +173 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py +428 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py +24 -0
- holado_redis/__init__.py +17 -0
- holado_redis/tests/behave/steps/__init__.py +16 -0
- holado_redis/tests/behave/steps/tools/redis_client_steps.py +101 -0
- holado_redis/tools/redis/TODO.txt +7 -0
- holado_redis/tools/redis/redis_client.py +190 -0
- holado_redis/tools/redis/redis_manager.py +38 -0
- holado_report/__init__.py +27 -0
- holado_report/report/analyze/execution_historic_manager.py +96 -0
- holado_report/report/analyze/scenario_duration_manager.py +245 -0
- holado_report/report/builders/detailed_scenario_failed_report_builder.py +146 -0
- holado_report/report/builders/json_execution_historic_report_builder.py +123 -0
- holado_report/report/builders/report_builder.py +64 -0
- holado_report/report/builders/short_scenario_failed_report_builder.py +76 -0
- holado_report/report/builders/summary_report_builder.py +89 -0
- holado_report/report/builders/summary_scenario_failed_report_builder.py +56 -0
- holado_report/report/builders/summary_scenario_report_builder.py +74 -0
- holado_report/report/execution_historic.py +141 -0
- holado_report/report/report_manager.py +256 -0
- holado_report/report/reports/base_report.py +163 -0
- holado_report/report/reports/feature_report.py +106 -0
- holado_report/report/reports/scenario_report.py +64 -0
- holado_rest/__init__.py +24 -0
- holado_rest/api/rest/TODO.txt +2 -0
- holado_rest/api/rest/rest_client.py +113 -0
- holado_rest/api/rest/rest_manager.py +62 -0
- holado_rest/tests/behave/steps/__init__.py +16 -0
- holado_rest/tests/behave/steps/api/__init__.py +0 -0
- holado_rest/tests/behave/steps/api/rest_client_steps.py +141 -0
- holado_rest/tests/behave/steps/private/__init__.py +16 -0
- holado_rest/tests/behave/steps/private/api/__init__.py +0 -0
- holado_rest/tests/behave/steps/private/api/rest_steps.py +70 -0
- holado_s3/__init__.py +17 -0
- holado_s3/tests/behave/steps/__init__.py +17 -0
- holado_s3/tests/behave/steps/private/__init__.py +16 -0
- holado_s3/tests/behave/steps/private/tools/s3_steps.py +89 -0
- holado_s3/tests/behave/steps/tools/s3_client_steps.py +403 -0
- holado_s3/tests/behave/steps/tools/s3_server_steps.py +57 -0
- holado_s3/tools/s3/__init__.py +0 -0
- holado_s3/tools/s3/boto3_s3_client.py +59 -0
- holado_s3/tools/s3/minio_client.py +75 -0
- holado_s3/tools/s3/moto_server.py +52 -0
- holado_scripting/__init__.py +53 -0
- holado_scripting/common/tools/dynamic_text_manager.py +73 -0
- holado_scripting/common/tools/evaluate_parameters.py +210 -0
- holado_scripting/common/tools/expression_evaluator.py +387 -0
- holado_scripting/common/tools/variable_manager.py +321 -0
- holado_scripting/tests/behave/steps/__init__.py +22 -0
- holado_scripting/tests/behave/steps/common/tools/variable_convert_steps.py +158 -0
- holado_scripting/tests/behave/steps/common/tools/variable_new_steps.py +130 -0
- holado_scripting/tests/behave/steps/common/tools/variable_steps.py +108 -0
- holado_scripting/tests/behave/steps/common/tools/variable_verify_steps.py +160 -0
- holado_scripting/tests/behave/steps/scenario/function_steps.py +77 -0
- holado_scripting/tests/behave/steps/scenario/if_steps.py +87 -0
- holado_scripting/tests/behave/steps/scenario/loop_steps.py +119 -0
- holado_scripting/text/base/base_function.py +25 -0
- holado_scripting/text/base/base_verify_function.py +25 -0
- holado_scripting/text/base/text_inspecter.py +204 -0
- holado_scripting/text/interpreter/exceptions/interpreter_exception.py +25 -0
- holado_scripting/text/interpreter/functions/function_cast.py +60 -0
- holado_scripting/text/interpreter/functions/function_convert.py +57 -0
- holado_scripting/text/interpreter/functions/function_dynamic_value.py +40 -0
- holado_scripting/text/interpreter/functions/function_escape_all_bytes.py +35 -0
- holado_scripting/text/interpreter/functions/function_exists_variable.py +39 -0
- holado_scripting/text/interpreter/functions/function_hex_to_bytes.py +49 -0
- holado_scripting/text/interpreter/functions/function_hex_to_int.py +53 -0
- holado_scripting/text/interpreter/functions/function_to_base_64.py +41 -0
- holado_scripting/text/interpreter/functions/function_to_bytes.py +50 -0
- holado_scripting/text/interpreter/functions/function_to_hex.py +42 -0
- holado_scripting/text/interpreter/text_interpreter.py +216 -0
- holado_scripting/text/verifier/exceptions/verifier_exception.py +21 -0
- holado_scripting/text/verifier/functions/verify_function_extract_in.py +35 -0
- holado_scripting/text/verifier/functions/verify_function_match_pattern.py +63 -0
- holado_scripting/text/verifier/text_verifier.py +103 -0
- holado_sftp/__init__.py +16 -0
- holado_sftp/tests/behave/steps/__init__.py +17 -0
- holado_sftp/tests/behave/steps/private/__init__.py +16 -0
- holado_sftp/tests/behave/steps/private/tools/sftp_steps.py +78 -0
- holado_sftp/tests/behave/steps/tools/sftp_client_steps.py +94 -0
- holado_sftp/tests/behave/steps/tools/sftp_server_steps.py +82 -0
- holado_sftp/tools/sftp/__init__.py +0 -0
- holado_sftp/tools/sftp/sftp_client.py +103 -0
- holado_sftp/tools/sftp/sftp_server.py +39 -0
- holado_swagger/__init__.py +31 -0
- holado_swagger/swagger_hub/mockserver/mockserver_client.py +82 -0
- holado_swagger/swagger_hub/mockserver/mockserver_manager.py +32 -0
- holado_swagger/tests/behave/steps/__init__.py +16 -0
- holado_swagger/tests/behave/steps/swagger_hub/mockserver_steps.py +74 -0
- holado_system/system/command/command.py +216 -0
- holado_system/system/command/command_result.py +128 -0
- holado_system/system/command/curl_command.py +101 -0
- holado_system/system/command/exceptions.py +59 -0
- holado_system/system/filesystem/file.py +76 -0
- holado_system/system/global_system.py +187 -0
- holado_system/tests/behave/steps/__init__.py +18 -0
- holado_system/tests/behave/steps/system/commands_steps.py +92 -0
- holado_system/tests/behave/steps/system/file_steps.py +215 -0
- holado_system/tests/behave/steps/system/system_steps.py +84 -0
- holado_test/__init__.py +27 -0
- holado_test/behave/__init__.py +0 -0
- holado_test/behave/behave.py +397 -0
- holado_test/behave/behave_environment.py +143 -0
- holado_test/behave/behave_function.py +33 -0
- holado_test/behave/behave_manager.py +555 -0
- holado_test/behave/independant_runner.py +68 -0
- holado_test/behave/scenario/__init__.py +0 -0
- holado_test/behave/scenario/behave_step_tools.py +157 -0
- holado_test/common/context/feature_context.py +79 -0
- holado_test/common/context/scenario_context.py +217 -0
- holado_test/common/context/step_context.py +66 -0
- holado_test/common/exceptions/undefined_step_exception.py +21 -0
- holado_test/scenario/step_tools.py +523 -0
- holado_test/scenario/tester_tools.py +52 -0
- holado_test/test_config.py +26 -0
- holado_test/tests/behave/steps/__init__.py +18 -0
- holado_test/tests/behave/steps/scenario/exception_steps.py +87 -0
- holado_test/tests/behave/steps/scenario/scenario_steps.py +87 -0
- holado_test/tests/behave/steps/scenario/tester_steps.py +65 -0
- holado_value/__init__.py +24 -0
- holado_value/common/tables/comparators/table_2_value_table_cell_comparator.py +195 -0
- holado_value/common/tables/comparators/table_2_value_table_comparator.py +27 -0
- holado_value/common/tables/comparators/table_2_value_table_row_comparator.py +27 -0
- holado_value/common/tables/comparators/table_2_value_table_with_header_comparator.py +27 -0
- holado_value/common/tables/converters/value_table_converter.py +217 -0
- holado_value/common/tables/value_table.py +29 -0
- holado_value/common/tables/value_table_cell.py +67 -0
- holado_value/common/tables/value_table_manager.py +58 -0
- holado_value/common/tables/value_table_row.py +44 -0
- holado_value/common/tables/value_table_with_header.py +28 -0
- holado_value/common/tools/unique_value_manager.py +108 -0
- holado_value/common/tools/value.py +164 -0
- holado_value/common/tools/value_types.py +35 -0
- holado_value/tests/behave/steps/__init__.py +16 -0
- holado_value/tests/behave/steps/private/__init__.py +16 -0
- holado_ws/__init__.py +16 -0
- holado_ws/api/ws/TODO.txt +2 -0
- holado_ws/tests/behave/steps/__init__.py +16 -0
- holado_ws/tests/behave/steps/api/web_service_steps.py +189 -0
- holado_yaml/__init__.py +31 -0
- holado_yaml/tests/behave/steps/__init__.py +16 -0
- holado_yaml/tests/behave/steps/yaml_steps.py +64 -0
- holado_yaml/yaml/yaml_manager.py +86 -0
- test_holado/Dockerfile_test_holado +82 -0
- test_holado/__init__.py +4 -0
- test_holado/__main__.py +25 -0
- test_holado/build_docker_image_to_test_holado_in_docker.sh +7 -0
- test_holado/environment.py +42 -0
- test_holado/features/NonReg/api/REST.feature +21 -0
- test_holado/features/NonReg/api/gRPC.feature +122 -0
- test_holado/features/NonReg/common/multiprocessing/simple.feature +60 -0
- test_holado/features/NonReg/common/system/commands.feature +43 -0
- test_holado/features/NonReg/common/system/system.feature +20 -0
- test_holado/features/NonReg/common/tables/table.feature +239 -0
- test_holado/features/NonReg/common/tables/value_table_conversion.feature +29 -0
- test_holado/features/NonReg/common/tools/DateTime.feature +88 -0
- test_holado/features/NonReg/common/tools/UniqueValueManager.feature +43 -0
- test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature +135 -0
- test_holado/features/NonReg/holado_protobuf/protobuf.feature +291 -0
- test_holado/features/NonReg/holado_python/convert.feature +20 -0
- test_holado/features/NonReg/holado_python/iterable.feature +61 -0
- test_holado/features/NonReg/holado_python/standard_library/socket.feature +101 -0
- test_holado/features/NonReg/holado_python/standard_library/socket_with_ssl.feature +180 -0
- test_holado/features/NonReg/holado_scripting/common/tools/dynamic_text_manager.feature +18 -0
- test_holado/features/NonReg/holado_scripting/common/tools/expression_evaluator.feature +185 -0
- test_holado/features/NonReg/holado_scripting/common/tools/variable_manager.feature +71 -0
- test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.error.feature +21 -0
- test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.feature +120 -0
- test_holado/features/NonReg/holado_yaml/yaml.feature +218 -0
- test_holado/features/NonReg/ipc/bit_series.error.feature +33 -0
- test_holado/features/NonReg/ipc/bit_series.feature +131 -0
- test_holado/features/NonReg/ipc/json.feature +20 -0
- test_holado/features/NonReg/scenario/scenario.feature +139 -0
- test_holado/features/NonReg/test_steps/behave.feature +275 -0
- test_holado/features/NonReg/test_steps/common.feature +100 -0
- test_holado/features/NonReg/tools/RabbitMQ.feature +445 -0
- test_holado/features/NonReg/tools/RabbitMQ_steps.feature +276 -0
- test_holado/features/NonReg/tools/S3/boto3_client.feature +73 -0
- test_holado/features/NonReg/tools/S3/minio_client.feature +75 -0
- test_holado/features/NonReg/tools/db_sqlite3.feature +41 -0
- test_holado/features/NonReg/tools/sFTP.feature +25 -0
- test_holado/features/Test/logger.feature +28 -0
- test_holado/features/__init__.py +0 -0
- test_holado/logging.conf +41 -0
- test_holado/resources/proto/definitions/protobuf/custom_types/field_types.proto +24 -0
- test_holado/resources/proto/definitions/protobuf/protobuf.dev/tutorial/addressbook.proto +56 -0
- test_holado/resources/proto/generated/protobuf/custom_types/field_types_pb2.py +34 -0
- test_holado/resources/proto/generated/protobuf/protobuf/dev/tutorial/addressbook_pb2.py +34 -0
- test_holado/resources/scripts/list_tags.sh +2 -0
- test_holado/resources/scripts/update_resources_proto_generated.py +70 -0
- test_holado/steps/__init__.py +0 -0
- test_holado/steps/private_steps.py +20 -0
- test_holado/steps/public_steps.py +23 -0
- test_holado/test_holado_session_context.py +43 -0
- test_holado/tools/django/README.txt +3 -0
- test_holado/tools/django/api_grpc/api_grpc/__init__.py +0 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/__init__.py +0 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/admin.py +3 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/apps.py +6 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/migrations/__init__.py +0 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/models.py +3 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/proto/__init__.py +0 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/proto/account.proto +27 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2.py +33 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2_grpc.py +199 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/serializers.py +12 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/services.py +11 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/tests.py +3 -0
- test_holado/tools/django/api_grpc/api_grpc/api1/views.py +3 -0
- test_holado/tools/django/api_grpc/api_grpc/asgi.py +16 -0
- test_holado/tools/django/api_grpc/api_grpc/settings.py +126 -0
- test_holado/tools/django/api_grpc/api_grpc/urls.py +27 -0
- test_holado/tools/django/api_grpc/api_grpc/wsgi.py +16 -0
- test_holado/tools/django/api_grpc/db.sqlite3 +0 -0
- test_holado/tools/django/api_grpc/manage.py +27 -0
- test_holado/tools/django/api_grpc/manual_test_commands.txt +25 -0
- test_holado/tools/django/api_rest/api_rest/__init__.py +0 -0
- test_holado/tools/django/api_rest/api_rest/api1/__init__.py +0 -0
- test_holado/tools/django/api_rest/api_rest/api1/admin.py +3 -0
- test_holado/tools/django/api_rest/api_rest/api1/apps.py +6 -0
- test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py +0 -0
- test_holado/tools/django/api_rest/api_rest/api1/models.py +3 -0
- test_holado/tools/django/api_rest/api_rest/api1/serializers.py +15 -0
- test_holado/tools/django/api_rest/api_rest/api1/tests.py +3 -0
- test_holado/tools/django/api_rest/api_rest/api1/views.py +24 -0
- test_holado/tools/django/api_rest/api_rest/asgi.py +16 -0
- test_holado/tools/django/api_rest/api_rest/settings.py +133 -0
- test_holado/tools/django/api_rest/api_rest/urls.py +32 -0
- test_holado/tools/django/api_rest/api_rest/wsgi.py +16 -0
- test_holado/tools/django/api_rest/db.sqlite3 +0 -0
- test_holado/tools/django/api_rest/manage.py +22 -0
- holado-0.2.1.dist-info/RECORD +0 -17
- {holado-0.2.1.dist-info → holado-0.2.3.dist-info}/WHEEL +0 -0
- {holado-0.2.1.dist-info → holado-0.2.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Note: HolAdo tests are currently failing with Python 3.13.0
|
|
2
|
+
|
|
3
|
+
### Build
|
|
4
|
+
|
|
5
|
+
#FROM python:3.10.15-alpine3.20 AS build
|
|
6
|
+
#FROM python:3.11.10-alpine3.20 AS build
|
|
7
|
+
FROM python:3.12.7-alpine3.20 AS build
|
|
8
|
+
#FROM python:3.13.0-alpine3.20 AS build
|
|
9
|
+
|
|
10
|
+
# Install to build python requirements
|
|
11
|
+
RUN apk update \
|
|
12
|
+
&& apk --no-cache --update add build-base \
|
|
13
|
+
&& apk --update add alpine-sdk \
|
|
14
|
+
&& apk add libffi-dev \
|
|
15
|
+
&& apk add postgresql-dev gcc python3-dev musl-dev \
|
|
16
|
+
&& apk add protobuf-dev
|
|
17
|
+
|
|
18
|
+
# Install to recompile proto
|
|
19
|
+
RUN apk update \
|
|
20
|
+
&& apk add gcompat
|
|
21
|
+
|
|
22
|
+
# Create user
|
|
23
|
+
RUN adduser -D appuser
|
|
24
|
+
|
|
25
|
+
# Create /code folder
|
|
26
|
+
RUN mkdir /code
|
|
27
|
+
RUN chown -R appuser:appuser /code
|
|
28
|
+
|
|
29
|
+
# Switch to user appuser
|
|
30
|
+
USER appuser
|
|
31
|
+
ENV PATH=/home/appuser/.local:/home/appuser/.local/bin:$PATH
|
|
32
|
+
|
|
33
|
+
# Create python venv
|
|
34
|
+
RUN python -m venv /code/env
|
|
35
|
+
RUN source /code/env/bin/activate
|
|
36
|
+
|
|
37
|
+
# Copy HolAdo sources
|
|
38
|
+
WORKDIR /code/holado/python
|
|
39
|
+
COPY --chown=appuser . .
|
|
40
|
+
|
|
41
|
+
# Install python requirements
|
|
42
|
+
RUN pip install -r requirements_docker.txt
|
|
43
|
+
|
|
44
|
+
# Recompile proto
|
|
45
|
+
RUN python tests/behave/test_holado/resources/scripts/update_resources_proto_generated.py -nu
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Runtime
|
|
50
|
+
|
|
51
|
+
#FROM python:3.10.15-alpine3.20 AS runtime
|
|
52
|
+
#FROM python:3.11.10-alpine3.20 AS runtime
|
|
53
|
+
FROM python:3.12.7-alpine3.20 AS runtime
|
|
54
|
+
#FROM python:3.13.0-alpine3.20 AS runtime
|
|
55
|
+
|
|
56
|
+
# Install for python requirements
|
|
57
|
+
RUN apk update \
|
|
58
|
+
&& apk --no-cache add libstdc++ \
|
|
59
|
+
&& apk --no-cache add postgresql-dev gcc python3-dev musl-dev
|
|
60
|
+
|
|
61
|
+
# Add tools
|
|
62
|
+
RUN apk --no-cache add bash \
|
|
63
|
+
&& apk --no-cache add nano \
|
|
64
|
+
&& apk --no-cache add curl
|
|
65
|
+
|
|
66
|
+
# Create user as in build
|
|
67
|
+
RUN adduser -D appuser
|
|
68
|
+
COPY --from=build /home/appuser/.local /home/appuser/.local
|
|
69
|
+
|
|
70
|
+
# Copy /code from build
|
|
71
|
+
COPY --from=build /code /code
|
|
72
|
+
|
|
73
|
+
# Switch to user appuser
|
|
74
|
+
USER appuser
|
|
75
|
+
ENV PATH=/home/appuser/.local:/home/appuser/.local/bin:$PATH
|
|
76
|
+
|
|
77
|
+
# Set working directory to easily launch HolAdo tests
|
|
78
|
+
WORKDIR /code/holado/python
|
|
79
|
+
RUN source /code/env/bin/activate
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
test_holado/__init__.py
ADDED
test_holado/__main__.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
#################################################
|
|
4
|
+
# HolAdo (Holistic Automation do)
|
|
5
|
+
#
|
|
6
|
+
# (C) Copyright 2021-2025 by Eric Klumpp
|
|
7
|
+
#
|
|
8
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
9
|
+
#
|
|
10
|
+
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
11
|
+
|
|
12
|
+
# The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
|
|
13
|
+
#################################################
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# This main is only needed to debug behave execution (and thus HolAdo) with breakpoints
|
|
17
|
+
|
|
18
|
+
import re
|
|
19
|
+
import sys
|
|
20
|
+
|
|
21
|
+
from behave.__main__ import main
|
|
22
|
+
|
|
23
|
+
if __name__ == '__main__':
|
|
24
|
+
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
|
25
|
+
sys.exit(main())
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
#################################################
|
|
4
|
+
# HolAdo (Holistic Automation do)
|
|
5
|
+
#
|
|
6
|
+
# (C) Copyright 2021-2025 by Eric Klumpp
|
|
7
|
+
#
|
|
8
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
9
|
+
#
|
|
10
|
+
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
11
|
+
|
|
12
|
+
# The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
|
|
13
|
+
#################################################
|
|
14
|
+
|
|
15
|
+
import os.path
|
|
16
|
+
import sys
|
|
17
|
+
import logging
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# Add testing solution sources paths
|
|
21
|
+
here = os.path.abspath(os.path.dirname(__file__))
|
|
22
|
+
sys.path.append(here)
|
|
23
|
+
holado_path = os.path.normpath(os.path.join(here, "..", "..", ".."))
|
|
24
|
+
sys.path.append( os.path.join(holado_path, "src") )
|
|
25
|
+
sys.path.append( os.path.join(holado_path, "tests", "behave") )
|
|
26
|
+
|
|
27
|
+
# Configure HolAdo
|
|
28
|
+
import holado
|
|
29
|
+
# Initialize HolAdo:
|
|
30
|
+
# - log_level is set to INFO for initialization phase, it will be overwrite by level in logging config file
|
|
31
|
+
# - log_on_console is True for initialization phase, it will be set to False when root log file will be defined
|
|
32
|
+
# - logging config file
|
|
33
|
+
from test_holado.test_holado_session_context import TestHoladoSessionContext
|
|
34
|
+
holado.initialize(TSessionContext=TestHoladoSessionContext, logging_config_file=os.path.join(here, 'logging.conf'), log_level=logging.INFO, log_on_console=True)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# Import generic environment methods
|
|
39
|
+
from holado_test.behave.behave_environment import * # @UnusedWildImport
|
|
40
|
+
|
|
41
|
+
# Define project specific environment methods
|
|
42
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@rest
|
|
3
|
+
Feature: Test REST module
|
|
4
|
+
|
|
5
|
+
@go_nogo
|
|
6
|
+
@need_update
|
|
7
|
+
Scenario: Simple get
|
|
8
|
+
|
|
9
|
+
### PRECONDITIONS - BEGIN
|
|
10
|
+
Given begin preconditions
|
|
11
|
+
|
|
12
|
+
Given SERVER = start internal REST server
|
|
13
|
+
|
|
14
|
+
Given CLIENT = new internal REST client
|
|
15
|
+
|
|
16
|
+
Given end preconditions
|
|
17
|
+
### PRECONDITIONS - END
|
|
18
|
+
|
|
19
|
+
When RESULT = get '/users' (REST client: CLIENT)
|
|
20
|
+
Then RESULT['results'] is list
|
|
21
|
+
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@grpc
|
|
3
|
+
Feature: Test gRPC module
|
|
4
|
+
|
|
5
|
+
@go_nogo
|
|
6
|
+
Scenario: Simple request
|
|
7
|
+
|
|
8
|
+
### PRECONDITIONS - BEGIN
|
|
9
|
+
Given begin preconditions
|
|
10
|
+
|
|
11
|
+
Given SERVER = start internal gRPC server
|
|
12
|
+
When wait 1 seconds
|
|
13
|
+
|
|
14
|
+
Given CLIENT = new internal gRPC client on service 'account.UserController'
|
|
15
|
+
|
|
16
|
+
Given end preconditions
|
|
17
|
+
### PRECONDITIONS - END
|
|
18
|
+
|
|
19
|
+
Given SERVICE_NAMES = service names (gRPC client: CLIENT)
|
|
20
|
+
Then SERVICE_NAMES is list
|
|
21
|
+
| 'account.UserController' |
|
|
22
|
+
|
|
23
|
+
When RESULT = request 'account.UserController.List' (gRPC client: CLIENT)
|
|
24
|
+
|
|
25
|
+
When TABLE = convert json RESULT to table with names as columns recursively
|
|
26
|
+
Then table TABLE is
|
|
27
|
+
| email | groups | id | username |
|
|
28
|
+
| 'auto@test.com' | [] | N/A | 'test_user' |
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
Scenario: Request with parameters
|
|
32
|
+
### PRECONDITIONS - BEGIN
|
|
33
|
+
Given begin preconditions
|
|
34
|
+
|
|
35
|
+
Given SERVER = start internal gRPC server
|
|
36
|
+
When wait 1 seconds
|
|
37
|
+
|
|
38
|
+
Given CLIENT = new internal gRPC client on service 'account.UserController'
|
|
39
|
+
|
|
40
|
+
Given end preconditions
|
|
41
|
+
### PRECONDITIONS - END
|
|
42
|
+
|
|
43
|
+
# Extract a user
|
|
44
|
+
When RESULT = request 'account.UserController.List' (gRPC client: CLIENT)
|
|
45
|
+
Given USER_JSON = RESULT[0]
|
|
46
|
+
|
|
47
|
+
When RESULT = request 'account.UserController.List' (gRPC client: CLIENT ; with Protobuf response)
|
|
48
|
+
Given USER_PROTO = RESULT[0]
|
|
49
|
+
|
|
50
|
+
# Retrieve user with json request & response
|
|
51
|
+
When RESULT = request 'account.UserController.Retrieve' (gRPC client: CLIENT)
|
|
52
|
+
| Name | Value |
|
|
53
|
+
| 'id' | USER_PROTO.id |
|
|
54
|
+
Then RESULT == USER_JSON
|
|
55
|
+
|
|
56
|
+
# Retrieve user with json request & proto response
|
|
57
|
+
When RESULT = request 'account.UserController.Retrieve' (gRPC client: CLIENT ; with Protobuf response)
|
|
58
|
+
| Name | Value |
|
|
59
|
+
| 'id' | USER_PROTO.id |
|
|
60
|
+
Then RESULT == USER_PROTO
|
|
61
|
+
|
|
62
|
+
# Retrieve user with proto request & json response
|
|
63
|
+
When RESULT = request 'account.UserController.Retrieve' (gRPC client: CLIENT ; with Protobuf request)
|
|
64
|
+
| Name | Value |
|
|
65
|
+
| 'id' | USER_PROTO.id |
|
|
66
|
+
Then RESULT == USER_JSON
|
|
67
|
+
|
|
68
|
+
# Retrieve user with proto request & proto response
|
|
69
|
+
When RESULT = request 'account.UserController.Retrieve' (gRPC client: CLIENT ; with Protobuf request & response)
|
|
70
|
+
| Name | Value |
|
|
71
|
+
| 'id' | USER_PROTO.id |
|
|
72
|
+
Then RESULT == USER_PROTO
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
Scenario: Request with request data build before request
|
|
77
|
+
### PRECONDITIONS - BEGIN
|
|
78
|
+
Given begin preconditions
|
|
79
|
+
|
|
80
|
+
Given SERVER = start internal gRPC server
|
|
81
|
+
When wait 1 seconds
|
|
82
|
+
|
|
83
|
+
Given CLIENT = new internal gRPC client on service 'account.UserController'
|
|
84
|
+
|
|
85
|
+
Given end preconditions
|
|
86
|
+
### PRECONDITIONS - END
|
|
87
|
+
|
|
88
|
+
# Extract a user
|
|
89
|
+
When RESULT = request 'account.UserController.List' (gRPC client: CLIENT)
|
|
90
|
+
Given USER_JSON = RESULT[0]
|
|
91
|
+
|
|
92
|
+
When RESULT = request 'account.UserController.List' (gRPC client: CLIENT ; with Protobuf response)
|
|
93
|
+
Given USER_PROTO = RESULT[0]
|
|
94
|
+
|
|
95
|
+
# Retrieve user with json request & response
|
|
96
|
+
When DATA = data for request 'account.UserController.Retrieve' (gRPC client: CLIENT)
|
|
97
|
+
| Name | Value |
|
|
98
|
+
| 'id' | USER_PROTO.id |
|
|
99
|
+
When RESULT = request 'account.UserController.Retrieve' with data DATA (gRPC client: CLIENT)
|
|
100
|
+
Then RESULT == USER_JSON
|
|
101
|
+
|
|
102
|
+
# Retrieve user with json request & proto response
|
|
103
|
+
When DATA = data for request 'account.UserController.Retrieve' (gRPC client: CLIENT)
|
|
104
|
+
| Name | Value |
|
|
105
|
+
| 'id' | USER_PROTO.id |
|
|
106
|
+
When RESULT = request 'account.UserController.Retrieve' with data DATA (gRPC client: CLIENT ; with Protobuf response)
|
|
107
|
+
Then RESULT == USER_PROTO
|
|
108
|
+
|
|
109
|
+
# Retrieve user with proto request & json response
|
|
110
|
+
When DATA = data for request 'account.UserController.Retrieve' (gRPC client: CLIENT ; as Protobuf)
|
|
111
|
+
| Name | Value |
|
|
112
|
+
| 'id' | USER_PROTO.id |
|
|
113
|
+
When RESULT = request 'account.UserController.Retrieve' with data DATA (gRPC client: CLIENT)
|
|
114
|
+
Then RESULT == USER_JSON
|
|
115
|
+
|
|
116
|
+
# Retrieve user with proto request & proto response
|
|
117
|
+
When DATA = data for request 'account.UserController.Retrieve' (gRPC client: CLIENT ; as Protobuf)
|
|
118
|
+
| Name | Value |
|
|
119
|
+
| 'id' | USER_PROTO.id |
|
|
120
|
+
When RESULT = request 'account.UserController.Retrieve' with data DATA (gRPC client: CLIENT ; with Protobuf response)
|
|
121
|
+
Then RESULT == USER_PROTO
|
|
122
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@multiprocessing
|
|
3
|
+
Feature: Basic features related to multiprocessing
|
|
4
|
+
|
|
5
|
+
Scenario: execute simple steps
|
|
6
|
+
Given BEG = datetime now
|
|
7
|
+
Given EXPECTED_MIN = BEG + 3 seconds
|
|
8
|
+
Given EXPECTED_MAX = EXPECTED_MIN + 400 milliseconds
|
|
9
|
+
|
|
10
|
+
Given PROC_ID_1 = call steps in a process
|
|
11
|
+
"""
|
|
12
|
+
Given wait 2 seconds
|
|
13
|
+
"""
|
|
14
|
+
Given PROC_ID_2 = call steps in a process
|
|
15
|
+
"""
|
|
16
|
+
Given wait 3 seconds
|
|
17
|
+
"""
|
|
18
|
+
Given PROC_ID_3 = call steps in a process
|
|
19
|
+
"""
|
|
20
|
+
Given wait 1 seconds
|
|
21
|
+
"""
|
|
22
|
+
When join process PROC_ID_1
|
|
23
|
+
When join process PROC_ID_2
|
|
24
|
+
When join process PROC_ID_3
|
|
25
|
+
|
|
26
|
+
Given END = datetime now
|
|
27
|
+
Then END >= EXPECTED_MIN
|
|
28
|
+
Then END < EXPECTED_MAX
|
|
29
|
+
|
|
30
|
+
Scenario: execute steps reading variables
|
|
31
|
+
Given SLEEP_1_S = 1
|
|
32
|
+
Given SLEEP_2_S = 2
|
|
33
|
+
Given SLEEP_3_S = 3
|
|
34
|
+
|
|
35
|
+
Given BEG = datetime now
|
|
36
|
+
Given EXPECTED_MIN = BEG + 3 seconds
|
|
37
|
+
Given EXPECTED_MAX = EXPECTED_MIN + 250 milliseconds
|
|
38
|
+
|
|
39
|
+
Given PROC_ID_1 = call steps in a process
|
|
40
|
+
"""
|
|
41
|
+
Given wait SLEEP_2_S seconds
|
|
42
|
+
"""
|
|
43
|
+
Given PROC_ID_2 = call steps in a process
|
|
44
|
+
"""
|
|
45
|
+
Given wait SLEEP_3_S seconds
|
|
46
|
+
"""
|
|
47
|
+
Given PROC_ID_3 = call steps in a process
|
|
48
|
+
"""
|
|
49
|
+
Given wait SLEEP_1_S seconds
|
|
50
|
+
"""
|
|
51
|
+
When join process PROC_ID_1
|
|
52
|
+
When join process PROC_ID_2
|
|
53
|
+
When join process PROC_ID_3
|
|
54
|
+
|
|
55
|
+
Given END = datetime now
|
|
56
|
+
Then END >= EXPECTED_MIN
|
|
57
|
+
Then END < EXPECTED_MAX
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@commands
|
|
3
|
+
Feature: Features realted to commands
|
|
4
|
+
|
|
5
|
+
Scenario: Simple command
|
|
6
|
+
|
|
7
|
+
Given VAR = new command 'pwd'
|
|
8
|
+
Then command VAR has status Ready
|
|
9
|
+
|
|
10
|
+
Given run command VAR
|
|
11
|
+
Then wait until command VAR has status Success (accepted time: 5 s ; timeout: 10 s)
|
|
12
|
+
|
|
13
|
+
Scenario: Simple command with arguments
|
|
14
|
+
|
|
15
|
+
Given VAR = new command 'pwd' with
|
|
16
|
+
| Name | Value |
|
|
17
|
+
| 'blocking' | False |
|
|
18
|
+
Then command VAR has status Ready
|
|
19
|
+
|
|
20
|
+
Given run command VAR
|
|
21
|
+
Then wait until command VAR has status Success (accepted time: 5 s ; timeout: 10 s)
|
|
22
|
+
|
|
23
|
+
Scenario: Simple python command
|
|
24
|
+
|
|
25
|
+
Given VAR = new command 'python3 -c "print('Hello')"' with
|
|
26
|
+
| Name | Value |
|
|
27
|
+
| 'blocking' | True |
|
|
28
|
+
| 'auto_stop' | True |
|
|
29
|
+
| 'name' | 'My command name' |
|
|
30
|
+
Then command VAR has status Ready
|
|
31
|
+
|
|
32
|
+
Given run command VAR
|
|
33
|
+
Then wait until command VAR has status Success (accepted time: 5 s ; timeout: 10 s)
|
|
34
|
+
|
|
35
|
+
Scenario: Failed command
|
|
36
|
+
|
|
37
|
+
Given VAR = new command 'xxxxxx'
|
|
38
|
+
Then command VAR has status Ready
|
|
39
|
+
|
|
40
|
+
Given run command VAR
|
|
41
|
+
Then wait until command VAR has status Error (accepted time: 5 s ; timeout: 10 s)
|
|
42
|
+
|
|
43
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@system
|
|
3
|
+
Feature: Features related to generic system actions
|
|
4
|
+
|
|
5
|
+
Scenario: Create file with content in context.text
|
|
6
|
+
|
|
7
|
+
Given DT_NOW = datetime now
|
|
8
|
+
Given DT_NOW_STR = convert datetime DT_NOW to string with format '%Y-%m-%dT%H-%M-%S-%f'
|
|
9
|
+
Given FILENAME = 'SC_KINEIS_OPS-ACK_${DT_NOW_STR}.xml'
|
|
10
|
+
|
|
11
|
+
Given TEXT = 'text'
|
|
12
|
+
|
|
13
|
+
Given FILE_PATH = create file with name FILENAME
|
|
14
|
+
"""
|
|
15
|
+
<node>${TEXT}</node>
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
Given FILE_CONTENT = content of file FILE_PATH
|
|
19
|
+
Given FILE_CONTENT_STR = convert object value FILE_CONTENT to string
|
|
20
|
+
Then FILE_CONTENT_STR == '<node>text</node>'
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@table
|
|
3
|
+
Feature: Features related to tables
|
|
4
|
+
|
|
5
|
+
Scenario: Extract data from table
|
|
6
|
+
### PRECONDITIONS - BEGIN
|
|
7
|
+
Given begin preconditions
|
|
8
|
+
|
|
9
|
+
Given INPUT_TABLE = convert json '{"test1" : 1, "test2":2.0, "test3": "test3", "test4" : null}' to name/value table with names uncollapsed
|
|
10
|
+
|
|
11
|
+
Given end preconditions
|
|
12
|
+
### PRECONDITIONS - END
|
|
13
|
+
|
|
14
|
+
Then table INPUT_TABLE is
|
|
15
|
+
| Name | Value |
|
|
16
|
+
| 'test1' | 1 |
|
|
17
|
+
| 'test2' | 2.0 |
|
|
18
|
+
| 'test3' | 'test3' |
|
|
19
|
+
| 'test4' | None |
|
|
20
|
+
|
|
21
|
+
Given EXTRACTED = extract column 'Name' from table INPUT_TABLE
|
|
22
|
+
Then table EXTRACTED is
|
|
23
|
+
| Name |
|
|
24
|
+
| 'test1' |
|
|
25
|
+
| 'test2' |
|
|
26
|
+
| 'test3' |
|
|
27
|
+
| 'test4' |
|
|
28
|
+
|
|
29
|
+
Given EXTRACTED = extract column 'Value' cells from table INPUT_TABLE
|
|
30
|
+
Then table EXTRACTED is
|
|
31
|
+
| 1 |
|
|
32
|
+
| 2.0 |
|
|
33
|
+
| 'test3' |
|
|
34
|
+
| None |
|
|
35
|
+
|
|
36
|
+
Given EXTRACTED = extract column 'Value' cells from table INPUT_TABLE as row
|
|
37
|
+
Then table EXTRACTED is
|
|
38
|
+
| 1 | 2.0 | 'test3' | None |
|
|
39
|
+
|
|
40
|
+
Scenario: Empty table
|
|
41
|
+
### PRECONDITIONS - BEGIN
|
|
42
|
+
Given begin preconditions
|
|
43
|
+
|
|
44
|
+
Given INPUT_TABLE = convert json '{}' to name/value table with names uncollapsed
|
|
45
|
+
Then table INPUT_TABLE is
|
|
46
|
+
| Name | Value |
|
|
47
|
+
|
|
48
|
+
Given end preconditions
|
|
49
|
+
### PRECONDITIONS - END
|
|
50
|
+
|
|
51
|
+
Then table INPUT_TABLE is empty
|
|
52
|
+
|
|
53
|
+
Scenario: Table count
|
|
54
|
+
### PRECONDITIONS - BEGIN
|
|
55
|
+
Given begin preconditions
|
|
56
|
+
|
|
57
|
+
Given INPUT_TABLE = convert json '{"test1" : 1, "test2":2.0, "test3": "test3", "test4" : null}' to name/value table with names uncollapsed
|
|
58
|
+
|
|
59
|
+
Then table INPUT_TABLE is
|
|
60
|
+
| Name | Value |
|
|
61
|
+
| 'test1' | 1 |
|
|
62
|
+
| 'test2' | 2.0 |
|
|
63
|
+
| 'test3' | 'test3' |
|
|
64
|
+
| 'test4' | None |
|
|
65
|
+
|
|
66
|
+
Given end preconditions
|
|
67
|
+
### PRECONDITIONS - END
|
|
68
|
+
|
|
69
|
+
Given TABLE_COUNT = number of rows in table INPUT_TABLE
|
|
70
|
+
Then TABLE_COUNT == 4
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
Scenario: Table count empty
|
|
74
|
+
### PRECONDITIONS - BEGIN
|
|
75
|
+
Given begin preconditions
|
|
76
|
+
|
|
77
|
+
Given INPUT_TABLE = convert json '{}' to name/value table with names uncollapsed
|
|
78
|
+
|
|
79
|
+
Given end preconditions
|
|
80
|
+
### PRECONDITIONS - END
|
|
81
|
+
|
|
82
|
+
Given TABLE_COUNT = number of rows in table INPUT_TABLE
|
|
83
|
+
Then TABLE_COUNT == 0
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
Scenario: Table verification and variables
|
|
87
|
+
### PRECONDITIONS - BEGIN
|
|
88
|
+
Given begin preconditions
|
|
89
|
+
|
|
90
|
+
Given INPUT_TABLE = convert json '{"test1" : 1, "test2":2.0, "test3": "TEST3 value", "test4" : null}' to name/value table with names uncollapsed
|
|
91
|
+
|
|
92
|
+
Given TEST3 = 'test3'
|
|
93
|
+
Given TEST3_VALUE = 'TEST3 value'
|
|
94
|
+
|
|
95
|
+
Given end preconditions
|
|
96
|
+
### PRECONDITIONS - END
|
|
97
|
+
|
|
98
|
+
Then table INPUT_TABLE is
|
|
99
|
+
| Name | Value |
|
|
100
|
+
| 'test1' | 1 |
|
|
101
|
+
| 'test2' | 2.0 |
|
|
102
|
+
| ${TEST3} | ${TEST3_VALUE} |
|
|
103
|
+
| 'test4' | None |
|
|
104
|
+
|
|
105
|
+
@table_without_rows
|
|
106
|
+
Scenario: Table without rows
|
|
107
|
+
### PRECONDITIONS - BEGIN
|
|
108
|
+
Given begin preconditions
|
|
109
|
+
|
|
110
|
+
Given INPUT_TABLE = convert json '{"a":"a", "b.c.b":"bcb", "b.d.a":"bda", "c.a":"ca", "c.b.a":"cba", "d.a":"da", "dab":"dab", "ea.id":"eaid", "f.a[0].g":"fa0g"}' to name/value table with names uncollapsed
|
|
111
|
+
|
|
112
|
+
Given end preconditions
|
|
113
|
+
### PRECONDITIONS - END
|
|
114
|
+
|
|
115
|
+
Given TABLE = table INPUT_TABLE without rows verifying
|
|
116
|
+
| Name |
|
|
117
|
+
| '${MatchPattern(c\..*)}' |
|
|
118
|
+
| 'dab' |
|
|
119
|
+
| 'd.a' |
|
|
120
|
+
| '${MatchPattern(f\.a\[\d+\]\.g)}' |
|
|
121
|
+
Then table TABLE is
|
|
122
|
+
| Name | Value |
|
|
123
|
+
| 'a' | 'a' |
|
|
124
|
+
| 'b.c.b' | 'bcb' |
|
|
125
|
+
| 'b.d.a' | 'bda' |
|
|
126
|
+
| 'ea.id' | 'eaid' |
|
|
127
|
+
|
|
128
|
+
@table_with_new_columns
|
|
129
|
+
Scenario: Table with new columns
|
|
130
|
+
### PRECONDITIONS - BEGIN
|
|
131
|
+
Given begin preconditions
|
|
132
|
+
|
|
133
|
+
Given INPUT_TABLE = table with header
|
|
134
|
+
| Name | Value | seconds | nanos |
|
|
135
|
+
| 'A' | 'VA' | 15 | 123456789 |
|
|
136
|
+
| 'B' | 'VB' | 3600 | 123456 |
|
|
137
|
+
|
|
138
|
+
Given end preconditions
|
|
139
|
+
### PRECONDITIONS - END
|
|
140
|
+
|
|
141
|
+
Given X = 2
|
|
142
|
+
Given TABLE = table INPUT_TABLE with new columns
|
|
143
|
+
| Column Name | Value Expression |
|
|
144
|
+
| 'Col 1' | 'Name: "${Column(Name)}"' |
|
|
145
|
+
| 'Col 2' | 'Name: '${Column(Name)}' ; Value: '${Column(Value)}' ; X: ${X}' |
|
|
146
|
+
| 'Time 1' | ${Column(seconds)} + ${Column(nanos)} / 1e9 |
|
|
147
|
+
| 'Time 2' | float(f"{${Column(seconds)}}.{${Column(nanos)}:09d}") |
|
|
148
|
+
|
|
149
|
+
Then table TABLE is
|
|
150
|
+
| Name | Value | seconds | nanos | Col 1 | Col 2 | Time 1 | Time 2 |
|
|
151
|
+
| 'A' | 'VA' | 15 | 123456789 | 'Name: "A"' | 'Name: 'A' ; Value: 'VA' ; X: 2' | 15.123456789 | 15.123456789 |
|
|
152
|
+
| 'B' | 'VB' | 3600 | 123456 | 'Name: "B"' | 'Name: 'B' ; Value: 'VB' ; X: 2' | 3600.000123456 | 3600.000123456 |
|
|
153
|
+
|
|
154
|
+
@table_with_new_rows
|
|
155
|
+
Scenario: Table with new rows
|
|
156
|
+
### PRECONDITIONS - BEGIN
|
|
157
|
+
Given begin preconditions
|
|
158
|
+
|
|
159
|
+
Given TABLE = table with header
|
|
160
|
+
| Name | Value |
|
|
161
|
+
| 'A' | 'VA' |
|
|
162
|
+
|
|
163
|
+
Given end preconditions
|
|
164
|
+
### PRECONDITIONS - END
|
|
165
|
+
|
|
166
|
+
Given X = 2
|
|
167
|
+
Given Y = 5
|
|
168
|
+
Given TABLE = table TABLE with new rows
|
|
169
|
+
| Name | Value |
|
|
170
|
+
| 'A${X}.${Y}' | ${Y} |
|
|
171
|
+
|
|
172
|
+
Then table TABLE is
|
|
173
|
+
| Name | Value |
|
|
174
|
+
| 'A' | 'VA' |
|
|
175
|
+
| 'A2.5' | 5 |
|
|
176
|
+
|
|
177
|
+
@table_without_duplicated_rows
|
|
178
|
+
Scenario: Table without duplicated rows
|
|
179
|
+
### PRECONDITIONS - BEGIN
|
|
180
|
+
Given begin preconditions
|
|
181
|
+
|
|
182
|
+
Given TABLE = table with header
|
|
183
|
+
| Col 1 | Col 2 | Col 3 |
|
|
184
|
+
| 'A1' | 'A2' | 'A3' |
|
|
185
|
+
| 'A1' | 'B2' | 'A3' |
|
|
186
|
+
| 'B1' | 'A2' | 'A3' |
|
|
187
|
+
| 'B1' | 'A2' | 'B3' |
|
|
188
|
+
| 'A1' | 'A2' | 'B3' |
|
|
189
|
+
| 'A1' | 'C2' | 'A3' |
|
|
190
|
+
| 'B1' | 'B2' | 'B3' |
|
|
191
|
+
|
|
192
|
+
Given end preconditions
|
|
193
|
+
### PRECONDITIONS - END
|
|
194
|
+
|
|
195
|
+
Given TABLE = table TABLE without duplicated rows
|
|
196
|
+
| Col 1 | Col 3 |
|
|
197
|
+
|
|
198
|
+
Then table TABLE is
|
|
199
|
+
| Col 1 | Col 2 | Col 3 |
|
|
200
|
+
| 'A1' | 'A2' | 'A3' |
|
|
201
|
+
| 'B1' | 'A2' | 'A3' |
|
|
202
|
+
| 'B1' | 'A2' | 'B3' |
|
|
203
|
+
| 'A1' | 'A2' | 'B3' |
|
|
204
|
+
|
|
205
|
+
@contains
|
|
206
|
+
@doesnt_contain
|
|
207
|
+
Scenario: Table contains or not a row
|
|
208
|
+
### PRECONDITIONS - BEGIN
|
|
209
|
+
Given begin preconditions
|
|
210
|
+
|
|
211
|
+
Given TABLE = table with header
|
|
212
|
+
| Col 1 | Col 2 | Col 3 |
|
|
213
|
+
| 'A1' | 'A2' | 'A3' |
|
|
214
|
+
| 'A1' | 'B2' | 'A3' |
|
|
215
|
+
| 'B1' | 'A2' | 'A3' |
|
|
216
|
+
|
|
217
|
+
Given end preconditions
|
|
218
|
+
### PRECONDITIONS - END
|
|
219
|
+
|
|
220
|
+
Then table TABLE contains
|
|
221
|
+
| Col 1 | Col 2 | Col 3 |
|
|
222
|
+
| 'A1' | 'A2' | 'A3' |
|
|
223
|
+
| 'B1' | 'A2' | 'A3' |
|
|
224
|
+
|
|
225
|
+
Given next step shall fail on exception matching 'Table obtained doesn't contain row expected of index 0'
|
|
226
|
+
Then table TABLE contains
|
|
227
|
+
| Col 1 | Col 2 | Col 3 |
|
|
228
|
+
| 'PIPO' | 'A2' | 'A3' |
|
|
229
|
+
|
|
230
|
+
Then table TABLE doesn't contain
|
|
231
|
+
| Col 1 | Col 2 | Col 3 |
|
|
232
|
+
| 'PIPO' | 'A2' | 'A3' |
|
|
233
|
+
|
|
234
|
+
Given next step shall fail on exception matching 'Table obtained contains row expected of index 1'
|
|
235
|
+
Then table TABLE doesn't contain
|
|
236
|
+
| Col 1 | Col 2 | Col 3 |
|
|
237
|
+
| 'PIPO' | 'A2' | 'A3' |
|
|
238
|
+
| 'A1' | 'A2' | 'A3' |
|
|
239
|
+
|