Skip to main content
Glama

Sumanshu Arora

test_image_utils.pyβ€’5.41 kB
""" Unit tests for image utility functions. """ import os import unittest from unittest.mock import patch import pytest from mcp_template.utils.image_utils import get_default_registry, normalize_image_name pytestmark = pytest.mark.unit class TestImageUtils(unittest.TestCase): """Test image utility functions.""" def setUp(self): """Set up test fixtures.""" # Save original environment self.original_registry = os.environ.get("MCP_DEFAULT_REGISTRY") def tearDown(self): """Clean up after tests.""" # Restore original environment if self.original_registry is not None: os.environ["MCP_DEFAULT_REGISTRY"] = self.original_registry elif "MCP_DEFAULT_REGISTRY" in os.environ: del os.environ["MCP_DEFAULT_REGISTRY"] def test_get_default_registry_default(self): """Test get_default_registry returns docker.io by default.""" # Remove env var if set if "MCP_DEFAULT_REGISTRY" in os.environ: del os.environ["MCP_DEFAULT_REGISTRY"] result = get_default_registry() self.assertEqual(result, "docker.io") def test_get_default_registry_from_env(self): """Test get_default_registry returns value from environment.""" test_registry = "myregistry.com" os.environ["MCP_DEFAULT_REGISTRY"] = test_registry result = get_default_registry() self.assertEqual(result, test_registry) def test_normalize_image_name_simple(self): """Test normalizing simple image names.""" test_cases = [ ("nginx", "docker.io/nginx"), ("ubuntu", "docker.io/ubuntu"), ("python", "docker.io/python"), ] for input_image, expected in test_cases: with self.subTest(input_image=input_image): result = normalize_image_name(input_image) self.assertEqual(result, expected) def test_normalize_image_name_with_tag(self): """Test normalizing image names with tags.""" test_cases = [ ("nginx:latest", "docker.io/nginx:latest"), ("ubuntu:20.04", "docker.io/ubuntu:20.04"), ("python:3.9", "docker.io/python:3.9"), ] for input_image, expected in test_cases: with self.subTest(input_image=input_image): result = normalize_image_name(input_image) self.assertEqual(result, expected) def test_normalize_image_name_already_has_registry(self): """Test normalizing image names that already have registry.""" test_cases = [ ("docker.io/nginx", "docker.io/nginx"), ("gcr.io/project/image", "gcr.io/project/image"), ("myregistry.com:5000/image", "myregistry.com:5000/image"), ( "registry.example.com/namespace/image:tag", "registry.example.com/namespace/image:tag", ), ] for input_image, expected in test_cases: with self.subTest(input_image=input_image): result = normalize_image_name(input_image) self.assertEqual(result, expected) def test_normalize_image_name_localhost(self): """Test normalizing localhost images (should not add registry).""" test_cases = [ ("localhost/myimage", "localhost/myimage"), ("localhost:5000/myimage", "localhost:5000/myimage"), ("localhost/myimage:latest", "localhost/myimage:latest"), ] for input_image, expected in test_cases: with self.subTest(input_image=input_image): result = normalize_image_name(input_image) self.assertEqual(result, expected) def test_normalize_image_name_custom_registry(self): """Test normalizing with custom registry parameter.""" test_cases = [ ("nginx", "myregistry.com", "myregistry.com/nginx"), ("ubuntu:20.04", "private.registry", "private.registry/ubuntu:20.04"), ] for input_image, registry, expected in test_cases: with self.subTest(input_image=input_image, registry=registry): result = normalize_image_name(input_image, registry) self.assertEqual(result, expected) def test_normalize_image_name_empty(self): """Test normalizing empty image name.""" result = normalize_image_name("") self.assertEqual(result, "") def test_normalize_image_name_with_namespace(self): """Test normalizing image names with namespaces.""" test_cases = [ ("library/nginx", "docker.io/library/nginx"), ("dataeverything/mcp-demo", "docker.io/dataeverything/mcp-demo"), ("user/repo:tag", "docker.io/user/repo:tag"), ] for input_image, expected in test_cases: with self.subTest(input_image=input_image): result = normalize_image_name(input_image) self.assertEqual(result, expected) @patch.dict(os.environ, {"MCP_DEFAULT_REGISTRY": "custom.registry.com"}) def test_normalize_with_custom_default_registry(self): """Test normalizing with custom default registry from environment.""" result = normalize_image_name("nginx") self.assertEqual(result, "custom.registry.com/nginx") if __name__ == "__main__": unittest.main()

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/Data-Everything/mcp-server-templates'

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