Skip to main content
Glama

mcp-server-pacman

MIT License
7
  • Linux
  • Apple
test_dockerhub_integration.py3.54 kB
""" Integration tests for Docker Hub API calls. These tests make real API calls to Docker Hub. Run these tests with: uv run pytest -xvs tests/integration/test_dockerhub_integration.py NOTE: These tests should NOT be run in CI/CD pipelines as they depend on external services and may be rate-limited or fail due to network issues. """ import sys import os # Add the src directory to the path if needed sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../../"))) from src.mcp_server_pacman.providers.dockerhub import ( search_docker_hub, get_docker_hub_tags, get_docker_hub_tag_info, ) from tests.utils.test_utils import async_test # Make sure caching is enabled for integration tests import src.mcp_server_pacman.utils.cache src.mcp_server_pacman.utils.cache.ENABLE_CACHE = True class TestDockerHubIntegration: """Integration tests for Docker Hub API functions.""" @async_test async def test_search_docker_hub_real(self): """Test searching Docker Hub via our function for a popular image.""" results = await search_docker_hub("nginx", 3) assert len(results) > 0 # Check that our standardized fields are present for result in results: assert "name" in result # We map repo_name to name in our function assert "pull_count" in result assert "is_official" in result @async_test async def test_get_docker_hub_tags_real(self): """Test getting tags from Docker Hub for a known image.""" result = await get_docker_hub_tags("nginx") assert result["name"] == "library/nginx" assert "tags" in result assert len(result["tags"]) > 0 assert "tag_count" in result assert "repository" in result # Check tag structure for tag in result["tags"]: assert "name" in tag assert "digest" in tag assert "images" in tag # Check image structure within tag for image in tag["images"]: assert "architecture" in image assert "os" in image assert "size" in image @async_test async def test_get_docker_hub_tag_info_real(self): """Test getting tag info from Docker Hub for a known image and tag.""" result = await get_docker_hub_tag_info("nginx", "latest") assert result["name"] == "library/nginx" assert result["tag"] == "latest" assert "digest" in result assert "full_size" in result assert "images" in result # Check image structure for image in result["images"]: assert "architecture" in image assert "os" in image assert "size" in image @async_test async def test_official_image_no_namespace(self): """Test that Docker Hub API works with official images specified without namespace.""" result = await get_docker_hub_tag_info("ubuntu", "latest") assert result["name"] == "library/ubuntu" assert result["tag"] == "latest" assert "digest" in result assert "images" in result @async_test async def test_user_namespaced_image(self): """Test that Docker Hub API works with user-namespaced images.""" # bitnami is a well-known publisher with stable images result = await get_docker_hub_tags("bitnami/nginx") assert result["name"] == "bitnami/nginx" assert "tags" in result assert len(result["tags"]) > 0

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oborchers/mcp-server-pacman'

If you have feedback or need assistance with the MCP directory API, please join our Discord server