@@ -23,13 +23,15 @@ def test_mcp_servers_loaded(
2323 api_client : CatalogAPIClient ,
2424 suppress_ssl_warnings : None ,
2525 test_mcp_catalog_data : dict ,
26+ kind_cluster : bool ,
2627 ):
2728 """Test that all expected MCP servers are loaded with required fields."""
2829 response = api_client .get_mcp_servers ()
2930 items = response .get ("items" , [])
3031 actual_names = {server ["name" ] for server in items }
31- expected_names = {server ["name" ] for server in test_mcp_catalog_data ["mcp_servers" ]}
32- assert actual_names == expected_names
32+ if kind_cluster :
33+ expected_names = {server ["name" ] for server in test_mcp_catalog_data ["mcp_servers" ]}
34+ assert actual_names == expected_names
3335
3436 for server in items :
3537 missing = MCP_SERVER_REQUIRED_FIELDS - server .keys ()
@@ -40,12 +42,16 @@ def test_mcp_server_providers(
4042 api_client : CatalogAPIClient ,
4143 suppress_ssl_warnings : None ,
4244 test_mcp_catalog_data : dict ,
45+ kind_cluster : bool ,
4346 ):
4447 """Test that MCP server providers match expected values."""
4548 response = api_client .get_mcp_servers ()
46- actual_providers = {s ["name" ]: s ["provider" ] for s in response ["items" ]}
47- expected_providers = {s ["name" ]: s ["provider" ] for s in test_mcp_catalog_data ["mcp_servers" ]}
48- assert actual_providers == expected_providers
49+ actual_providers = {server ["name" ]: server ["provider" ] for server in response ["items" ]}
50+ expected_providers = {server ["name" ]: server ["provider" ] for server in test_mcp_catalog_data ["mcp_servers" ]}
51+ if kind_cluster :
52+ assert actual_providers == expected_providers
53+ else :
54+ assert set (expected_providers .items ()).issubset (set (actual_providers .items ()))
4955
5056 def test_mcp_server_get_by_id (
5157 self ,
@@ -67,13 +73,16 @@ def test_mcp_server_pagination(
6773 api_client : CatalogAPIClient ,
6874 suppress_ssl_warnings : None ,
6975 test_mcp_catalog_data : dict ,
76+ kind_cluster : bool ,
7077 ):
7178 """Test pagination by iterating all servers with pageSize=1."""
7279 expected_names = {server ["name" ] for server in test_mcp_catalog_data ["mcp_servers" ]}
7380 collected_names : set [str ] = set ()
7481 next_token = None
7582
76- for _ in range (len (expected_names ) + 1 ):
83+ # Use a safe upper bound: on non-KinD environments there may be more servers
84+ max_pages = len (expected_names ) + 1 if kind_cluster else 100
85+ for _ in range (max_pages ):
7786 response = api_client .get_mcp_servers (page_size = 1 , next_page_token = next_token )
7887 items = response .get ("items" , [])
7988 assert len (items ) == 1 , f"Expected exactly 1 item per page, got { len (items )} "
@@ -86,7 +95,10 @@ def test_mcp_server_pagination(
8695 if not next_token :
8796 break
8897
89- assert collected_names == expected_names
98+ if kind_cluster :
99+ assert collected_names == expected_names
100+ else :
101+ assert expected_names .issubset (collected_names )
90102
91103 def test_filter_by_name (
92104 self ,
0 commit comments