PyTorch HUD MCP Server

  • test
#!/usr/bin/env python3 """ Tests to verify proper imports and availability of log analysis tools """ import unittest import inspect # Import all the tools we want to test from pytorch_hud.tools.hud_data import get_job_details from pytorch_hud.log_analysis.tools import ( download_log_to_file, find_commits_with_similar_failures, search_logs, extract_log_patterns, extract_test_results, filter_log_sections ) class LogAnalysisToolsTest(unittest.TestCase): """Test the availability and signatures of log analysis tools""" def test_tools_exist_and_have_docstrings(self): """Test that all log analysis tools exist and have proper docstrings""" tools = [ get_job_details, download_log_to_file, find_commits_with_similar_failures, search_logs, # Backward compatibility alias extract_log_patterns, extract_test_results, filter_log_sections ] for tool in tools: # Verify the tool exists and is callable self.assertTrue(callable(tool)) # Verify it has a docstring self.assertIsNotNone(tool.__doc__) self.assertTrue(len(tool.__doc__.strip()) > 0) # Check for 'Args:' and 'Returns:' sections in async functions if inspect.iscoroutinefunction(tool): self.assertIn("Args:", tool.__doc__) self.assertIn("Returns:", tool.__doc__) def test_get_job_details_signature(self): """Test signature of get_job_details""" sig = inspect.signature(get_job_details) params = sig.parameters # Check key parameters self.assertIn("job_id", params) self.assertIn("ctx", params) def test_download_log_to_file_signature(self): """Test signature of download_log_to_file""" sig = inspect.signature(download_log_to_file) params = sig.parameters # Check key parameters self.assertIn("job_id", params) self.assertIn("ctx", params) def test_find_commits_with_similar_failures_signature(self): """Test signature of find_commits_with_similar_failures""" sig = inspect.signature(find_commits_with_similar_failures) params = sig.parameters # Check key parameters self.assertIn("failure", params) self.assertIn("repo", params) self.assertIn("workflow_name", params) self.assertIn("branch_name", params) self.assertIn("start_date", params) self.assertIn("end_date", params) self.assertIn("min_score", params) def test_search_logs_is_alias(self): """Test that search_logs is an alias for find_commits_with_similar_failures""" self.assertEqual(search_logs, find_commits_with_similar_failures) if __name__ == "__main__": unittest.main()