holado 0.13.22__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holado/__init__.py +358 -0
- holado/common/__init__.py +25 -0
- holado/common/context/__init__.py +25 -0
- holado/common/context/context.py +248 -0
- holado/common/context/service_manager.py +262 -0
- holado/common/context/session_context.py +516 -0
- holado/common/handlers/__init__.py +19 -0
- holado/common/handlers/enums.py +41 -0
- holado/common/handlers/object.py +175 -0
- holado/common/handlers/undefined.py +55 -0
- holado/common/tools/__init__.py +19 -0
- holado/common/tools/gc_manager.py +155 -0
- holado/holado_config.py +45 -0
- holado-0.13.22.dist-info/METADATA +194 -0
- holado-0.13.22.dist-info/RECORD +698 -0
- holado-0.13.22.dist-info/WHEEL +4 -0
- holado-0.13.22.dist-info/licenses/LICENSE +21 -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 +356 -0
- holado_ais/ais/ais_payload.py +35 -0
- holado_ais/ais/enums.py +37 -0
- holado_ais/ais/patch_pyais.py +1174 -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 +237 -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 +132 -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 +68 -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 +702 -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 +263 -0
- holado_core/common/resource/resource_manager.py +126 -0
- holado_core/common/resource/table_data_manager.py +110 -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 +233 -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 +365 -0
- holado_core/common/tables/table_row.py +169 -0
- holado_core/common/tables/table_with_header.py +242 -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 +118 -0
- holado_core/common/tools/path_manager.py +238 -0
- holado_core/common/tools/string_tools.py +144 -0
- holado_core/common/tools/tools.py +197 -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 +137 -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 +560 -0
- holado_core/tools/__init__.py +0 -0
- holado_core/tools/abstracts/__init__.py +0 -0
- holado_core/tools/abstracts/blocking_command_service.py +64 -0
- holado_core/tools/abstracts/service.py +48 -0
- holado_crypto/__init__.py +31 -0
- holado_crypto/crypto/crypto.py +108 -0
- holado_crypto/crypto/key.py +92 -0
- holado_crypto/crypto/tcpbin.py +105 -0
- holado_crypto/crypto/transport/__init__.py +0 -0
- holado_crypto/crypto/transport/crc.py +40 -0
- holado_crypto/tests/behave/steps/__init__.py +18 -0
- holado_crypto/tests/behave/steps/crypto_steps.py +112 -0
- holado_crypto/tests/behave/steps/key_steps.py +82 -0
- holado_crypto/tests/behave/steps/tcpbin_steps.py +79 -0
- holado_data/__init__.py +31 -0
- holado_data/data/generator/base.py +93 -0
- holado_data/data/generator/generator_manager.py +27 -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 +59 -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_audit.py +94 -0
- holado_db/tools/db/clients/base/db_client.py +344 -0
- holado_db/tools/db/clients/postgresql/postgresql_audit.py +75 -0
- holado_db/tools/db/clients/postgresql/postgresql_client.py +84 -0
- holado_db/tools/db/clients/sqlite/sqlite_audit.py +70 -0
- holado_db/tools/db/clients/sqlite/sqlite_client.py +60 -0
- holado_db/tools/db/db_manager.py +109 -0
- holado_db/tools/db/query/base/query_builder.py +138 -0
- holado_db/tools/db/query/pypika/pypika_query_builder.py +244 -0
- holado_db/tools/db/query/query_manager.py +77 -0
- holado_django/__init__.py +31 -0
- holado_django/server/HOWTO.txt +27 -0
- holado_django/server/django_projects/rest_api/db.sqlite3 +0 -0
- holado_django/server/django_projects/rest_api/manage.py +22 -0
- holado_django/server/django_projects/rest_api/rest_api/__init__.py +0 -0
- holado_django/server/django_projects/rest_api/rest_api/application/__init__.py +0 -0
- holado_django/server/django_projects/rest_api/rest_api/application/admin.py +3 -0
- holado_django/server/django_projects/rest_api/rest_api/application/apps.py +9 -0
- holado_django/server/django_projects/rest_api/rest_api/application/migrations/__init__.py +0 -0
- holado_django/server/django_projects/rest_api/rest_api/application/models.py +3 -0
- holado_django/server/django_projects/rest_api/rest_api/application/tests.py +3 -0
- holado_django/server/django_projects/rest_api/rest_api/application/views.py +6 -0
- holado_django/server/django_projects/rest_api/rest_api/asgi.py +16 -0
- holado_django/server/django_projects/rest_api/rest_api/settings.py +130 -0
- holado_django/server/django_projects/rest_api/rest_api/urls.py +35 -0
- holado_django/server/django_projects/rest_api/rest_api/wsgi.py +16 -0
- holado_django/server/django_server.py +110 -0
- holado_django/server/grpc_django_server.py +57 -0
- holado_django/server/patch_djangogrpcframework.py +46 -0
- holado_django/tests/behave/steps/__init__.py +16 -0
- holado_django/tests/behave/steps/django_server_steps.py +83 -0
- holado_docker/__init__.py +25 -0
- holado_docker/sdk/docker/container_logs.py +447 -0
- holado_docker/sdk/docker/docker_client.py +537 -0
- holado_docker/sdk/docker/docker_service.py +71 -0
- holado_docker/tests/behave/steps/__init__.py +16 -0
- holado_docker/tests/behave/steps/sdk/docker/container_logs_steps.py +47 -0
- holado_examples/projects/server_rest/server_rest_example/initialize_holado.py +72 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/db.sqlite3 +0 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/manage.py +22 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/__init__.py +0 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/__init__.py +0 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/admin.py +3 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/apps.py +7 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/migrations/__init__.py +0 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/models.py +3 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/serializers.py +15 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/tests.py +3 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/views.py +24 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/asgi.py +16 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/settings.py +130 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/urls.py +31 -0
- holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/wsgi.py +16 -0
- holado_examples/projects/server_rest/server_rest_example/rest_server.py +37 -0
- holado_examples/scripts/script_custom_initialization.py +16 -0
- holado_examples/scripts/script_minimal_initialization.py +23 -0
- holado_examples/tests/behave/testing_solution/__main__.py +13 -0
- holado_examples/tests/behave/testing_solution/behave_environment.py +35 -0
- holado_examples/tests/behave/testing_solution/environment.py +36 -0
- holado_examples/tests/behave/testing_solution/features/Configuration/Actions/configure_system.feature +10 -0
- holado_examples/tests/behave/testing_solution/features/NonReg/example.feature +26 -0
- holado_examples/tests/behave/testing_solution/initialize_holado.py +62 -0
- holado_examples/tests/behave/testing_solution/logging.conf +102 -0
- holado_examples/tests/behave/testing_solution/requirements.txt +5 -0
- holado_examples/tests/behave/testing_solution/run_test.sh +7 -0
- holado_examples/tests/behave/testing_solution/run_test_nonreg.sh +6 -0
- holado_examples/tests/behave/testing_solution/src/common/tools/path_manager.py +40 -0
- holado_examples/tests/behave/testing_solution/src/config/config_manager.py +30 -0
- holado_examples/tests/behave/testing_solution/src/context/session_context.py +45 -0
- holado_examples/tests/behave/testing_solution/steps/config_steps.py +21 -0
- holado_examples/tests/behave/testing_solution/steps/public_steps.py +10 -0
- holado_grpc/TODO +8 -0
- holado_grpc/__init__.py +40 -0
- holado_grpc/api/rpc/TODO.txt +4 -0
- holado_grpc/api/rpc/grpc_client.py +210 -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 +44 -0
- holado_helper/docker/run_holado_test_nonreg_in_docker.sh +120 -0
- holado_helper/docker/run_terminal_in_docker.sh +101 -0
- holado_helper/holado_module_template/__init__.py +38 -0
- holado_helper/holado_module_template/tests/behave/steps/__init__.py +16 -0
- holado_helper/holado_module_template/tests/behave/steps/private/__init__.py +16 -0
- holado_helper/initialize_holado.py +72 -0
- holado_helper/script/action.py +130 -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 +95 -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/filesystem/json_file.py +94 -0
- holado_json/filesystem/stream_json_file.py +117 -0
- holado_json/ipc/json.py +146 -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 +131 -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 +73 -0
- holado_keycloak/tools/keycloak/__init__.py +0 -0
- holado_keycloak/tools/keycloak/keycloak_client.py +90 -0
- holado_logging/__init__.py +38 -0
- holado_logging/common/logging/holado_logger.py +71 -0
- holado_logging/common/logging/log_config.py +163 -0
- holado_logging/common/logging/log_manager.py +335 -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 +137 -0
- holado_multitask/multiprocessing/process.py +213 -0
- holado_multitask/multiprocessing/processesmanager.py +137 -0
- holado_multitask/multitasking/multitask_manager.py +464 -0
- holado_multitask/multithreading/__init__.py +0 -0
- holado_multitask/multithreading/context/thread_context.py +86 -0
- holado_multitask/multithreading/functionthreaded.py +129 -0
- holado_multitask/multithreading/loopfunctionthreaded.py +45 -0
- holado_multitask/multithreading/loopthread.py +110 -0
- holado_multitask/multithreading/periodicfunctionthreaded.py +135 -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 +203 -0
- holado_multitask/multithreading/threadsmanager.py +167 -0
- holado_multitask/multithreading/timer.py +51 -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 +968 -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 +36 -0
- holado_python/common/enums.py +34 -0
- holado_python/common/iterables.py +38 -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 +341 -0
- holado_python/standard_library/csv.py +207 -0
- holado_python/standard_library/hashlib.py +110 -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 +219 -0
- holado_python/standard_library/socket/echo_server.py +29 -0
- holado_python/standard_library/socket/message_socket.py +152 -0
- holado_python/standard_library/socket/non_blocking_socket.py +172 -0
- holado_python/standard_library/socket/socket.py +411 -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 +131 -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 +384 -0
- holado_python/tests/behave/steps/standard_library/ssl_steps.py +71 -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 +565 -0
- holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py +64 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py +333 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +678 -0
- holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +146 -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 +36 -0
- holado_report/campaign/campaign_manager.py +348 -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_report_builder.py +172 -0
- holado_report/report/builders/execution_historic_report_builder.py +132 -0
- holado_report/report/builders/failure_report_builder.py +150 -0
- holado_report/report/builders/report_builder.py +64 -0
- holado_report/report/builders/short_scenario_report_builder.py +94 -0
- holado_report/report/builders/summary_by_category_report_builder.py +103 -0
- holado_report/report/builders/summary_report_builder.py +110 -0
- holado_report/report/builders/summary_scenario_by_category_report_builder.py +109 -0
- holado_report/report/builders/summary_scenario_report_builder.py +81 -0
- holado_report/report/execution_historic.py +144 -0
- holado_report/report/report_manager.py +424 -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 +32 -0
- holado_rest/api/rest/TODO.txt +2 -0
- holado_rest/api/rest/rest_client.py +200 -0
- holado_rest/api/rest/rest_manager.py +72 -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 +181 -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 +75 -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 +54 -0
- holado_scripting/common/tools/dynamic_text_manager.py +73 -0
- holado_scripting/common/tools/evaluate_parameters.py +228 -0
- holado_scripting/common/tools/expression_evaluator.py +389 -0
- holado_scripting/common/tools/variable_manager.py +354 -0
- holado_scripting/tests/behave/steps/__init__.py +22 -0
- holado_scripting/tests/behave/steps/common/tools/variable_convert_steps.py +159 -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_apply_function.py +60 -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/functions/function_to_string.py +50 -0
- holado_scripting/text/interpreter/text_interpreter.py +219 -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 +33 -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 +247 -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 +150 -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 +231 -0
- holado_system/tests/behave/steps/system/system_steps.py +84 -0
- holado_test/__init__.py +30 -0
- holado_test/behave/__init__.py +0 -0
- holado_test/behave/behave.py +400 -0
- holado_test/behave/behave_environment.py +169 -0
- holado_test/behave/behave_function.py +33 -0
- holado_test/behave/behave_manager.py +558 -0
- holado_test/behave/independant_runner.py +66 -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 +81 -0
- holado_test/common/context/scenario_context.py +169 -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 +547 -0
- holado_test/scenario/tester_tools.py +57 -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 +100 -0
- holado_test/tests/behave/steps/scenario/tester_steps.py +65 -0
- holado_test/tools/test_server/client/rest/test_server_client.py +150 -0
- holado_test/tools/test_server/server/Dockerfile +60 -0
- holado_test/tools/test_server/server/core/server_context.py +42 -0
- holado_test/tools/test_server/server/core/server_manager.py +41 -0
- holado_test/tools/test_server/server/requirements.txt +2 -0
- holado_test/tools/test_server/server/rest/README +2 -0
- holado_test/tools/test_server/server/rest/api/__init__.py +24 -0
- holado_test/tools/test_server/server/rest/api/campaign/__init__.py +32 -0
- holado_test/tools/test_server/server/rest/api/campaign/scenario.py +40 -0
- holado_test/tools/test_server/server/rest/initialize_holado.py +72 -0
- holado_test/tools/test_server/server/rest/logging.conf +51 -0
- holado_test/tools/test_server/server/rest/openapi.yaml +57 -0
- holado_test/tools/test_server/server/rest/run.py +41 -0
- holado_test/tools/test_server/server/run.sh +6 -0
- holado_test/tools/test_server/server/run_test_server_in_docker.sh +104 -0
- holado_tools/__init__.py +38 -0
- holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.py +36 -0
- holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.sh +6 -0
- holado_tools/scripts/execute_persisted_post_processes/initialize_holado.py +62 -0
- holado_tools/tests/behave/steps/__init__.py +16 -0
- holado_tools/tests/behave/steps/tools/host_controller/client_steps.py +97 -0
- holado_tools/tools/host_controller/client/rest/host_controller_client.py +275 -0
- holado_tools/tools/host_controller/server/Dockerfile +60 -0
- holado_tools/tools/host_controller/server/requirements.txt +2 -0
- holado_tools/tools/host_controller/server/rest/README +2 -0
- holado_tools/tools/host_controller/server/rest/api/__init__.py +24 -0
- holado_tools/tools/host_controller/server/rest/api/config.py +88 -0
- holado_tools/tools/host_controller/server/rest/api/docker/__init__.py +66 -0
- holado_tools/tools/host_controller/server/rest/api/docker/container.py +144 -0
- holado_tools/tools/host_controller/server/rest/api/docker/logs.py +66 -0
- holado_tools/tools/host_controller/server/rest/api/os.py +58 -0
- holado_tools/tools/host_controller/server/rest/initialize_holado.py +72 -0
- holado_tools/tools/host_controller/server/rest/openapi.yaml +561 -0
- holado_tools/tools/host_controller/server/rest/run.py +31 -0
- holado_tools/tools/host_controller/server/run_host_controller_in_docker.sh +107 -0
- holado_tools/tools/host_viewer/client/rest/host_viewer_client.py +190 -0
- holado_tools/tools/host_viewer/server/Dockerfile +60 -0
- holado_tools/tools/host_viewer/server/requirements.txt +2 -0
- holado_tools/tools/host_viewer/server/rest/README +2 -0
- holado_tools/tools/host_viewer/server/rest/api/__init__.py +24 -0
- holado_tools/tools/host_viewer/server/rest/api/docker/__init__.py +65 -0
- holado_tools/tools/host_viewer/server/rest/api/docker/container.py +87 -0
- holado_tools/tools/host_viewer/server/rest/api/os.py +58 -0
- holado_tools/tools/host_viewer/server/rest/initialize_holado.py +72 -0
- holado_tools/tools/host_viewer/server/rest/openapi.yaml +301 -0
- holado_tools/tools/host_viewer/server/rest/run.py +31 -0
- holado_tools/tools/host_viewer/server/run_host_viewer_in_docker.sh +107 -0
- holado_value/__init__.py +24 -0
- holado_value/common/tables/comparators/table_2_value_table_cell_comparator.py +196 -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 +267 -0
- holado_value/common/tables/value_table.py +29 -0
- holado_value/common/tables/value_table_cell.py +76 -0
- holado_value/common/tables/value_table_manager.py +48 -0
- holado_value/common/tables/value_table_row.py +43 -0
- holado_value/common/tables/value_table_with_header.py +28 -0
- holado_value/common/tools/unique_value_manager.py +109 -0
- holado_value/common/tools/value.py +191 -0
- holado_value/common/tools/value_types.py +41 -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_xml/__init__.py +38 -0
- holado_xml/tests/behave/steps/__init__.py +16 -0
- holado_xml/tests/behave/steps/private/__init__.py +16 -0
- holado_xml/xml/stream_xml_file.py +181 -0
- holado_xml/xml/xml_file.py +97 -0
- holado_xml/xml/xml_manager.py +35 -0
- holado_yaml/__init__.py +31 -0
- holado_yaml/tests/behave/steps/__init__.py +16 -0
- holado_yaml/tests/behave/steps/yaml_steps.py +161 -0
- holado_yaml/yaml/enums.py +28 -0
- holado_yaml/yaml/pyyaml/pyyaml_client.py +72 -0
- holado_yaml/yaml/ruamel/ruamel_yaml_client.py +80 -0
- holado_yaml/yaml/yaml_client.py +203 -0
- holado_yaml/yaml/yaml_manager.py +94 -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 +60 -0
- test_holado/features/Configuration/Actions/execute_persisted_post_processes.feature +13 -0
- test_holado/features/NonReg/api/REST.feature +26 -0
- test_holado/features/NonReg/api/gRPC.feature +116 -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 +245 -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_ais/ais_message-nmea_raw_to_dict.feature +93 -0
- test_holado/features/NonReg/holado_ais/message_types/type-10.feature +38 -0
- test_holado/features/NonReg/holado_ais/message_types/type-12.feature +37 -0
- test_holado/features/NonReg/holado_ais/message_types/type-14.feature +36 -0
- test_holado/features/NonReg/holado_ais/message_types/type-15.feature +36 -0
- test_holado/features/NonReg/holado_ais/message_types/type-16.feature +38 -0
- test_holado/features/NonReg/holado_ais/message_types/type-17.feature +46 -0
- test_holado/features/NonReg/holado_ais/message_types/type-18.feature +37 -0
- test_holado/features/NonReg/holado_ais/message_types/type-19.feature +38 -0
- test_holado/features/NonReg/holado_ais/message_types/type-1_2_3.feature +42 -0
- test_holado/features/NonReg/holado_ais/message_types/type-20.feature +38 -0
- test_holado/features/NonReg/holado_ais/message_types/type-21.feature +37 -0
- test_holado/features/NonReg/holado_ais/message_types/type-22.feature +84 -0
- test_holado/features/NonReg/holado_ais/message_types/type-23.feature +49 -0
- test_holado/features/NonReg/holado_ais/message_types/type-24.feature +72 -0
- test_holado/features/NonReg/holado_ais/message_types/type-25.feature +143 -0
- test_holado/features/NonReg/holado_ais/message_types/type-26.feature +144 -0
- test_holado/features/NonReg/holado_ais/message_types/type-27.feature +36 -0
- test_holado/features/NonReg/holado_ais/message_types/type-4_11.feature +39 -0
- test_holado/features/NonReg/holado_ais/message_types/type-5.feature +33 -0
- test_holado/features/NonReg/holado_ais/message_types/type-6.feature +37 -0
- test_holado/features/NonReg/holado_ais/message_types/type-7_13.feature +43 -0
- test_holado/features/NonReg/holado_ais/message_types/type-8.feature +37 -0
- test_holado/features/NonReg/holado_ais/message_types/type-9.feature +37 -0
- test_holado/features/NonReg/holado_binary/bit_series.error.feature +33 -0
- test_holado/features/NonReg/holado_binary/bit_series.feature +144 -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/local_echo_server/socket_reset.feature +191 -0
- test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_with_tls_and_verify.feature +279 -0
- test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_with_tls_without_verify.feature +299 -0
- test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_without_tls.feature +163 -0
- test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_with_mtls.feature +214 -0
- test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_with_tls.feature +184 -0
- test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_without_tls.feature +169 -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 +514 -0
- test_holado/features/NonReg/ipc/json.feature +20 -0
- test_holado/features/NonReg/scenario/scenario.feature +183 -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/Test/test_host_controller.feature +13 -0
- test_holado/features/Test/test_parameter.feature +15 -0
- test_holado/features/__init__.py +0 -0
- test_holado/initialize_holado.py +62 -0
- test_holado/logging.conf +53 -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/connexion/api_rest/openapi.yaml +16 -0
- test_holado/tools/connexion/api_rest/run.py +19 -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 +29 -0
- test_holado/tools/django/api_grpc/manual_test_commands.txt +25 -0
- test_holado/tools/django/api_grpc/patch_djangogrpcframework.py +42 -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
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@ais
|
|
2
|
+
@type_6
|
|
3
|
+
Feature: Message type 6 : Addressed Binary Message
|
|
4
|
+
|
|
5
|
+
Scenario: Create, convert, encode and decode message
|
|
6
|
+
# Create message
|
|
7
|
+
When MESSAGE = new AIS message of type 'T6_ADDRESSED_BINARY_MESSAGE'
|
|
8
|
+
| repeat | mmsi | seqno | dest_mmsi | retransmit | dac | fid | data |
|
|
9
|
+
| 1 | 235006280 | 3 | 23200002 | True | 1 | 1 | b'15007B00' |
|
|
10
|
+
|
|
11
|
+
# Verify bytes conversion
|
|
12
|
+
When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
|
|
13
|
+
When MESSAGE_BYTES = new AIS message of type 'T6_ADDRESSED_BINARY_MESSAGE' as bitarray bytes
|
|
14
|
+
| repeat | mmsi | seqno | dest_mmsi | retransmit | dac | fid | data |
|
|
15
|
+
| 1 | 235006280 | 3 | 23200002 | True | 1 | 1 | b'15007B00' |
|
|
16
|
+
Then MESSAGE_TO_BYTES == MESSAGE_BYTES
|
|
17
|
+
|
|
18
|
+
# Encode in NMEA
|
|
19
|
+
When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
|
|
20
|
+
| talker_id | radio_channel | seq_id | group_id |
|
|
21
|
+
| 'AIVDM' | 'A' | 0 | 0 |
|
|
22
|
+
Then ${len(NMEA_SENTENCES)} == 1
|
|
23
|
+
|
|
24
|
+
# Verify some NMEA fields
|
|
25
|
+
Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
|
|
26
|
+
Then STRING_NMEA_MSG[-3] == 'A'
|
|
27
|
+
|
|
28
|
+
# Decode NMEA message
|
|
29
|
+
Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
|
|
30
|
+
When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
|
|
31
|
+
Then table DECODED_NMEA_MESSAGE_TABLE is
|
|
32
|
+
| dac | data | dest_mmsi | fid | mmsi | msg_type | repeat | retransmit | seqno |
|
|
33
|
+
| 1 | b'15007B00' | 23200002 | 1 | 235006280 | 6 | 1 | True | 3 |
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
@ais
|
|
2
|
+
@type_7
|
|
3
|
+
@type_13
|
|
4
|
+
Feature: Message types 7 and 13 : Binary Acknowledge
|
|
5
|
+
|
|
6
|
+
Scenario Outline: Create, convert, encode and decode message
|
|
7
|
+
# Create message
|
|
8
|
+
When MESSAGE = new AIS message of type '<message_type>'
|
|
9
|
+
| repeat | mmsi | mmsi1 | mmsiseq1 | mmsi2 | mmsiseq2 | mmsi3 | mmsiseq3 | mmsi4 | mmsiseq4 |
|
|
10
|
+
| 2 | 235006280 | 23200001 | 3 | 23200002 | 3 | 23200003 | 2 | 23200004 | 1 |
|
|
11
|
+
|
|
12
|
+
# Verify bytes conversion
|
|
13
|
+
When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
|
|
14
|
+
When MESSAGE_BYTES = new AIS message of type '<message_type>' as bitarray bytes
|
|
15
|
+
| repeat | mmsi | mmsi1 | mmsiseq1 | mmsi2 | mmsiseq2 | mmsi3 | mmsiseq3 | mmsi4 | mmsiseq4 |
|
|
16
|
+
| 2 | 235006280 | 23200001 | 3 | 23200002 | 3 | 23200003 | 2 | 23200004 | 1 |
|
|
17
|
+
Then MESSAGE_TO_BYTES == MESSAGE_BYTES
|
|
18
|
+
|
|
19
|
+
# Encode in NMEA
|
|
20
|
+
When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
|
|
21
|
+
| talker_id | radio_channel | seq_id | group_id |
|
|
22
|
+
| 'AIVDM' | <channel> | 0 | 0 |
|
|
23
|
+
Then ${len(NMEA_SENTENCES)} == 1
|
|
24
|
+
|
|
25
|
+
# Verify some NMEA fields
|
|
26
|
+
Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
|
|
27
|
+
Then STRING_NMEA_MSG[-3] == <channel>
|
|
28
|
+
|
|
29
|
+
# Decode NMEA message
|
|
30
|
+
Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
|
|
31
|
+
When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
|
|
32
|
+
Then table DECODED_NMEA_MESSAGE_TABLE is
|
|
33
|
+
| mmsi | mmsi1 | mmsi2 | mmsi3 | mmsi4 | mmsiseq1 | mmsiseq2 | mmsiseq3 | mmsiseq4 | msg_type | repeat |
|
|
34
|
+
| 235006280 | 23200001 | 23200002 | 23200003 | 23200004 | 3 | 3 | 2 | 1 | <type> | 2 |
|
|
35
|
+
|
|
36
|
+
Examples: With types 7 and 13
|
|
37
|
+
| message_type | type | channel |
|
|
38
|
+
| T7_BINARY_ACKNOWLEGDE | 7 | 'A' |
|
|
39
|
+
| T13_BINARY_ACKNOWLEGDE | 13 | 'A' |
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@ais
|
|
2
|
+
@type_8
|
|
3
|
+
Feature: Message type 8 : Binary Broadcast Message
|
|
4
|
+
|
|
5
|
+
Scenario: Create, convert, encode and decode message
|
|
6
|
+
# Create message
|
|
7
|
+
When MESSAGE = new AIS message of type 'T8_BINARY_BROADCAST_MESSAGE'
|
|
8
|
+
| repeat | mmsi | dac | fid | data |
|
|
9
|
+
| 1 | 235006280 | 5 | 3 | b'1' |
|
|
10
|
+
|
|
11
|
+
# Verify bytes conversion
|
|
12
|
+
When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
|
|
13
|
+
When MESSAGE_BYTES = new AIS message of type 'T8_BINARY_BROADCAST_MESSAGE' as bitarray bytes
|
|
14
|
+
| repeat | mmsi | dac | fid | data |
|
|
15
|
+
| 1 | 235006280 | 5 | 3 | b'1' |
|
|
16
|
+
Then MESSAGE_TO_BYTES == MESSAGE_BYTES
|
|
17
|
+
|
|
18
|
+
# Encode in NMEA
|
|
19
|
+
When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
|
|
20
|
+
| talker_id | radio_channel | seq_id | group_id |
|
|
21
|
+
| 'AIVDM' | 'A' | 0 | 0 |
|
|
22
|
+
Then ${len(NMEA_SENTENCES)} == 1
|
|
23
|
+
|
|
24
|
+
# Verify some NMEA fields
|
|
25
|
+
Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
|
|
26
|
+
Then STRING_NMEA_MSG[-3] == 'A'
|
|
27
|
+
|
|
28
|
+
# Decode NMEA message
|
|
29
|
+
Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
|
|
30
|
+
When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
|
|
31
|
+
Then table DECODED_NMEA_MESSAGE_TABLE is
|
|
32
|
+
| dac | data | fid | mmsi | msg_type | repeat |
|
|
33
|
+
| 5 | b'1' | 3 | 235006280 | 8 | 1 |
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@ais
|
|
2
|
+
@type_9
|
|
3
|
+
Feature: Message type 9 : Standard SAR Aircraft Position Report
|
|
4
|
+
|
|
5
|
+
Scenario: Create, convert, encode and decode message
|
|
6
|
+
# Create message
|
|
7
|
+
When MESSAGE = new AIS message of type 'T9_STANDARD_SAR_AIRCRAFT_POSITION_REPORT'
|
|
8
|
+
| repeat | mmsi | alt | speed | accuracy | lon | lat | course | second | reserved_1 | dte | assigned | raim | radio |
|
|
9
|
+
| 1 | 235006280 | 1 | 44.2 | False | 60.3 | 45.0 | 1.7 | 1 | 1 | True | True | True | 1 |
|
|
10
|
+
|
|
11
|
+
# Verify bytes conversion
|
|
12
|
+
When MESSAGE_TO_BYTES = convert AIS message MESSAGE to bytes
|
|
13
|
+
When MESSAGE_BYTES = new AIS message of type 'T9_STANDARD_SAR_AIRCRAFT_POSITION_REPORT' as bitarray bytes
|
|
14
|
+
| repeat | mmsi | alt | speed | accuracy | lon | lat | course | second | reserved_1 | dte | assigned | raim | radio |
|
|
15
|
+
| 1 | 235006280 | 1 | 44.2 | False | 60.3 | 45.0 | 1.7 | 1 | 1 | True | True | True | 1 |
|
|
16
|
+
Then MESSAGE_TO_BYTES == MESSAGE_BYTES
|
|
17
|
+
|
|
18
|
+
# Encode in NMEA
|
|
19
|
+
When NMEA_SENTENCES = encode AIS raw payload MESSAGE_BYTES to NMEA
|
|
20
|
+
| talker_id | radio_channel | seq_id | group_id |
|
|
21
|
+
| 'AIVDM' | 'A' | 0 | 0 |
|
|
22
|
+
Then ${len(NMEA_SENTENCES)} == 1
|
|
23
|
+
|
|
24
|
+
# Verify some NMEA fields
|
|
25
|
+
Given STRING_NMEA_MSG = split NMEA AIS message NMEA_SENTENCES[0] to fields
|
|
26
|
+
Then STRING_NMEA_MSG[-3] == 'A'
|
|
27
|
+
|
|
28
|
+
# Decode NMEA message
|
|
29
|
+
Given DECODED_NMEA_MESSAGE = decode NMEA AIS message NMEA_SENTENCES as dictionary
|
|
30
|
+
When DECODED_NMEA_MESSAGE_TABLE = convert dictionary DECODED_NMEA_MESSAGE to table with keys as columns
|
|
31
|
+
Then table DECODED_NMEA_MESSAGE_TABLE is
|
|
32
|
+
| accuracy | alt | assigned | course | dte | lat | lon | mmsi | msg_type | radio | raim | repeat | reserved_1 | second | speed |
|
|
33
|
+
| False | 1 | True | 1.7 | True | 45.0 | 60.3 | 235006280 | 9 | 1 | True | 1 | 1 | 1 | 44.0 |
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@bit_series
|
|
3
|
+
@error
|
|
4
|
+
@go_nogo
|
|
5
|
+
Feature: Test bit_series module
|
|
6
|
+
|
|
7
|
+
Scenario: Create from hexa bit-series of bit length out of bytes array length
|
|
8
|
+
Given BIT_SERIES = bit series
|
|
9
|
+
| Name | Bit length | Type |
|
|
10
|
+
| 'F1' | 3 | int |
|
|
11
|
+
| 'F2' | 1 | int |
|
|
12
|
+
| 'F3' | 1 | int |
|
|
13
|
+
|
|
14
|
+
Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; left padding ; obtained padding bits: 100\)'
|
|
15
|
+
When fill bit series BIT_SERIES from hexadecimal string '92'
|
|
16
|
+
|
|
17
|
+
Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; left padding ; obtained padding bits: 100\)'
|
|
18
|
+
When fill bit series BIT_SERIES from hexadecimal string '92' (left padded)
|
|
19
|
+
|
|
20
|
+
Given next step shall fail on exception matching 'Hexadecimal string has unexpected padded characters, only zero padding is managed \(expected bits number: 5 ; right padding ; obtained padding bits: 010\)'
|
|
21
|
+
When fill bit series BIT_SERIES from hexadecimal string '92' (right padded)
|
|
22
|
+
|
|
23
|
+
Scenario: Create and convert bit-series to hexa with a field value exceeding bit length
|
|
24
|
+
Given BIT_SERIES = bit series
|
|
25
|
+
| Name | Bit length | Type | Value |
|
|
26
|
+
| 'F1' | 3 | int | 4 |
|
|
27
|
+
| 'F2' | 1 | int | 1 |
|
|
28
|
+
| 'F3' | 2 | int | 2 |
|
|
29
|
+
| 'F4' | 2 | int | 4 |
|
|
30
|
+
Given next step shall fail on exception matching 'For field 'F4', the value \[4\] has binary length 3 \(expected length: 2\)'
|
|
31
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
32
|
+
|
|
33
|
+
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@bit_series
|
|
3
|
+
@go_nogo
|
|
4
|
+
Feature: Test bit_series module
|
|
5
|
+
|
|
6
|
+
@to_hexadecimal_string
|
|
7
|
+
Scenario: Create and convert bit-series to hexa
|
|
8
|
+
Given BIT_SERIES = bit series
|
|
9
|
+
| Name | Bit length | Type | Value |
|
|
10
|
+
| 'F1' | 3 | int | 4 |
|
|
11
|
+
| 'F2' | 1 | int | 1 |
|
|
12
|
+
| 'F3' | 2 | int | 2 |
|
|
13
|
+
| 'F4' | 2 | int | 1 |
|
|
14
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
15
|
+
Then RAW_TM == '99'
|
|
16
|
+
|
|
17
|
+
Given BIT_SERIES = bit series
|
|
18
|
+
| Name | Bit length | Type | Value |
|
|
19
|
+
| 'F1' | 3 | int | 4 |
|
|
20
|
+
| 'F2' | 1 | int | 1 |
|
|
21
|
+
| 'F3' | 2 | int | 2 |
|
|
22
|
+
| 'F4' | 2 | int | 1 |
|
|
23
|
+
| 'F5' | 16 | str | 'ffff' |
|
|
24
|
+
| 'F6' | 16 | str | 'AE1B' |
|
|
25
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
26
|
+
Then RAW_TM == '99FFFFAE1B'
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@to_hexadecimal_string
|
|
30
|
+
@padding
|
|
31
|
+
Scenario: Create and convert to hexa bit-series of bit length out of bytes array length
|
|
32
|
+
Given BIT_SERIES = bit series
|
|
33
|
+
| Name | Bit length | Type | Value |
|
|
34
|
+
| 'F1' | 3 | int | 4 |
|
|
35
|
+
| 'F2' | 1 | int | 1 |
|
|
36
|
+
| 'F3' | 1 | int | 1 |
|
|
37
|
+
|
|
38
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
39
|
+
Then RAW_TM == '13'
|
|
40
|
+
|
|
41
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (left padded)
|
|
42
|
+
Then RAW_TM == '13'
|
|
43
|
+
|
|
44
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (right padded)
|
|
45
|
+
Then RAW_TM == '98'
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
Given BIT_SERIES = bit series
|
|
49
|
+
| Name | Bit length | Type | Value |
|
|
50
|
+
| 'F1' | 3 | int | 4 |
|
|
51
|
+
| 'F2' | 1 | int | 1 |
|
|
52
|
+
| 'F3' | 3 | int | 1 |
|
|
53
|
+
|
|
54
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
55
|
+
Then RAW_TM == '49'
|
|
56
|
+
|
|
57
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (left padded)
|
|
58
|
+
Then RAW_TM == '49'
|
|
59
|
+
|
|
60
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string (right padded)
|
|
61
|
+
Then RAW_TM == '92'
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@from_hexadecimal_string
|
|
65
|
+
Scenario: Create a bit-series from hexa
|
|
66
|
+
Given BIT_SERIES = bit series
|
|
67
|
+
| Name | Bit length | Type |
|
|
68
|
+
| 'F1' | 3 | int |
|
|
69
|
+
| 'F2' | 1 | int |
|
|
70
|
+
| 'F3' | 2 | int |
|
|
71
|
+
| 'F4' | 2 | int |
|
|
72
|
+
When fill bit series BIT_SERIES from hexadecimal string '92'
|
|
73
|
+
Then bit series BIT_SERIES is
|
|
74
|
+
| Name | Bit length | Type | Value |
|
|
75
|
+
| 'F1' | 3 | int | 4 |
|
|
76
|
+
| 'F2' | 1 | int | 1 |
|
|
77
|
+
| 'F3' | 2 | int | 0 |
|
|
78
|
+
| 'F4' | 2 | int | 2 |
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
@from_hexadecimal_string
|
|
82
|
+
@padding
|
|
83
|
+
Scenario: Create from hexa bit-series of bit length out of bytes array length
|
|
84
|
+
Given BIT_SERIES = bit series
|
|
85
|
+
| Name | Bit length | Type |
|
|
86
|
+
| 'F1' | 3 | int |
|
|
87
|
+
| 'F2' | 1 | int |
|
|
88
|
+
| 'F3' | 1 | int |
|
|
89
|
+
|
|
90
|
+
When fill bit series BIT_SERIES from hexadecimal string '13'
|
|
91
|
+
Then bit series BIT_SERIES is
|
|
92
|
+
| Name | Bit length | Type | Value |
|
|
93
|
+
| 'F1' | 3 | int | 4 |
|
|
94
|
+
| 'F2' | 1 | int | 1 |
|
|
95
|
+
| 'F3' | 1 | int | 1 |
|
|
96
|
+
|
|
97
|
+
When fill bit series BIT_SERIES from hexadecimal string '13' (left padded)
|
|
98
|
+
Then bit series BIT_SERIES is
|
|
99
|
+
| Name | Bit length | Type | Value |
|
|
100
|
+
| 'F1' | 3 | int | 4 |
|
|
101
|
+
| 'F2' | 1 | int | 1 |
|
|
102
|
+
| 'F3' | 1 | int | 1 |
|
|
103
|
+
|
|
104
|
+
When fill bit series BIT_SERIES from hexadecimal string '98' (right padded)
|
|
105
|
+
Then bit series BIT_SERIES is
|
|
106
|
+
| Name | Bit length | Type | Value |
|
|
107
|
+
| 'F1' | 3 | int | 4 |
|
|
108
|
+
| 'F2' | 1 | int | 1 |
|
|
109
|
+
| 'F3' | 1 | int | 1 |
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
@is_bit_series
|
|
113
|
+
Scenario: Verify hexa string is bit series
|
|
114
|
+
Then hexadecimal string '92' is bit series
|
|
115
|
+
| Name | Bit length | Type | Value |
|
|
116
|
+
| 'F1' | 3 | int | 4 |
|
|
117
|
+
| 'F2' | 1 | int | 1 |
|
|
118
|
+
| 'F3' | 2 | int | 0 |
|
|
119
|
+
| 'F4' | 2 | int | 2 |
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
@set_field
|
|
123
|
+
Scenario: Set bit-series field by variable expression
|
|
124
|
+
Given BIT_SERIES = bit series
|
|
125
|
+
| Name | Bit length | Type | Value |
|
|
126
|
+
| 'F1' | 3 | int | 4 |
|
|
127
|
+
| 'F2' | 1 | int | 1 |
|
|
128
|
+
| 'F3' | 2 | int | 2 |
|
|
129
|
+
| 'F4' | 2 | int | 1 |
|
|
130
|
+
| 'F5' | 16 | int | 0 |
|
|
131
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
132
|
+
Then BIT_SERIES['F5'] == 0
|
|
133
|
+
Then RAW_TM[-4:] == '0000'
|
|
134
|
+
|
|
135
|
+
Given BIT_SERIES['F5'] = 1
|
|
136
|
+
Given RAW_TM = convert bit series BIT_SERIES to hexadecimal string
|
|
137
|
+
|
|
138
|
+
Then BIT_SERIES['F5'] == 1
|
|
139
|
+
Then RAW_TM[-4:] == '0001'
|
|
140
|
+
Then BIT_SERIES['F5'] != 0
|
|
141
|
+
Then RAW_TM[-4:] != '0000'
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@protobuf
|
|
3
|
+
@go_nogo
|
|
4
|
+
Feature: Test Protobuf module
|
|
5
|
+
|
|
6
|
+
Scenario: Tutorial example
|
|
7
|
+
|
|
8
|
+
### PRECONDITIONS - BEGIN
|
|
9
|
+
Given begin preconditions
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Given end preconditions
|
|
13
|
+
### PRECONDITIONS - END
|
|
14
|
+
|
|
15
|
+
Given PROTO = new Protobuf object of type 'tutorial.AddressBook'
|
|
16
|
+
| Name | Value |
|
|
17
|
+
| 'people[0].id' | 0 |
|
|
18
|
+
| 'people[0].name' | 'name0' |
|
|
19
|
+
| 'people[0].email' | 'email0@test.com' |
|
|
20
|
+
| 'people[0].last_updated' | '2022-01-01T01:00:00Z' |
|
|
21
|
+
| 'people[0].phones[0].number' | '0623456789' |
|
|
22
|
+
| 'people[0].phones[0].type' | MOBILE |
|
|
23
|
+
#| 'people[0].phones[0].type' | 0 |
|
|
24
|
+
| 'people[0].phones[1].number' | '0123456789' |
|
|
25
|
+
#| 'people[0].phones[1].type' | HOME |
|
|
26
|
+
| 'people[0].phones[1].type' | 1 |
|
|
27
|
+
| 'people[1].id' | 1 |
|
|
28
|
+
| 'people[1].name' | 'name1' |
|
|
29
|
+
| 'people[1].email' | 'email1@test.com' |
|
|
30
|
+
| 'people[1].last_updated' | '2022-02-02 02:00:00' |
|
|
31
|
+
| 'people[1].phones[0].number' | '0523456789' |
|
|
32
|
+
| 'people[1].phones[0].type' | WORK |
|
|
33
|
+
#| 'people[1].phones[0].type' | 2 |
|
|
34
|
+
|
|
35
|
+
Given PROTO_STR = serialize Protobuf object PROTO
|
|
36
|
+
|
|
37
|
+
Given NEW_PROTO = unserialize string PROTO_STR as 'tutorial.AddressBook' Protobuf object
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
Scenario: Map field assigned by key name
|
|
41
|
+
|
|
42
|
+
### PRECONDITIONS - BEGIN
|
|
43
|
+
Given begin preconditions
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
Given end preconditions
|
|
47
|
+
### PRECONDITIONS - END
|
|
48
|
+
|
|
49
|
+
Given PROTO = new Protobuf object of type 'custom_types.MessageWithMap'
|
|
50
|
+
| Name | Value |
|
|
51
|
+
| 'id' | 0 |
|
|
52
|
+
| 'map[k1]' | 'v1' |
|
|
53
|
+
|
|
54
|
+
Given PROTO_STR = serialize Protobuf object PROTO
|
|
55
|
+
|
|
56
|
+
Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithMap' Protobuf object
|
|
57
|
+
|
|
58
|
+
Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table with names uncollapsed
|
|
59
|
+
Then table NEW_PROTO_TABLE is
|
|
60
|
+
| Name | Value |
|
|
61
|
+
| 'id' | 0 |
|
|
62
|
+
| 'map[k1]' | 'v1' |
|
|
63
|
+
|
|
64
|
+
Scenario: Map field assigned by dict
|
|
65
|
+
|
|
66
|
+
### PRECONDITIONS - BEGIN
|
|
67
|
+
Given begin preconditions
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
Given end preconditions
|
|
71
|
+
### PRECONDITIONS - END
|
|
72
|
+
|
|
73
|
+
Given PROTO = new Protobuf object of type 'custom_types.MessageWithMap'
|
|
74
|
+
| Name | Value |
|
|
75
|
+
| 'id' | 0 |
|
|
76
|
+
| 'map' | {'k1':'v1'} |
|
|
77
|
+
|
|
78
|
+
Given PROTO_STR = serialize Protobuf object PROTO
|
|
79
|
+
|
|
80
|
+
Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithMap' Protobuf object
|
|
81
|
+
|
|
82
|
+
Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
|
|
83
|
+
Then table NEW_PROTO_TABLE is
|
|
84
|
+
| Name | Value |
|
|
85
|
+
| 'id' | 0 |
|
|
86
|
+
| 'map' | {'k1':'v1'} |
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
Scenario: Optional field when set
|
|
90
|
+
### PRECONDITIONS - BEGIN
|
|
91
|
+
Given begin preconditions
|
|
92
|
+
|
|
93
|
+
Given PROTO = new Protobuf object of type 'custom_types.MessageWithOptional'
|
|
94
|
+
| Name | Value |
|
|
95
|
+
| 'id' | 0 |
|
|
96
|
+
| 'text' | 'toto' |
|
|
97
|
+
| 'optional_text' | 'pipo' |
|
|
98
|
+
|
|
99
|
+
Given end preconditions
|
|
100
|
+
### PRECONDITIONS - END
|
|
101
|
+
|
|
102
|
+
Given PROTO_TABLE = convert Protobuf object PROTO to name/value table
|
|
103
|
+
Then table PROTO_TABLE is
|
|
104
|
+
| Name | Value |
|
|
105
|
+
| 'id' | 0 |
|
|
106
|
+
| 'text' | 'toto' |
|
|
107
|
+
| 'optional_text' | 'pipo' |
|
|
108
|
+
|
|
109
|
+
Given PROTO_STR = serialize Protobuf object PROTO
|
|
110
|
+
|
|
111
|
+
Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithOptional' Protobuf object
|
|
112
|
+
|
|
113
|
+
Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
|
|
114
|
+
Then NEW_PROTO_TABLE == PROTO_TABLE
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
Scenario: Optional field when not set
|
|
118
|
+
### PRECONDITIONS - BEGIN
|
|
119
|
+
Given begin preconditions
|
|
120
|
+
|
|
121
|
+
Given PROTO = new Protobuf object of type 'custom_types.MessageWithOptional'
|
|
122
|
+
| Name | Value |
|
|
123
|
+
| 'id' | 0 |
|
|
124
|
+
| 'text' | 'toto' |
|
|
125
|
+
|
|
126
|
+
Given end preconditions
|
|
127
|
+
### PRECONDITIONS - END
|
|
128
|
+
|
|
129
|
+
Given PROTO_TABLE = convert Protobuf object PROTO to name/value table
|
|
130
|
+
Then table PROTO_TABLE is
|
|
131
|
+
| Name | Value |
|
|
132
|
+
| 'id' | 0 |
|
|
133
|
+
| 'text' | 'toto' |
|
|
134
|
+
|
|
135
|
+
Given PROTO_STR = serialize Protobuf object PROTO
|
|
136
|
+
|
|
137
|
+
Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithOptional' Protobuf object
|
|
138
|
+
|
|
139
|
+
Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
|
|
140
|
+
Then NEW_PROTO_TABLE == PROTO_TABLE
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
Scenario: Normal field when not set
|
|
144
|
+
### PRECONDITIONS - BEGIN
|
|
145
|
+
Given begin preconditions
|
|
146
|
+
|
|
147
|
+
Given PROTO = new Protobuf object of type 'custom_types.MessageWithOptional'
|
|
148
|
+
| Name | Value |
|
|
149
|
+
| 'id' | 0 |
|
|
150
|
+
| 'optional_text' | 'pipo' |
|
|
151
|
+
|
|
152
|
+
Given end preconditions
|
|
153
|
+
### PRECONDITIONS - END
|
|
154
|
+
|
|
155
|
+
Given PROTO_TABLE = convert Protobuf object PROTO to name/value table
|
|
156
|
+
Then table PROTO_TABLE is
|
|
157
|
+
| Name | Value |
|
|
158
|
+
| 'id' | 0 |
|
|
159
|
+
| 'text' | '' |
|
|
160
|
+
| 'optional_text' | 'pipo' |
|
|
161
|
+
|
|
162
|
+
Given PROTO_STR = serialize Protobuf object PROTO
|
|
163
|
+
|
|
164
|
+
Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithOptional' Protobuf object
|
|
165
|
+
|
|
166
|
+
Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
|
|
167
|
+
Then NEW_PROTO_TABLE == PROTO_TABLE
|
|
168
|
+
|
|
169
|
+
@repeated_assigned_by_list
|
|
170
|
+
Scenario: Repeated field assigned by list
|
|
171
|
+
|
|
172
|
+
### PRECONDITIONS - BEGIN
|
|
173
|
+
Given begin preconditions
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
Given end preconditions
|
|
177
|
+
### PRECONDITIONS - END
|
|
178
|
+
|
|
179
|
+
Given PROTO = new Protobuf object of type 'custom_types.MessageWithRepeated'
|
|
180
|
+
| Name | Value |
|
|
181
|
+
| 'id' | 0 |
|
|
182
|
+
| 'values' | [1, 2, 3] |
|
|
183
|
+
|
|
184
|
+
Given PROTO_STR = serialize Protobuf object PROTO
|
|
185
|
+
|
|
186
|
+
Given NEW_PROTO = unserialize string PROTO_STR as 'custom_types.MessageWithRepeated' Protobuf object
|
|
187
|
+
|
|
188
|
+
Given NEW_PROTO_TABLE = convert Protobuf object NEW_PROTO to name/value table
|
|
189
|
+
Then table NEW_PROTO_TABLE is
|
|
190
|
+
| Name | Value |
|
|
191
|
+
| 'id' | 0 |
|
|
192
|
+
| 'values' | [1, 2, 3] |
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
@enum_field
|
|
196
|
+
Scenario: Enum field
|
|
197
|
+
### PRECONDITIONS - BEGIN
|
|
198
|
+
Given begin preconditions
|
|
199
|
+
|
|
200
|
+
Given PROTO = new Protobuf object of type 'tutorial.AddressBook'
|
|
201
|
+
| Name | Value |
|
|
202
|
+
| 'people[0].id' | 0 |
|
|
203
|
+
| 'people[0].name' | 'name0' |
|
|
204
|
+
| 'people[0].email' | 'email0@test.com' |
|
|
205
|
+
| 'people[0].last_updated' | '2022-01-01T01:00:00Z' |
|
|
206
|
+
| 'people[0].phones[0].number' | '0623456789' |
|
|
207
|
+
| 'people[0].phones[0].type' | MOBILE |
|
|
208
|
+
#| 'people[0].phones[0].type' | 0 |
|
|
209
|
+
| 'people[0].phones[1].number' | '0123456789' |
|
|
210
|
+
#| 'people[0].phones[1].type' | HOME |
|
|
211
|
+
| 'people[0].phones[1].type' | 1 |
|
|
212
|
+
| 'people[0].phones[2].number' | '0923456789' |
|
|
213
|
+
| 'people[0].phones[2].type' | WORK |
|
|
214
|
+
#| 'people[0].phones[2].type' | 2 |
|
|
215
|
+
|
|
216
|
+
Given end preconditions
|
|
217
|
+
### PRECONDITIONS - END
|
|
218
|
+
|
|
219
|
+
# Get enum value
|
|
220
|
+
Given MOBILE_VALUE = value of Protobuf enum 'tutorial.Person.PhoneType.MOBILE'
|
|
221
|
+
Then MOBILE_VALUE == 0
|
|
222
|
+
Given HOME_VALUE = value of Protobuf enum 'tutorial.Person.PhoneType.HOME'
|
|
223
|
+
Then HOME_VALUE == 1
|
|
224
|
+
Given WORK_VALUE = value of Protobuf enum 'tutorial.Person.PhoneType.WORK'
|
|
225
|
+
Then WORK_VALUE == 2
|
|
226
|
+
|
|
227
|
+
# Verify enum value in a Protobuf message
|
|
228
|
+
Then PROTO.people[0].phones[0].type == MOBILE_VALUE
|
|
229
|
+
Then PROTO.people[0].phones[1].type == HOME_VALUE
|
|
230
|
+
Then PROTO.people[0].phones[2].type == WORK_VALUE
|
|
231
|
+
|
|
232
|
+
# Verify enum name by its value
|
|
233
|
+
Given PHONE_TYPE_NAME = name of value MOBILE_VALUE of Protobuf enum type 'tutorial.Person.PhoneType'
|
|
234
|
+
Then PHONE_TYPE_NAME == 'MOBILE'
|
|
235
|
+
|
|
236
|
+
# Verify message by convertion as a table
|
|
237
|
+
Given PROTO_TABLE = convert Protobuf object PROTO to name/value table with names and repeated uncollapsed
|
|
238
|
+
Then table PROTO_TABLE is
|
|
239
|
+
| Name | Value |
|
|
240
|
+
| 'people[0].name' | 'name0' |
|
|
241
|
+
| 'people[0].id' | 0 |
|
|
242
|
+
| 'people[0].email' | 'email0@test.com' |
|
|
243
|
+
| 'people[0].phones[0].number' | '0623456789' |
|
|
244
|
+
| 'people[0].phones[0].type' | MOBILE |
|
|
245
|
+
| 'people[0].phones[1].number' | '0123456789' |
|
|
246
|
+
| 'people[0].phones[1].type' | HOME |
|
|
247
|
+
| 'people[0].phones[2].number' | '0923456789' |
|
|
248
|
+
| 'people[0].phones[2].type' | WORK |
|
|
249
|
+
| 'people[0].last_updated.seconds' | 1640998800 |
|
|
250
|
+
| 'people[0].last_updated.nanos' | 0 |
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
@import_enum
|
|
254
|
+
Scenario: Import enum
|
|
255
|
+
Given import Protobuf enum type 'tutorial.Person.PhoneType'
|
|
256
|
+
Then PhoneType.MOBILE == 0
|
|
257
|
+
Then PhoneType.HOME == 1
|
|
258
|
+
Then PhoneType.WORK == 2
|
|
259
|
+
Then tutorial.Person.PhoneType.MOBILE == 0
|
|
260
|
+
Then tutorial.Person.PhoneType.HOME == 1
|
|
261
|
+
Then tutorial.Person.PhoneType.WORK == 2
|
|
262
|
+
|
|
263
|
+
Given import values of Protobuf enum type 'tutorial.Person.PhoneType'
|
|
264
|
+
Then MOBILE == 0
|
|
265
|
+
Then HOME == 1
|
|
266
|
+
Then WORK == 2
|
|
267
|
+
|
|
268
|
+
Given import values of Protobuf enum type 'tutorial.Person.PhoneType' with prefix 'PHONE_TYPE_'
|
|
269
|
+
Then PHONE_TYPE_MOBILE == 0
|
|
270
|
+
Then PHONE_TYPE_HOME == 1
|
|
271
|
+
Then PHONE_TYPE_WORK == 2
|
|
272
|
+
|
|
273
|
+
# Use imports in other sentences
|
|
274
|
+
Given VALUE = -1
|
|
275
|
+
Given if ${PHONE_TYPE_MOBILE} == 0:
|
|
276
|
+
Given VALUE = 0
|
|
277
|
+
Given end if
|
|
278
|
+
Then VALUE == 0
|
|
279
|
+
|
|
280
|
+
Given if ${PhoneType.HOME} == 1:
|
|
281
|
+
Given VALUE = 1
|
|
282
|
+
Given end if
|
|
283
|
+
Then VALUE == 1
|
|
284
|
+
|
|
285
|
+
Given if 2 == ${PhoneType.WORK}:
|
|
286
|
+
Given VALUE = 2
|
|
287
|
+
Given end if
|
|
288
|
+
Then VALUE == 2
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
@testing_solution
|
|
2
|
+
@python
|
|
3
|
+
Feature: Test python convert steps
|
|
4
|
+
|
|
5
|
+
@list_to_hexa
|
|
6
|
+
Scenario: Convert list to hexa strings
|
|
7
|
+
|
|
8
|
+
### PRECONDITIONS - BEGIN
|
|
9
|
+
Given begin preconditions
|
|
10
|
+
|
|
11
|
+
Given LIST_STR = ['v1', 'v2']
|
|
12
|
+
Given LIST_HEX_EXPECTED = ['7631', '7632']
|
|
13
|
+
|
|
14
|
+
Given end preconditions
|
|
15
|
+
### PRECONDITIONS - END
|
|
16
|
+
|
|
17
|
+
Given LIST_HEX = convert list LIST_STR of strings to list of hexadecimal strings
|
|
18
|
+
Then LIST_HEX == LIST_HEX_EXPECTED
|
|
19
|
+
|
|
20
|
+
|