| """ |
| SSHOUT模块__init__.py的简化完整测试 |
| """ |
| |
| import pytest |
| from unittest.mock import Mock, patch |
| |
| import sys |
| import os |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../../src')) |
| |
| |
| class TestSSHOUTInitSimple: |
| """SSHOUT模块初始化简单测试""" |
| |
| def test_create_api_integration_default_mode(self): |
| """测试创建API集成(默认模式)""" |
| from claude_agent.sshout import create_sshout_integration |
| |
| mock_agent = Mock() |
| mock_config_manager = Mock() |
| mock_config_manager.get_sshout_config.return_value = {} |
| |
| with patch('claude_agent.utils.config.get_config_manager', return_value=mock_config_manager): |
| with patch('claude_agent.sshout.SSHOUTApiIntegration') as mock_api: |
| result = create_sshout_integration(mock_agent) |
| mock_api.assert_called_once_with(mock_agent, None) |
| |
| def test_create_ssh_integration_explicit(self): |
| """测试创建SSH集成""" |
| from claude_agent.sshout import create_sshout_integration |
| |
| mock_agent = Mock() |
| mock_config_manager = Mock() |
| mock_config_manager.get_sshout_config.return_value = {'connection_mode': 'ssh'} |
| |
| with patch('claude_agent.utils.config.get_config_manager', return_value=mock_config_manager): |
| with patch('claude_agent.sshout.SSHOUTIntegration') as mock_ssh: |
| result = create_sshout_integration(mock_agent) |
| mock_ssh.assert_called_once_with(mock_agent, None) |
| |
| def test_create_integration_invalid_mode(self): |
| """测试无效模式""" |
| from claude_agent.sshout import create_sshout_integration |
| |
| mock_agent = Mock() |
| mock_config_manager = Mock() |
| mock_config_manager.get_sshout_config.return_value = {'connection_mode': 'invalid'} |
| |
| with patch('claude_agent.utils.config.get_config_manager', return_value=mock_config_manager): |
| with pytest.raises(ValueError, match="不支持的SSHOUT连接模式"): |
| create_sshout_integration(mock_agent) |
| |
| def test_imports_work(self): |
| """测试导入工作正常""" |
| from claude_agent.sshout import ( |
| SSHOUTIntegration, SSHOUTConnection, SSHOUTMessage, |
| SSHOUTApiClient, SSHOUTApiIntegration, ApiSSHOUTMessage |
| ) |
| |
| # 验证所有类都可导入 |
| assert SSHOUTIntegration is not None |
| assert SSHOUTConnection is not None |
| assert SSHOUTMessage is not None |
| assert SSHOUTApiClient is not None |
| assert SSHOUTApiIntegration is not None |
| assert ApiSSHOUTMessage is not None |