blob: 88325cb05dd1f7d5837874e2f92948d512896a4a [file] [log] [blame] [raw]
"""
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