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,120 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@TextInterpreter
|
|
3
|
+
Feature: Features related to TextInterpreter
|
|
4
|
+
|
|
5
|
+
@variable
|
|
6
|
+
Scenario: interpret with variable reference
|
|
7
|
+
Given VAL_1 = 'value 1'
|
|
8
|
+
Given PARAM_NAME = 'VAL_1'
|
|
9
|
+
|
|
10
|
+
When RES = PARAM_NAME
|
|
11
|
+
Then RES == 'VAL_1'
|
|
12
|
+
|
|
13
|
+
When RES = '${PARAM_NAME}'
|
|
14
|
+
Then RES == 'VAL_1'
|
|
15
|
+
|
|
16
|
+
When RES = ${PARAM_NAME}
|
|
17
|
+
Then RES == 'value 1'
|
|
18
|
+
|
|
19
|
+
When RES = '${${PARAM_NAME}}'
|
|
20
|
+
Then RES == 'value 1'
|
|
21
|
+
|
|
22
|
+
@HexToBytes
|
|
23
|
+
Scenario: function HexToBytes
|
|
24
|
+
|
|
25
|
+
Given HEX = '01569F'
|
|
26
|
+
Given VALUE_1 = ${HexToBytes(HEX)}
|
|
27
|
+
Then VALUE_1 == b'\x01\x56\x9F'
|
|
28
|
+
|
|
29
|
+
Given VALUE_2 = ${HexToBytes('FFFF')}
|
|
30
|
+
Then VALUE_2 == b'\xFF\xFF'
|
|
31
|
+
|
|
32
|
+
@HexToInt
|
|
33
|
+
Scenario: function HexToInt
|
|
34
|
+
|
|
35
|
+
Given HEX = '040A'
|
|
36
|
+
Given VALUE = ${HexToInt(HEX)}
|
|
37
|
+
Then VALUE == 1034
|
|
38
|
+
|
|
39
|
+
Given VALUE = ${HexToInt(040A)}
|
|
40
|
+
Then VALUE == 1034
|
|
41
|
+
|
|
42
|
+
Given VALUE = ${HexToInt('040A')}
|
|
43
|
+
Then VALUE == 1034
|
|
44
|
+
|
|
45
|
+
@MatchPattern
|
|
46
|
+
Scenario: function MatchPattern
|
|
47
|
+
|
|
48
|
+
Given TEXT = 'Hello TOTO !'
|
|
49
|
+
Then TEXT == '${MatchPattern(.*TOTO.*)}'
|
|
50
|
+
|
|
51
|
+
Then TEXT == '${MatchPattern([^ ]+ (?P<NAME>\w+).*)}'
|
|
52
|
+
Then NAME == 'TOTO'
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
Given TEXT = 'Hello !\nHow are you TOTO ?'
|
|
56
|
+
|
|
57
|
+
Given next step shall fail on exception matching '.*holado_core.common.exceptions.verify_exception.VerifyException\(Match failure, value doesn't match pattern.*'
|
|
58
|
+
Then TEXT == '${MatchPattern(.*(?P<NAME>\w+) \?)}'
|
|
59
|
+
|
|
60
|
+
Then TEXT == '${MatchPattern(.*?(?P<NAME>\w+) \?, re.DOTALL)}'
|
|
61
|
+
Then NAME == 'TOTO'
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
Given TEXT = 'First plan was launched at 2024-06-20'
|
|
65
|
+
Then TEXT == '${MatchPattern(^First plan was launched at \d{4}-\d{2}-\d{2}$)}'
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
Given TABLE = table with header
|
|
69
|
+
| Name | Value |
|
|
70
|
+
| 'text' | 'First plan was launched at 2024-06-20' |
|
|
71
|
+
Then table TABLE is
|
|
72
|
+
| Name | Value |
|
|
73
|
+
| 'text' | '${MatchPattern(^First plan was launched at \d{4}-\d{2}-\d{2})}' |
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@ToHex
|
|
77
|
+
Scenario: function ToHex
|
|
78
|
+
|
|
79
|
+
Given VALUE = 1034
|
|
80
|
+
Given HEX = '${ToHex(VALUE)}'
|
|
81
|
+
Then HEX == '040A'
|
|
82
|
+
Given HEX = '${ToHex(VALUE, False)}'
|
|
83
|
+
Then HEX == '040a'
|
|
84
|
+
|
|
85
|
+
Given VALUE = 'TEST'
|
|
86
|
+
Given HEX = '${ToHex(VALUE)}'
|
|
87
|
+
Then HEX == '54455354'
|
|
88
|
+
|
|
89
|
+
Given VALUE = b'\xF1\x4A'
|
|
90
|
+
Given HEX = '${ToHex(VALUE)}'
|
|
91
|
+
Then HEX == 'F14A'
|
|
92
|
+
|
|
93
|
+
@EscapeAllBytes
|
|
94
|
+
Scenario: function EscapeAllBytes
|
|
95
|
+
|
|
96
|
+
Given HEX = 'd27ced'
|
|
97
|
+
Given VALUE = ${HexToBytes(HEX)}
|
|
98
|
+
Given ESCAPED_VALUE = '${EscapeAllBytes(VALUE)}'
|
|
99
|
+
|
|
100
|
+
Then ESCAPED_VALUE == 'b'\\xd2\\x7c\\xed''
|
|
101
|
+
|
|
102
|
+
# Same in a thread
|
|
103
|
+
Given THREAD_ID = call steps in a thread
|
|
104
|
+
"""
|
|
105
|
+
Given ESCAPED_VALUE_2 = '${EscapeAllBytes(VALUE)}'
|
|
106
|
+
"""
|
|
107
|
+
When join thread THREAD_ID
|
|
108
|
+
Then ESCAPED_VALUE_2 == ESCAPED_VALUE
|
|
109
|
+
|
|
110
|
+
# Same with explicit byte expression in text
|
|
111
|
+
Given THREAD_ID = call steps in a thread
|
|
112
|
+
"""
|
|
113
|
+
Given ESCAPED_VALUE_3 = '${EscapeAllBytes(b'\\xd2\\x7c\\xed')}'
|
|
114
|
+
"""
|
|
115
|
+
When join thread THREAD_ID
|
|
116
|
+
Then ESCAPED_VALUE_3 == ESCAPED_VALUE
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@yaml
|
|
3
|
+
Feature: Test YAML module
|
|
4
|
+
|
|
5
|
+
@load_file
|
|
6
|
+
Scenario: Load a YAML file
|
|
7
|
+
Given FILE_PATH = create file with name 'load.yaml'
|
|
8
|
+
"""
|
|
9
|
+
company: spacelift
|
|
10
|
+
domain:
|
|
11
|
+
- devops
|
|
12
|
+
- devsecops
|
|
13
|
+
tutorial:
|
|
14
|
+
- yaml:
|
|
15
|
+
name: "YAML Ain't Markup Language"
|
|
16
|
+
type: awesome
|
|
17
|
+
born: 2001
|
|
18
|
+
- json:
|
|
19
|
+
name: JavaScript Object Notation
|
|
20
|
+
type: great
|
|
21
|
+
born: 2001
|
|
22
|
+
- xml:
|
|
23
|
+
name: Extensible Markup Language
|
|
24
|
+
type: good
|
|
25
|
+
born: 1996
|
|
26
|
+
author: omkarbirade
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
When CONTENT = load YAML file FILE_PATH
|
|
30
|
+
|
|
31
|
+
Given TABLE = convert json CONTENT to name/value table with names and list uncollapsed
|
|
32
|
+
Then table TABLE is
|
|
33
|
+
| Name | Value |
|
|
34
|
+
| 'author' | 'omkarbirade' |
|
|
35
|
+
| 'company' | 'spacelift' |
|
|
36
|
+
| 'domain[0]' | 'devops' |
|
|
37
|
+
| 'domain[1]' | 'devsecops' |
|
|
38
|
+
| 'tutorial[0].yaml.born' | 2001 |
|
|
39
|
+
| 'tutorial[0].yaml.name' | 'YAML Ain't Markup Language' |
|
|
40
|
+
| 'tutorial[0].yaml.type' | 'awesome' |
|
|
41
|
+
| 'tutorial[1].json.born' | 2001 |
|
|
42
|
+
| 'tutorial[1].json.name' | 'JavaScript Object Notation' |
|
|
43
|
+
| 'tutorial[1].json.type' | 'great' |
|
|
44
|
+
| 'tutorial[2].xml.born' | 1996 |
|
|
45
|
+
| 'tutorial[2].xml.name' | 'Extensible Markup Language' |
|
|
46
|
+
| 'tutorial[2].xml.type' | 'good' |
|
|
47
|
+
|
|
48
|
+
@base_load_file
|
|
49
|
+
Scenario: Load a YAML file with only base YAML features
|
|
50
|
+
Given FILE_PATH = create file with name 'load.yaml'
|
|
51
|
+
"""
|
|
52
|
+
company: spacelift
|
|
53
|
+
domain:
|
|
54
|
+
- devops
|
|
55
|
+
- devsecops
|
|
56
|
+
tutorial:
|
|
57
|
+
- yaml:
|
|
58
|
+
name: "YAML Ain't Markup Language"
|
|
59
|
+
type: awesome
|
|
60
|
+
born: 2001
|
|
61
|
+
- json:
|
|
62
|
+
name: JavaScript Object Notation
|
|
63
|
+
type: great
|
|
64
|
+
born: 2001
|
|
65
|
+
- xml:
|
|
66
|
+
name: Extensible Markup Language
|
|
67
|
+
type: good
|
|
68
|
+
born: 1996
|
|
69
|
+
author: omkarbirade
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
When CONTENT = load YAML file FILE_PATH (with only strings)
|
|
73
|
+
|
|
74
|
+
Given TABLE = convert json CONTENT to name/value table with names and list uncollapsed
|
|
75
|
+
Then table TABLE is
|
|
76
|
+
| Name | Value |
|
|
77
|
+
| 'author' | 'omkarbirade' |
|
|
78
|
+
| 'company' | 'spacelift' |
|
|
79
|
+
| 'domain[0]' | 'devops' |
|
|
80
|
+
| 'domain[1]' | 'devsecops' |
|
|
81
|
+
| 'tutorial[0].yaml.born' | '2001' |
|
|
82
|
+
| 'tutorial[0].yaml.name' | 'YAML Ain't Markup Language' |
|
|
83
|
+
| 'tutorial[0].yaml.type' | 'awesome' |
|
|
84
|
+
| 'tutorial[1].json.born' | '2001' |
|
|
85
|
+
| 'tutorial[1].json.name' | 'JavaScript Object Notation' |
|
|
86
|
+
| 'tutorial[1].json.type' | 'great' |
|
|
87
|
+
| 'tutorial[2].xml.born' | '1996' |
|
|
88
|
+
| 'tutorial[2].xml.name' | 'Extensible Markup Language' |
|
|
89
|
+
| 'tutorial[2].xml.type' | 'good' |
|
|
90
|
+
|
|
91
|
+
@full_load_file
|
|
92
|
+
Scenario: Load a YAML file with full YAML features
|
|
93
|
+
Given FILE_PATH = create file with name 'load.yaml'
|
|
94
|
+
"""
|
|
95
|
+
company: spacelift
|
|
96
|
+
domain:
|
|
97
|
+
- devops
|
|
98
|
+
- devsecops
|
|
99
|
+
tutorial:
|
|
100
|
+
- yaml: &reference
|
|
101
|
+
name: "YAML Ain't Markup Language"
|
|
102
|
+
type: awesome
|
|
103
|
+
born: 2001
|
|
104
|
+
- json: *reference
|
|
105
|
+
- xml:
|
|
106
|
+
<<: *reference
|
|
107
|
+
born: 1996
|
|
108
|
+
author: omkarbirade
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
When CONTENT = load YAML file FILE_PATH (with full YAML features)
|
|
112
|
+
|
|
113
|
+
Given TABLE = convert json CONTENT to name/value table with names and list uncollapsed
|
|
114
|
+
Then table TABLE is
|
|
115
|
+
| Name | Value |
|
|
116
|
+
| 'author' | 'omkarbirade' |
|
|
117
|
+
| 'company' | 'spacelift' |
|
|
118
|
+
| 'domain[0]' | 'devops' |
|
|
119
|
+
| 'domain[1]' | 'devsecops' |
|
|
120
|
+
| 'tutorial[0].yaml.born' | 2001 |
|
|
121
|
+
| 'tutorial[0].yaml.name' | 'YAML Ain't Markup Language' |
|
|
122
|
+
| 'tutorial[0].yaml.type' | 'awesome' |
|
|
123
|
+
| 'tutorial[1].json.born' | 2001 |
|
|
124
|
+
| 'tutorial[1].json.name' | 'YAML Ain't Markup Language' |
|
|
125
|
+
| 'tutorial[1].json.type' | 'awesome' |
|
|
126
|
+
| 'tutorial[2].xml.born' | 1996 |
|
|
127
|
+
| 'tutorial[2].xml.name' | 'YAML Ain't Markup Language' |
|
|
128
|
+
| 'tutorial[2].xml.type' | 'awesome' |
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
@load_multiple_document
|
|
132
|
+
Scenario: Load a multiple document YAML file
|
|
133
|
+
Given FILE_PATH = create file with name 'load_multiple.yaml'
|
|
134
|
+
"""
|
|
135
|
+
---
|
|
136
|
+
company: spacelift
|
|
137
|
+
domain:
|
|
138
|
+
- devops
|
|
139
|
+
- devsecops
|
|
140
|
+
---
|
|
141
|
+
tutorial:
|
|
142
|
+
- yaml:
|
|
143
|
+
name: "YAML Ain't Markup Language"
|
|
144
|
+
type: awesome
|
|
145
|
+
born: 2001
|
|
146
|
+
- json:
|
|
147
|
+
name: JavaScript Object Notation
|
|
148
|
+
type: great
|
|
149
|
+
born: 2001
|
|
150
|
+
- xml:
|
|
151
|
+
name: Extensible Markup Language
|
|
152
|
+
type: good
|
|
153
|
+
born: 1996
|
|
154
|
+
author: omkarbirade
|
|
155
|
+
...
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
When CONTENT = load multiple documents YAML file FILE_PATH
|
|
159
|
+
|
|
160
|
+
Given TABLE_1 = convert json CONTENT[0] to name/value table with names and list uncollapsed
|
|
161
|
+
Given TABLE_2 = convert json CONTENT[1] to name/value table with names and list uncollapsed
|
|
162
|
+
Then table TABLE_1 is
|
|
163
|
+
| Name | Value |
|
|
164
|
+
| 'company' | 'spacelift' |
|
|
165
|
+
| 'domain[0]' | 'devops' |
|
|
166
|
+
| 'domain[1]' | 'devsecops' |
|
|
167
|
+
Then table TABLE_2 is
|
|
168
|
+
| Name | Value |
|
|
169
|
+
| 'author' | 'omkarbirade' |
|
|
170
|
+
| 'tutorial[0].yaml.born' | 2001 |
|
|
171
|
+
| 'tutorial[0].yaml.name' | 'YAML Ain't Markup Language' |
|
|
172
|
+
| 'tutorial[0].yaml.type' | 'awesome' |
|
|
173
|
+
| 'tutorial[1].json.born' | 2001 |
|
|
174
|
+
| 'tutorial[1].json.name' | 'JavaScript Object Notation' |
|
|
175
|
+
| 'tutorial[1].json.type' | 'great' |
|
|
176
|
+
| 'tutorial[2].xml.born' | 1996 |
|
|
177
|
+
| 'tutorial[2].xml.name' | 'Extensible Markup Language' |
|
|
178
|
+
| 'tutorial[2].xml.type' | 'good' |
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@save_file
|
|
182
|
+
Scenario: Save data in a YAML file
|
|
183
|
+
Given DATA = ${{'company': 'spacelift', 'domain': ['devops', 'devsecops'], 'tutorial': [{'yaml': {'name': "YAML Ain't Markup Language", 'type': 'awesome', 'born': 2001}}, {'json': {'name': 'JavaScript Object Notation', 'type': 'great', 'born': 2001}}, {'xml': {'name': 'Extensible Markup Language', 'type': 'good', 'born': 1996}}], 'author': 'omkarbirade'}}
|
|
184
|
+
|
|
185
|
+
Given FILE_PATH = path to file with name 'save.yaml'
|
|
186
|
+
When save DATA in YAML file FILE_PATH
|
|
187
|
+
|
|
188
|
+
Given CONTENT_BYTES = content of file FILE_PATH
|
|
189
|
+
Given CONTENT_STR = convert object value CONTENT_BYTES to string
|
|
190
|
+
Given CONTENT_STR = ${CONTENT_STR.strip()}
|
|
191
|
+
|
|
192
|
+
Given EXPECTED = multiline text
|
|
193
|
+
"""
|
|
194
|
+
author: omkarbirade
|
|
195
|
+
company: spacelift
|
|
196
|
+
domain:
|
|
197
|
+
- devops
|
|
198
|
+
- devsecops
|
|
199
|
+
tutorial:
|
|
200
|
+
- yaml:
|
|
201
|
+
born: 2001
|
|
202
|
+
name: YAML Ain't Markup Language
|
|
203
|
+
type: awesome
|
|
204
|
+
- json:
|
|
205
|
+
born: 2001
|
|
206
|
+
name: JavaScript Object Notation
|
|
207
|
+
type: great
|
|
208
|
+
- xml:
|
|
209
|
+
born: 1996
|
|
210
|
+
name: Extensible Markup Language
|
|
211
|
+
type: good
|
|
212
|
+
"""
|
|
213
|
+
Then CONTENT_STR == EXPECTED
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@bit_series
|
|
3
|
+
@error
|
|
4
|
+
@go_nogo
|
|
5
|
+
Feature: Test bit_series module
|
|
6
|
+
|
|
7
|
+
Scenario: Create from hexa bit-series of bit length out of bytes array length
|
|
8
|
+
Given BIT_SERIES = bit series
|
|
9
|
+
| Name | Bit length | Type |
|
|
10
|
+
| 'F1' | 3 | int |
|
|
11
|
+
| 'F2' | 1 | int |
|
|
12
|
+
| 'F3' | 1 | int |
|
|
13
|
+
|
|
14
|
+
Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; left padding ; obtained padding bits: 100\)'
|
|
15
|
+
When fill bit series BIT_SERIES from hexadecimal string '92'
|
|
16
|
+
|
|
17
|
+
Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; left padding ; obtained padding bits: 100\)'
|
|
18
|
+
When fill bit series BIT_SERIES from hexadecimal string '92' (left padded)
|
|
19
|
+
|
|
20
|
+
Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; right padding ; obtained padding bits: 010\)'
|
|
21
|
+
When fill bit series BIT_SERIES from hexadecimal string '92' (right padded)
|
|
22
|
+
|
|
23
|
+
Scenario: Create and convert bit-series to hexa with a field value exceeding bit length
|
|
24
|
+
Given BIT_SERIES = bit series
|
|
25
|
+
| Name | Bit length | Type | Value |
|
|
26
|
+
| 'F1' | 3 | int | 4 |
|
|
27
|
+
| 'F2' | 1 | int | 1 |
|
|
28
|
+
| 'F3' | 2 | int | 2 |
|
|
29
|
+
| 'F4' | 2 | int | 4 |
|
|
30
|
+
Given next step shall fail on exception matching 'For field 'F4', the value \[4\] has binary length 3 \(expected length: 2\)'
|
|
31
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
32
|
+
|
|
33
|
+
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@bit_series
|
|
3
|
+
@go_nogo
|
|
4
|
+
Feature: Test bit_series module
|
|
5
|
+
|
|
6
|
+
Scenario: Create and convert bit-series to hexa
|
|
7
|
+
Given BIT_SERIES = bit series
|
|
8
|
+
| Name | Bit length | Type | Value |
|
|
9
|
+
| 'F1' | 3 | int | 4 |
|
|
10
|
+
| 'F2' | 1 | int | 1 |
|
|
11
|
+
| 'F3' | 2 | int | 2 |
|
|
12
|
+
| 'F4' | 2 | int | 1 |
|
|
13
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
14
|
+
Then RAW_TM == '99'
|
|
15
|
+
|
|
16
|
+
Given BIT_SERIES = bit series
|
|
17
|
+
| Name | Bit length | Type | Value |
|
|
18
|
+
| 'F1' | 3 | int | 4 |
|
|
19
|
+
| 'F2' | 1 | int | 1 |
|
|
20
|
+
| 'F3' | 2 | int | 2 |
|
|
21
|
+
| 'F4' | 2 | int | 1 |
|
|
22
|
+
| 'F5' | 16 | str | 'ffff' |
|
|
23
|
+
| 'F6' | 16 | str | 'AE1B' |
|
|
24
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
25
|
+
Then RAW_TM == '99FFFFAE1B'
|
|
26
|
+
|
|
27
|
+
Scenario: Create and convert to hexa bit-series of bit length out of bytes array length
|
|
28
|
+
Given BIT_SERIES = bit series
|
|
29
|
+
| Name | Bit length | Type | Value |
|
|
30
|
+
| 'F1' | 3 | int | 4 |
|
|
31
|
+
| 'F2' | 1 | int | 1 |
|
|
32
|
+
| 'F3' | 1 | int | 1 |
|
|
33
|
+
|
|
34
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
35
|
+
Then RAW_TM == '13'
|
|
36
|
+
|
|
37
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (left padded)
|
|
38
|
+
Then RAW_TM == '13'
|
|
39
|
+
|
|
40
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (right padded)
|
|
41
|
+
Then RAW_TM == '98'
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
Given BIT_SERIES = bit series
|
|
45
|
+
| Name | Bit length | Type | Value |
|
|
46
|
+
| 'F1' | 3 | int | 4 |
|
|
47
|
+
| 'F2' | 1 | int | 1 |
|
|
48
|
+
| 'F3' | 3 | int | 1 |
|
|
49
|
+
|
|
50
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
51
|
+
Then RAW_TM == '49'
|
|
52
|
+
|
|
53
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (left padded)
|
|
54
|
+
Then RAW_TM == '49'
|
|
55
|
+
|
|
56
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (right padded)
|
|
57
|
+
Then RAW_TM == '92'
|
|
58
|
+
|
|
59
|
+
Scenario: Create a bit-series from hexa
|
|
60
|
+
Given BIT_SERIES = bit series
|
|
61
|
+
| Name | Bit length | Type |
|
|
62
|
+
| 'F1' | 3 | int |
|
|
63
|
+
| 'F2' | 1 | int |
|
|
64
|
+
| 'F3' | 2 | int |
|
|
65
|
+
| 'F4' | 2 | int |
|
|
66
|
+
When fill bit series BIT_SERIES from hexadecimal string '92'
|
|
67
|
+
Then bit series BIT_SERIES is
|
|
68
|
+
| Name | Bit length | Type | Value |
|
|
69
|
+
| 'F1' | 3 | int | 4 |
|
|
70
|
+
| 'F2' | 1 | int | 1 |
|
|
71
|
+
| 'F3' | 2 | int | 0 |
|
|
72
|
+
| 'F4' | 2 | int | 2 |
|
|
73
|
+
|
|
74
|
+
Scenario: Create from hexa bit-series of bit length out of bytes array length
|
|
75
|
+
Given BIT_SERIES = bit series
|
|
76
|
+
| Name | Bit length | Type |
|
|
77
|
+
| 'F1' | 3 | int |
|
|
78
|
+
| 'F2' | 1 | int |
|
|
79
|
+
| 'F3' | 1 | int |
|
|
80
|
+
|
|
81
|
+
When fill bit series BIT_SERIES from hexadecimal string '13'
|
|
82
|
+
Then bit series BIT_SERIES is
|
|
83
|
+
| Name | Bit length | Type | Value |
|
|
84
|
+
| 'F1' | 3 | int | 4 |
|
|
85
|
+
| 'F2' | 1 | int | 1 |
|
|
86
|
+
| 'F3' | 1 | int | 1 |
|
|
87
|
+
|
|
88
|
+
When fill bit series BIT_SERIES from hexadecimal string '13' (left padded)
|
|
89
|
+
Then bit series BIT_SERIES is
|
|
90
|
+
| Name | Bit length | Type | Value |
|
|
91
|
+
| 'F1' | 3 | int | 4 |
|
|
92
|
+
| 'F2' | 1 | int | 1 |
|
|
93
|
+
| 'F3' | 1 | int | 1 |
|
|
94
|
+
|
|
95
|
+
When fill bit series BIT_SERIES from hexadecimal string '98' (right padded)
|
|
96
|
+
Then bit series BIT_SERIES is
|
|
97
|
+
| Name | Bit length | Type | Value |
|
|
98
|
+
| 'F1' | 3 | int | 4 |
|
|
99
|
+
| 'F2' | 1 | int | 1 |
|
|
100
|
+
| 'F3' | 1 | int | 1 |
|
|
101
|
+
|
|
102
|
+
Scenario: Verify hexa string is bit series
|
|
103
|
+
Then hexadecimal string '92' is bit series
|
|
104
|
+
| Name | Bit length | Type | Value |
|
|
105
|
+
| 'F1' | 3 | int | 4 |
|
|
106
|
+
| 'F2' | 1 | int | 1 |
|
|
107
|
+
| 'F3' | 2 | int | 0 |
|
|
108
|
+
| 'F4' | 2 | int | 2 |
|
|
109
|
+
|
|
110
|
+
Scenario: Set bit-series field by variable expression
|
|
111
|
+
Given BIT_SERIES = bit series
|
|
112
|
+
| Name | Bit length | Type | Value |
|
|
113
|
+
| 'F1' | 3 | int | 4 |
|
|
114
|
+
| 'F2' | 1 | int | 1 |
|
|
115
|
+
| 'F3' | 2 | int | 2 |
|
|
116
|
+
| 'F4' | 2 | int | 1 |
|
|
117
|
+
| 'F5' | 16 | int | 0 |
|
|
118
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
119
|
+
Then BIT_SERIES['F5'] == 0
|
|
120
|
+
Then RAW_TM[-4:] == '0000'
|
|
121
|
+
|
|
122
|
+
Given BIT_SERIES['F5'] = 1
|
|
123
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
124
|
+
|
|
125
|
+
Then BIT_SERIES['F5'] == 1
|
|
126
|
+
Then RAW_TM[-4:] == '0001'
|
|
127
|
+
Then BIT_SERIES['F5'] != 0
|
|
128
|
+
Then RAW_TM[-4:] != '0000'
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@json
|
|
3
|
+
@go_nogo
|
|
4
|
+
Feature: Test json module
|
|
5
|
+
|
|
6
|
+
Scenario: Convert text to json object
|
|
7
|
+
|
|
8
|
+
### PRECONDITIONS - BEGIN
|
|
9
|
+
Given begin preconditions
|
|
10
|
+
|
|
11
|
+
Given FILE_CONTENT = b'[{\n "beaconData": "AAAH24LhKz2M+ICw4tTWc26VM8/D2t0QOva9GgOg7cQ8wLsdpiT3aHGDjYHp9YaRnmtrObAjsxIHvB5AUQlZMo0NaY7YJIroAOE/1WD1/Skofh71N4MVT9VmB8eqeYmP1vhaggycgJ3sa5AUin3fawT6TPm2ULC1JA1tjAhKrr6ziTyT0N+WmlXRwKNef1NQcO1pjcNIpvzTsYfVAeDM4zDec4HT70b9O93vtCeFMUCqjaBQh8rKVJQCyPhocy01trjWKV9QAB5Nt6vTjEZ9jUurbeJywj/sMf7C07OsX79Hu5tdvhB8+pFpFucmPIxdR6k21daA/SboxLErR+1PqJFxqGVxqendVshgQEAJImDIZSmt0q3ITAVYBY10ZHqApxWQSAE+Yox6xjQkL4EzZy3EI2+2zRCf7c6DhtKg3+PhlROOrzSSm5W40SLZdVyN/8Q413xx7ZW9Vcr+O024Fic9f1FwKEWWbv5aInYuiyIQrOATwNcWmBQpbTPVJ8M9kN4/Xl0eIgWZklakBamuJCF+SFD5yXjAUHyiq+lQVBxW7uULC5AucpoHry0I5htJi8Qc4n+T16wPlbdeVb/lC+3Fd9aF+q/yLQv7S8mIk5XpVq48hlc6Tu8gqgXKY5fYwBUjehnPW0qsgpqKddRiHbX6W85d3sTw7w3q+6ZW3RA=",\n "argosMetadata": {\n "base": {\n "satelliteId": "KIN1A",\n "onboardPacketTimeTai": "2023-01-01T00:32:17Z",\n "receptionLevel": -133.0,\n "cn0Dbhz": 44.8\n },\n "modulation": "MODULATION_HDA4",\n "blockCount": 4,\n "messageToaTai": "2023-01-01T00:32:17.167127609Z",\n "processingContext": {\n "processorId": 1,\n "utId": 21,\n "basebandId": 0\n },\n "dopplerRawFoaHz": 401657625.63,\n "qualityIndicator": 0\n },\n "grsMetadata": {\n "stationId": "TLS1",\n "receptionTimeTai": "2023-01-01T00:32:17Z"\n },\n "mcsMetadata": {\n "base": {\n "mcsInstance": "INSTANCE_SITE1",\n "receivedTimeTai": "2023-03-09T15:32:19.811Z",\n "availableTimeTai": "2023-03-09T15:32:19.839Z"\n },\n "foaValid": true,\n "dopplerCompensatedFoaHz": 401657728.29170704,\n "toaValid": true,\n "dopplerToaTai": "2023-01-01T00:32:17.179503679Z"\n }\n},\n{\n "beaconData": "AAAH2/VfdtJF2OKFG1cHg1C9i6ApjT4PsUFMKRSCejlUrO1bYv919RRbMwB6HB9APKZwcRvBU4xd/7kqsitALONMlJ8BsyZoN8r0UIIK7H9YNzkbbaBJZ6ce15UZLYdNEjvvtlCvB60EL5hlH7qsVccywmgf3seg0wu8HftUJMr0W7OCA/3mwfkPB2Ml4mmMRKJkE7EQNsrzm4E1gJRifRD1lG8Qgo+2njuN0YPC1zEpFW33wyf/ukSN0+wBFPqqNKHc6ARP8178xdaHY8OCKFjBh/7oOm91uMtFhajOJ4yCcxTzbvgq2Fhi3qPVKb5Tt+LN3ts1Mod96EXf2bz8GHz0bpCBRc4A53l2lpX7DY0W57vTUrt0moYvC22VXxJso6D4XDmOziaZL9NmBItgDiAAlXUrj9bYn1or93StPSjI9UruHuOIj5fu9cLHvdNEVtXGa2BF1gY0C/YP6EiRHkbdaf0WPWAfIHrB3Ad8HB2JpWyE9buNuIZu0FLYKe4M/WkLlOY28cyifRifZPiMMG2iL3NXQbG8W9n1yua8tOuKHqwmrXXL7LUYP1jnkxOZYF4wjkKvitN5QSAfJGNVUdIfe4TkeKrWgjsK2HPnVe7szCNjIqZFbdVGicAPoffhJSpuR9uBIzRflj1zKJDxwBaovGz0/w/kdXfc+k220QE=",\n "argosMetadata": {\n "base": {\n "satelliteId": "KIN1A",\n "onboardPacketTimeTai": "2023-01-01T00:31:17Z",\n "receptionLevel": -131.0,\n "cn0Dbhz": 48.0\n },\n "modulation": "MODULATION_HDA4",\n "blockCount": 4,\n "messageToaTai": "2023-01-01T00:31:17.168287038Z",\n "processingContext": {\n "utId": 39,\n "basebandId": 0,\n "processorId": 0\n },\n "dopplerRawFoaHz": 401658033.66,\n "qualityIndicator": 0\n },\n "grsMetadata": {\n "stationId": "TLS1",\n "receptionTimeTai": "2023-01-01T00:31:17Z"\n },\n "mcsMetadata": {\n "base": {\n "mcsInstance": "INSTANCE_SITE1",\n "receivedTimeTai": "2023-03-09T15:32:19.805Z",\n "availableTimeTai": "2023-03-09T15:32:19.836Z"\n },\n "foaValid": true,\n "dopplerCompensatedFoaHz": 401658136.3218114,\n "toaValid": true,\n "dopplerToaTai": "2023-01-01T00:31:17.179518938Z"\n }\n},\n{\n "beaconData": "AAAH21gMNR9eyMOyrHdJZw+kCxjdGC19BRlOzRc2P51hdzN2laSbQRlDVJMKeP/T3MpH/fgF5P5HA26jANhk540o/8lPST4XOemTqHAngCOw7qyOOIhCJPMYKZYvfou7PDy+8Et+whuNEidbDAD6FL58NPugDpd2PYPzOmxg0UHjGjWb6lEjtWJw7PCQ7TOWt2kRnRMTINCgX7Ja0S2GmcLqxfJNvCz0R73A4D2ZptFPb2YKwXYT6KgmuERj6a6TjVzib6Qunsq5BPifN/WKlhV8o53lXzOUf1KoQj12eVrCX7Ek0zPRyAyIdl9u0reDcsfIiK7o0HTaayXInEZOAP8juWpFJZAusK7Z4IkKfzZwgseNYpequY1UY5hyOGqrKnKO0OD+brbCtlc1Hp1Sdvezy0m7pNY/nqs+JRIJpICWcgCajkl2tkx4qNo7xVpDmYM9762ubTUP/K7Ea78i8Nqq/fOoKc62n9yVsXGFXFXOSmaOPGr6u9rgNTVp1kwcENgXjhRRTG8x44hF/mPrvzX4BuG7Khgv9jd01kiGftS2GImuxrGG3AKuZyjWyb0JlOKMIf2z3sIaa3v/+IfBaWThomO6EGGf2YwicYT4ixm64A2D2BDF++Fc2a4zTCNucxO0/QrLdu16ETFM/pqEGNUs/U+PcsNHB2VAuC6fLOE=",\n "argosMetadata": {\n "base": {\n "satelliteId": "KIN1A",\n "onboardPacketTimeTai": "2023-01-01T00:33:17Z",\n "receptionLevel": -136.2,\n "cn0Dbhz": 40.0\n },\n "modulation": "MODULATION_HDA4",\n "blockCount": 4,\n "messageToaTai": "2023-01-01T00:33:17.166072368Z",\n "processingContext": {\n "utId": 93,\n "basebandId": 0,\n "processorId": 0\n },\n "dopplerRawFoaHz": 401656977.09,\n "qualityIndicator": 0\n },\n "grsMetadata": {\n "stationId": "TLS1",\n "receptionTimeTai": "2023-01-01T00:33:17Z"\n },\n "mcsMetadata": {\n "base": {\n "mcsInstance": "INSTANCE_SITE1",\n "receivedTimeTai": "2023-03-09T15:32:19.814Z",\n "availableTimeTai": "2023-03-09T15:32:19.842Z"\n },\n "foaValid": true,\n "dopplerCompensatedFoaHz": 401657079.75154126,\n "toaValid": true,\n "dopplerToaTai": "2023-01-01T00:33:17.179488420Z"\n }\n}]'
|
|
12
|
+
|
|
13
|
+
Given end preconditions
|
|
14
|
+
### PRECONDITIONS - END
|
|
15
|
+
|
|
16
|
+
Given LIST = convert text FILE_CONTENT to json
|
|
17
|
+
|
|
18
|
+
Given SIZE = size of LIST
|
|
19
|
+
Then SIZE == 3
|
|
20
|
+
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@scenario
|
|
3
|
+
Feature: Features related to scenario
|
|
4
|
+
|
|
5
|
+
@preconditions
|
|
6
|
+
Scenario: preconditions
|
|
7
|
+
|
|
8
|
+
Given next step shall fail on exception matching ''ScenarioContext' object has no attribute 'is_in_preconditions''
|
|
9
|
+
Then SCENARIO_CONTEXT.is_in_preconditions == False
|
|
10
|
+
|
|
11
|
+
### PRECONDITIONS - BEGIN
|
|
12
|
+
Given begin preconditions
|
|
13
|
+
|
|
14
|
+
Then SCENARIO_CONTEXT.is_in_preconditions == True
|
|
15
|
+
|
|
16
|
+
Given end preconditions
|
|
17
|
+
### PRECONDITIONS - END
|
|
18
|
+
|
|
19
|
+
Then SCENARIO_CONTEXT.is_in_preconditions == False
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Scenario: postconditions
|
|
23
|
+
|
|
24
|
+
### PRECONDITIONS - BEGIN
|
|
25
|
+
Given begin preconditions
|
|
26
|
+
|
|
27
|
+
Given VAR = 'before postcondition'
|
|
28
|
+
Given at end of scenario, call steps
|
|
29
|
+
"""
|
|
30
|
+
Given VAR = 'after postcondition'
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
Given end preconditions
|
|
34
|
+
### PRECONDITIONS - END
|
|
35
|
+
|
|
36
|
+
Then VAR == 'before postcondition'
|
|
37
|
+
|
|
38
|
+
When execute post processes of scenario context
|
|
39
|
+
|
|
40
|
+
Then VAR == 'after postcondition'
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@table_possible_values
|
|
44
|
+
Scenario: Scenario table possible values
|
|
45
|
+
|
|
46
|
+
### PRECONDITIONS - BEGIN
|
|
47
|
+
Given begin preconditions
|
|
48
|
+
|
|
49
|
+
Given INPUT_TEXT = multiline text
|
|
50
|
+
"""
|
|
51
|
+
{"test01": 1, "test02":2.0, "test03": "test3", "test04": null, "test05": "dummy",
|
|
52
|
+
"test06": "Variable value", "test07": "Variable value", "test08": "ExtractIn function",
|
|
53
|
+
"test09": "has txt inside", "test10": 3}
|
|
54
|
+
"""
|
|
55
|
+
Given INPUT_TABLE = convert json INPUT_TEXT to name/value table with names uncollapsed
|
|
56
|
+
Given VAR = 'Variable value'
|
|
57
|
+
Given TXT = 'txt'
|
|
58
|
+
Given VAL_2 = 2
|
|
59
|
+
|
|
60
|
+
Given end preconditions
|
|
61
|
+
### PRECONDITIONS - END
|
|
62
|
+
|
|
63
|
+
Then table INPUT_TABLE is
|
|
64
|
+
| Name | Value |
|
|
65
|
+
| 'test01' | 1 |
|
|
66
|
+
| 'test02' | 2.0 |
|
|
67
|
+
| 'test03' | 'test3' |
|
|
68
|
+
| 'test04' | None |
|
|
69
|
+
| 'test05' | N/A |
|
|
70
|
+
| 'test06' | VAR |
|
|
71
|
+
| 'test07' | '${VAR}' |
|
|
72
|
+
| 'test08' | '${ExtractIn(VAR2)}' |
|
|
73
|
+
| 'test09' | '${MatchPattern(has ${TXT} inside)}' |
|
|
74
|
+
| 'test10' | ${VAL_2} + 1 |
|
|
75
|
+
|
|
76
|
+
Then VAR2 == 'ExtractIn function'
|
|
77
|
+
|
|
78
|
+
Scenario: Use a table variable as a scenario table
|
|
79
|
+
|
|
80
|
+
### PRECONDITIONS - BEGIN
|
|
81
|
+
Given begin preconditions
|
|
82
|
+
|
|
83
|
+
Given INPUT_TABLE = convert json '{"test1": 1, "test2":2.0, "test3": "test3", "test4": null, "test5": "dummy", "test6": "Variable value", "test7": "Variable value", "test8": "ExtractIn function"}' to name/value table with names uncollapsed
|
|
84
|
+
Given VAR = 'Variable value'
|
|
85
|
+
|
|
86
|
+
Given end preconditions
|
|
87
|
+
### PRECONDITIONS - END
|
|
88
|
+
|
|
89
|
+
Given TABLE = table with header
|
|
90
|
+
| INPUT_TABLE |
|
|
91
|
+
|
|
92
|
+
Then table TABLE is
|
|
93
|
+
| Name | Value |
|
|
94
|
+
| 'test1' | 1 |
|
|
95
|
+
| 'test2' | 2.0 |
|
|
96
|
+
| 'test3' | 'test3' |
|
|
97
|
+
| 'test4' | None |
|
|
98
|
+
| 'test5' | N/A |
|
|
99
|
+
| 'test6' | VAR |
|
|
100
|
+
| 'test7' | '${VAR}' |
|
|
101
|
+
| 'test8' | '${ExtractIn(VAR2)}' |
|
|
102
|
+
|
|
103
|
+
Then VAR2 == 'ExtractIn function'
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
@ScenarioTools.evaluate_scenario_parameter
|
|
107
|
+
Scenario: ScenarioTools.evaluate_scenario_parameter
|
|
108
|
+
Given VAR1 = 10
|
|
109
|
+
Given VAR2 = 11
|
|
110
|
+
Given VAR2S = '11'
|
|
111
|
+
Given VAR2_PLUS = '10 + 1'
|
|
112
|
+
Given VAR3 = 9
|
|
113
|
+
|
|
114
|
+
Then VAR2 == ${VAR1} + 1
|
|
115
|
+
Then VAR2_PLUS == '${VAR1} + 1'
|
|
116
|
+
Then VAR2 == ${${VAR1} + 1}
|
|
117
|
+
Then VAR2S == '${${VAR1} + 1}'
|
|
118
|
+
Then VAR3 == ${VAR1} - 1
|
|
119
|
+
|
|
120
|
+
Given URL = 'http://auto.test'
|
|
121
|
+
Given PORT = '1234'
|
|
122
|
+
Given ENDPOINT = '${URL}:${PORT}'
|
|
123
|
+
Then ENDPOINT == 'http://auto.test:1234'
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
# Python expression evaluation
|
|
127
|
+
Given VAR4 = ${"{:>08s}".format("A0")}
|
|
128
|
+
Then VAR4 == '000000A0'
|
|
129
|
+
Given VAR4 = ${"{{:>08s}}".format("A0")}
|
|
130
|
+
Then VAR4 == '000000A0'
|
|
131
|
+
Given VAR4 = ${'{{:>08s}}'.format('A0')}
|
|
132
|
+
Then VAR4 == '000000A0'
|
|
133
|
+
|
|
134
|
+
Given VAR5 = ${[{'a': {'b': 'c'}}]}
|
|
135
|
+
Then VAR5 is list
|
|
136
|
+
Then VAR5[0]['a']['b'] == 'c'
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|