Skip to main content
Glama
test_install_script.py3.27 kB
#!/usr/bin/env python3 """ ESP-IDF安装脚本测试套件 """ import unittest import subprocess import os import sys # 测试脚本路径 INSTALL_SCRIPT = os.path.join(os.path.dirname(__file__), '..', 'install_esp_idf.py') TEST_DIR = os.path.dirname(__file__) class TestInstallScript(unittest.TestCase): """测试ESP-IDF安装脚本的功能""" def run_script(self, args=[], cwd=None): """运行安装脚本并返回结果""" cmd = ['python3', INSTALL_SCRIPT] + args try: result = subprocess.run( cmd, cwd=cwd or TEST_DIR, capture_output=True, text=True, timeout=30 ) return result.returncode, result.stdout, result.stderr except subprocess.TimeoutExpired: self.fail(f"脚本执行超时: {' '.join(cmd)}") except Exception as e: self.fail(f"执行脚本时发生错误: {e}") def test_help_option(self): """测试帮助选项""" exit_code, stdout, stderr = self.run_script(['--help']) # 检查退出码 self.assertEqual(exit_code, 0, f"帮助选项应返回0,但返回了{exit_code}") # 检查输出是否包含帮助信息 self.assertIn("ESP-IDF自动安装脚本", stdout, "帮助输出应包含脚本名称") self.assertIn("--version", stdout, "帮助输出应包含--version选项") self.assertIn("--list-versions", stdout, "帮助输出应包含--list-versions选项") self.assertIn("--version-count", stdout, "帮助输出应包含--version-count选项") def test_list_versions_option(self): """测试版本列表选项""" exit_code, stdout, stderr = self.run_script(['--list-versions']) # 检查退出码 self.assertEqual(exit_code, 0, f"版本列表选项应返回0,但返回了{exit_code}") # 检查输出是否包含版本列表信息 # 注意:Python版本的脚本不会显示"正在获取ESP-IDF版本列表"这条信息 # 检查输出是否包含至少一个版本号(格式如vX.Y.Z) self.assertRegex(stdout, r'v\d+\.\d+', "输出应包含至少一个版本号") def test_version_count_option(self): """测试版本数量参数""" # 测试默认数量(10个版本) exit_code, stdout, stderr = self.run_script(['--list-versions']) self.assertEqual(exit_code, 0, "版本列表选项应返回0") # 计算版本号数量(通过换行符分割并过滤空行) versions = [line for line in stdout.split('\n') if line.startswith('v')] self.assertGreaterEqual(len(versions), 1, "应至少显示一个版本") # 测试指定数量(5个版本) exit_code, stdout, stderr = self.run_script(['--list-versions', '--version-count', '5']) self.assertEqual(exit_code, 0, "指定版本数量选项应返回0") # 计算版本号数量 versions = [line for line in stdout.split('\n') if line.startswith('v')] self.assertLessEqual(len(versions), 5, "应显示不超过5个版本") if __name__ == '__main__': unittest.main()

Latest Blog Posts

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/jasper-zsh/espidf-mcp'

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