Initial implementation
This commit is contained in:
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
60
tests/test_app.py
Normal file
60
tests/test_app.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import unittest
|
||||
import os
|
||||
import sys
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
# Add parent directory to path so we can import the application
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
from src.app import Application
|
||||
from src.protocols.protocol_interface import FileTransferProtocol
|
||||
from src.utils.config import Config
|
||||
|
||||
class TestApplication(unittest.TestCase):
|
||||
"""Test cases for the main application"""
|
||||
|
||||
@patch('src.utils.config.Config')
|
||||
def test_application_init(self, mock_config):
|
||||
"""Test application initialization"""
|
||||
# Set up mock configuration
|
||||
mock_config_instance = MagicMock()
|
||||
mock_config.return_value = mock_config_instance
|
||||
|
||||
# Initialize application
|
||||
app = Application()
|
||||
|
||||
# Verify application initialized correctly
|
||||
self.assertIsNotNone(app.logger)
|
||||
self.assertIsNotNone(app.monitoring)
|
||||
self.assertFalse(app.running)
|
||||
|
||||
@patch('src.utils.config.Config')
|
||||
@patch('src.protocols.protocol_factory.ProtocolFactory.create_protocol')
|
||||
def test_create_protocol(self, mock_create_protocol, mock_config):
|
||||
"""Test protocol creation"""
|
||||
# Set up mock configuration
|
||||
mock_config_instance = MagicMock()
|
||||
mock_config_instance.get.side_effect = lambda section, key: {
|
||||
('app', 'TRANSFER_PROTOCOL'): 'SSH',
|
||||
('server', 'REMOTE_HOST'): 'testhost',
|
||||
('server', 'REMOTE_USER'): 'testuser',
|
||||
('server', 'REMOTE_PASS'): 'testpass',
|
||||
}.get((section, key))
|
||||
|
||||
mock_config_instance.get_int.return_value = 22
|
||||
mock_config.return_value = mock_config_instance
|
||||
|
||||
# Set up mock protocol
|
||||
mock_protocol = MagicMock(spec=FileTransferProtocol)
|
||||
mock_create_protocol.return_value = mock_protocol
|
||||
|
||||
# Initialize application and create protocol
|
||||
app = Application()
|
||||
protocol = app._create_protocol()
|
||||
|
||||
# Verify protocol was created correctly
|
||||
self.assertEqual(protocol, mock_protocol)
|
||||
mock_create_protocol.assert_called_once_with('SSH', 'testhost', 'testuser', 'testpass', 22)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Reference in New Issue
Block a user