awslabs.openapi-mcp-server 0.2.4__tar.gz → 0.2.6__tar.gz
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.
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/Dockerfile +2 -2
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/PKG-INFO +1 -1
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/__init__.py +1 -1
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/prompts/generators/operation_prompts.py +11 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/pyproject.toml +1 -1
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_openapi_coverage_89.py +12 -23
- awslabs_openapi_mcp_server-0.2.6/uv-requirements.txt +27 -0
- awslabs_openapi_mcp_server-0.2.6/uv.lock +2185 -0
- awslabs_openapi_mcp_server-0.2.4/uv-requirements.txt +0 -24
- awslabs_openapi_mcp_server-0.2.4/uv.lock +0 -1753
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/.coveragerc +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/.dockerignore +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/.gitignore +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/.python-version +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/AUTHENTICATION.md +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/AWS_BEST_PRACTICES.md +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/CHANGELOG.md +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/DEPLOYMENT.md +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/LICENSE +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/NOTICE +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/OBSERVABILITY.md +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/README.md +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/__init__.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/api/__init__.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/api/config.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/__init__.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/api_key_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/auth_cache.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/auth_errors.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/auth_factory.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/auth_protocol.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/auth_provider.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/base_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/basic_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/bearer_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/cognito_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/auth/register.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/patch/__init__.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/prompts/__init__.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/prompts/generators/__init__.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/prompts/generators/workflow_prompts.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/prompts/models.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/prompts/prompt_manager.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/server.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/__init__.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/cache_provider.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/config.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/error_handler.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/http_client.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/metrics_provider.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/openapi.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/awslabs/openapi_mcp_server/utils/openapi_validator.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/docker-healthcheck.sh +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/pyrightconfig.json +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/README.md +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/api/test_config.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_api_key_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_cache.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_errors.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_factory.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_factory_caching.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_factory_coverage.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_protocol.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_protocol_additional.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_protocol_boost.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_protocol_coverage.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_protocol_extended.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_protocol_improved.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_auth_provider_additional.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_base_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_base_auth_coverage.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_basic_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_bearer_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_cognito_auth.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_cognito_auth_additional_coverage.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_cognito_auth_boost_coverage.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_cognito_auth_client_credentials.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_cognito_auth_coverage_boost.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_cognito_auth_exceptions.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_register.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/auth/test_register_coverage.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/standalone/test_operation_prompt.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/standalone/test_prompt_arguments.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/standalone/test_secure_operation_prompt.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_mcp_prompt_manager.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_mcp_prompt_manager_integration.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_models_dict_method.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_operation_prompts_extended.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_prompt_manager_additional.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_prompt_manager_comprehensive.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_prompt_manager_coverage.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/prompts/test_prompt_registration.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_api_name.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_cache_coverage_89.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_client.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_coverage_boost.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_init.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_main.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_main_extended.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_auth_errors.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_coverage_boost.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_coverage_boost_2.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_exception_handling.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_extended.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_httpx_version.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_part1.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_route_logging.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/test_server_signal_handlers.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_cache_provider.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_error_handler.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_error_handler_boost.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_error_handler_extended.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_error_handler_fix.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_http_client.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_http_client_comprehensive.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_http_client_extended.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_http_client_extended2.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_http_client_import_error.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_metrics_provider.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_metrics_provider_decorators.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_metrics_provider_extended2.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_metrics_provider_prometheus.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_openapi.py +0 -0
- {awslabs_openapi_mcp_server-0.2.4 → awslabs_openapi_mcp_server-0.2.6}/tests/utils/test_openapi_validator.py +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
# dependabot should continue to update this to the latest hash.
|
|
16
|
-
FROM public.ecr.aws/docker/library/python:3.13
|
|
16
|
+
FROM public.ecr.aws/docker/library/python:3.13-alpine@sha256:070342a0cc1011532c0e69972cce2bbc6cc633eba294bae1d12abea8bd05303b AS uv
|
|
17
17
|
|
|
18
18
|
# Install the project into `/app`
|
|
19
19
|
WORKDIR /app
|
|
@@ -61,7 +61,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \
|
|
|
61
61
|
# Make the directory just in case it doesn't exist
|
|
62
62
|
RUN mkdir -p /root/.local
|
|
63
63
|
|
|
64
|
-
FROM public.ecr.aws/docker/library/python:3.13
|
|
64
|
+
FROM public.ecr.aws/docker/library/python:3.13-alpine@sha256:070342a0cc1011532c0e69972cce2bbc6cc633eba294bae1d12abea8bd05303b
|
|
65
65
|
|
|
66
66
|
# Place executables in the environment at the front of the path and include other binaries
|
|
67
67
|
ENV PATH="/app/.venv/bin:$PATH" \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: awslabs.openapi-mcp-server
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.6
|
|
4
4
|
Summary: An AWS Labs Model Context Protocol (MCP) server for OpenAPI
|
|
5
5
|
Project-URL: Homepage, https://awslabs.github.io/mcp/
|
|
6
6
|
Project-URL: Documentation, https://awslabs.github.io/mcp/servers/openapi-mcp-server/
|
|
@@ -552,6 +552,17 @@ def create_operation_prompt(
|
|
|
552
552
|
named_args = dict(zip(param_names, args))
|
|
553
553
|
named_args.update(kwargs)
|
|
554
554
|
|
|
555
|
+
# Validate required parameters
|
|
556
|
+
missing_required = []
|
|
557
|
+
for arg in prompt_arguments:
|
|
558
|
+
if arg.required and (
|
|
559
|
+
arg.name not in named_args or named_args[arg.name] is None
|
|
560
|
+
):
|
|
561
|
+
missing_required.append(arg.name)
|
|
562
|
+
|
|
563
|
+
if missing_required:
|
|
564
|
+
raise TypeError(f'Missing required argument(s): {", ".join(missing_required)}')
|
|
565
|
+
|
|
555
566
|
# Extract the values in the correct order for handler_with_fixed_args
|
|
556
567
|
arg_values = []
|
|
557
568
|
for arg in prompt_arguments:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
import pytest
|
|
5
|
+
import sys
|
|
5
6
|
import tempfile
|
|
6
7
|
from awslabs.openapi_mcp_server.utils.openapi import load_openapi_spec
|
|
7
8
|
from pathlib import Path
|
|
@@ -36,19 +37,15 @@ paths:
|
|
|
36
37
|
temp_path = f.name
|
|
37
38
|
|
|
38
39
|
try:
|
|
39
|
-
# Mock yaml
|
|
40
|
-
with patch('
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
# This should raise ImportError about pyyaml
|
|
50
|
-
with pytest.raises(ImportError, match="Required dependency 'pyyaml' not installed"):
|
|
51
|
-
load_openapi_spec(path=temp_path)
|
|
40
|
+
# Mock prance to fail and remove yaml from sys.modules to simulate ImportError
|
|
41
|
+
with patch('awslabs.openapi_mcp_server.utils.openapi.ResolvingParser') as mock_parser:
|
|
42
|
+
mock_parser.side_effect = Exception('Prance failed')
|
|
43
|
+
with patch.dict(sys.modules, {'yaml': None}):
|
|
44
|
+
# This should raise ImportError about pyyaml
|
|
45
|
+
with pytest.raises(
|
|
46
|
+
ImportError, match="Required dependency 'pyyaml' not installed"
|
|
47
|
+
):
|
|
48
|
+
load_openapi_spec(path=temp_path)
|
|
52
49
|
finally:
|
|
53
50
|
# Clean up
|
|
54
51
|
Path(temp_path).unlink(missing_ok=True)
|
|
@@ -91,17 +88,9 @@ paths:
|
|
|
91
88
|
temp_path = f.name
|
|
92
89
|
|
|
93
90
|
try:
|
|
94
|
-
# Mock prance to not be available and yaml
|
|
91
|
+
# Mock prance to not be available and remove yaml from sys.modules
|
|
95
92
|
with patch('awslabs.openapi_mcp_server.utils.openapi.PRANCE_AVAILABLE', False):
|
|
96
|
-
with patch(
|
|
97
|
-
|
|
98
|
-
def side_effect(name, *args, **kwargs):
|
|
99
|
-
if name == 'yaml':
|
|
100
|
-
raise ImportError('No module named yaml')
|
|
101
|
-
return __import__(name, *args, **kwargs)
|
|
102
|
-
|
|
103
|
-
mock_import.side_effect = side_effect
|
|
104
|
-
|
|
93
|
+
with patch.dict(sys.modules, {'yaml': None}):
|
|
105
94
|
# This should raise ImportError about pyyaml
|
|
106
95
|
with pytest.raises(
|
|
107
96
|
ImportError, match="Required dependency 'pyyaml' not installed"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#
|
|
2
|
+
# This file is autogenerated by pip-compile with Python 3.12
|
|
3
|
+
# by the following command:
|
|
4
|
+
#
|
|
5
|
+
# pip-compile --generate-hashes --output-file=uv-requirements.txt --strip-extras uv-requirements.in
|
|
6
|
+
#
|
|
7
|
+
uv==0.9.6 \
|
|
8
|
+
--hash=sha256:0169a85d3ba5ef1c37089d64ff26de573439ca84ecf549276a2eee42d7f833f2 \
|
|
9
|
+
--hash=sha256:0fde18c22376c8b02954c7db3847bc75ac42619932c44b43f49d056e5cfb05f9 \
|
|
10
|
+
--hash=sha256:166175ba952d2ad727e1dbd57d7cfc1782dfe7b8d79972174a46a7aa33ddceec \
|
|
11
|
+
--hash=sha256:3c2c2b2b093330e603d838fec26941ab6f62e8d62a012f9fa0d5ed88da39d907 \
|
|
12
|
+
--hash=sha256:538716ec97f8d899baa7e1c427f4411525459c0ef72ea9b3625ce9610c9976e6 \
|
|
13
|
+
--hash=sha256:547fd27ab5da7cd1a833288a36858852451d416a056825f162ecf2af5be6f8b8 \
|
|
14
|
+
--hash=sha256:62e3f057a9ae5e5003a7cd56b617e940f519f6dabcbb22d36cdd0149df25d409 \
|
|
15
|
+
--hash=sha256:6403176b55388cf94fb8737e73b26ee2a7b1805a9139da5afa951210986d4fcd \
|
|
16
|
+
--hash=sha256:7e89c964f614fa3f0481060cac709d6da50feac553e1e11227d6c4c81c87af7c \
|
|
17
|
+
--hash=sha256:86e05782f9b75d39ab1c0af98bf11e87e646a36a61d425021d5b284073e56315 \
|
|
18
|
+
--hash=sha256:90122a76e6441b8c580fc9faf06bd8c4dbe276cb1c185ad91eceb2afa78e492a \
|
|
19
|
+
--hash=sha256:95a62c1f668272555ad0c446bf44a9924dee06054b831d04c162e0bad736dc28 \
|
|
20
|
+
--hash=sha256:a7c6067919d87208c4a6092033c3bc9799cb8be1c8bc6ef419a1f6d42a755329 \
|
|
21
|
+
--hash=sha256:b2f934737c93f88c906b6a47bcc083170210fe5d66565e80a7c139599e5cbf2f \
|
|
22
|
+
--hash=sha256:b31377ebf2d0499afc5abe3fe1abded5ca843f3a1161b432fe26eb0ce15bab8e \
|
|
23
|
+
--hash=sha256:d1072db92cc9525febdf9d113c23916dfc20ca03e21218cc7beefe7185a90631 \
|
|
24
|
+
--hash=sha256:e700b2098f9d365061c572d0729b4e8bc71c6468d83dfaae2537cd66e3cb1b98 \
|
|
25
|
+
--hash=sha256:ea67369918af24ea7e01991dfc8b8988d1b0b7c49cb39d9e5bc0c409930a0a3f \
|
|
26
|
+
--hash=sha256:f0ba311b3ca49d246f36d444d3ee81571619ef95e5f509eb694a81defcbed262
|
|
27
|
+
# via -r uv-requirements.in (contents of `uv==0.9.6`)
|