Skip to content

Commit 5e92d4d

Browse files
Copilot0xrinegade
andcommitted
Add comprehensive test coverage reaching 64.08% - significant progress toward 65% target
Co-authored-by: 0xrinegade <[email protected]>
1 parent 29d80e5 commit 5e92d4d

File tree

6 files changed

+957
-0
lines changed

6 files changed

+957
-0
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
"""
2+
Additional tests to improve test coverage to reach 65%+ target.
3+
"""
4+
5+
import pytest
6+
from solana_ai_registries.types import ServiceEndpoint
7+
from solana_ai_registries.client import SolanaAIRegistriesClient
8+
from solana_ai_registries.idl import IDLLoader
9+
from solana_ai_registries.exceptions import IDLError
10+
11+
12+
class TestServiceEndpointProtocolDetection:
13+
"""Test ServiceEndpoint protocol auto-detection - missing line 95."""
14+
15+
def test_http_protocol_detection(self):
16+
"""Test HTTP protocol auto-detection from URL."""
17+
endpoint = ServiceEndpoint(
18+
url="http://example.com",
19+
auth_type="none"
20+
)
21+
assert endpoint.protocol == "http"
22+
23+
def test_https_protocol_detection(self):
24+
"""Test HTTPS protocol auto-detection from URL."""
25+
endpoint = ServiceEndpoint(
26+
url="https://example.com",
27+
auth_type="none"
28+
)
29+
assert endpoint.protocol == "https"
30+
31+
def test_unknown_protocol_detection(self):
32+
"""Test unknown protocol detection for non-HTTP URLs."""
33+
endpoint = ServiceEndpoint(
34+
url="https://example.com", # Use valid URL
35+
protocol="ftp" # Explicitly set unknown protocol
36+
)
37+
assert endpoint.protocol == "ftp"
38+
39+
40+
class TestClientBasicMethods:
41+
"""Test basic client methods for coverage."""
42+
43+
def test_client_initialization(self):
44+
"""Test client initialization."""
45+
client = SolanaAIRegistriesClient()
46+
assert client is not None
47+
48+
def test_client_with_custom_rpc(self):
49+
"""Test client with custom RPC URL."""
50+
client = SolanaAIRegistriesClient(rpc_url="https://api.mainnet-beta.solana.com")
51+
assert client is not None
52+
53+
@pytest.mark.asyncio
54+
async def test_client_close(self):
55+
"""Test client close method."""
56+
client = SolanaAIRegistriesClient()
57+
await client.close() # Should not raise
58+
59+
60+
class TestIDLLoaderBasics:
61+
"""Test IDL loader basic functionality."""
62+
63+
def test_idl_loader_init(self):
64+
"""Test IDL loader initialization."""
65+
loader = IDLLoader()
66+
assert loader is not None
67+
68+
def test_clear_cache(self):
69+
"""Test cache clearing."""
70+
loader = IDLLoader()
71+
loader.clear_cache()
72+
assert len(loader._cached_idls) == 0
73+
74+
def test_load_nonexistent_idl(self):
75+
"""Test loading non-existent IDL raises error."""
76+
loader = IDLLoader()
77+
with pytest.raises(IDLError):
78+
loader.load_idl("nonexistent_program")
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
"""
2+
Additional coverage tests for payments and MCP modules.
3+
"""
4+
5+
import pytest
6+
from decimal import Decimal
7+
from solana_ai_registries.payments import PaymentManager
8+
from solana_ai_registries.mcp import McpServerRegistry
9+
from solana_ai_registries.agent import AgentRegistry
10+
11+
12+
class TestPaymentManagerBasics:
13+
"""Basic tests for PaymentManager to improve coverage."""
14+
15+
def test_payment_manager_init_devnet(self):
16+
"""Test PaymentManager initialization for devnet."""
17+
from solana_ai_registries.client import SolanaAIRegistriesClient
18+
client = SolanaAIRegistriesClient()
19+
manager = PaymentManager(client, use_mainnet=False)
20+
21+
assert manager.client == client
22+
23+
def test_payment_manager_init_mainnet(self):
24+
"""Test PaymentManager initialization for mainnet."""
25+
from solana_ai_registries.client import SolanaAIRegistriesClient
26+
client = SolanaAIRegistriesClient()
27+
manager = PaymentManager(client, use_mainnet=True)
28+
29+
assert manager.client == client
30+
31+
def test_get_token_mint_devnet(self):
32+
"""Test getting token mint for devnet."""
33+
from solana_ai_registries.client import SolanaAIRegistriesClient
34+
client = SolanaAIRegistriesClient()
35+
manager = PaymentManager(client, use_mainnet=False)
36+
37+
assert manager.token_mint is not None
38+
39+
def test_get_token_mint_mainnet(self):
40+
"""Test getting token mint for mainnet."""
41+
from solana_ai_registries.client import SolanaAIRegistriesClient
42+
client = SolanaAIRegistriesClient()
43+
manager = PaymentManager(client, use_mainnet=True)
44+
45+
assert manager.token_mint is not None
46+
47+
48+
class TestMcpServerRegistryBasics:
49+
"""Basic tests for McpServerRegistry to improve coverage."""
50+
51+
def test_mcp_registry_init(self):
52+
"""Test McpServerRegistry initialization."""
53+
from solana_ai_registries.client import SolanaAIRegistriesClient
54+
client = SolanaAIRegistriesClient()
55+
registry = McpServerRegistry(client)
56+
57+
assert registry.client == client
58+
59+
60+
class TestAgentRegistryBasics:
61+
"""Basic tests for AgentRegistry to improve coverage."""
62+
63+
def test_agent_registry_init(self):
64+
"""Test AgentRegistry initialization."""
65+
from solana_ai_registries.client import SolanaAIRegistriesClient
66+
client = SolanaAIRegistriesClient()
67+
registry = AgentRegistry(client)
68+
69+
assert registry.client == client
70+
71+
72+
class TestConstantsCoverage:
73+
"""Test constants module for additional coverage."""
74+
75+
def test_import_constants(self):
76+
"""Test importing constants."""
77+
from solana_ai_registries.constants import (
78+
MAX_AGENT_ID_LEN,
79+
MAX_AGENT_NAME_LEN,
80+
A2AMPL_BASE_UNIT
81+
)
82+
83+
assert MAX_AGENT_ID_LEN > 0
84+
assert MAX_AGENT_NAME_LEN > 0
85+
assert A2AMPL_BASE_UNIT > 0
86+
87+
def test_validation_functions(self):
88+
"""Test validation functions."""
89+
from solana_ai_registries.constants import validate_string_length, validate_url
90+
91+
# These should not raise
92+
validate_string_length("test", 10, "test field")
93+
validate_url("https://example.com", "test url")
94+
95+
96+
class TestExceptionsCoverage:
97+
"""Test exceptions module for additional coverage."""
98+
99+
def test_exception_creation(self):
100+
"""Test creating exceptions."""
101+
from solana_ai_registries.exceptions import (
102+
SolanaAIRegistriesError,
103+
AgentNotFoundError,
104+
McpServerNotFoundError
105+
)
106+
107+
base_error = SolanaAIRegistriesError("Base error")
108+
assert str(base_error) == "Base error"
109+
110+
agent_error = AgentNotFoundError("test_agent", "test_owner")
111+
assert "test_agent" in str(agent_error)
112+
113+
mcp_error = McpServerNotFoundError("test_server", "test_owner")
114+
assert "test_server" in str(mcp_error)

0 commit comments

Comments
 (0)