This commit is contained in:
Constantin
2025-09-12 23:04:52 +03:00
commit 2277b11563
127 changed files with 23640 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
import sys
from pathlib import Path
# Add api directory to path
api_dir = Path(__file__).parent.parent / 'api'
sys.path.insert(0, str(api_dir))
import unittest
from unittest.mock import patch, MagicMock
from container_manager import ContainerManager
class TestContainerManager(unittest.TestCase):
@patch('docker.from_env')
def test_list_containers(self, mock_from_env):
mock_client = MagicMock()
mock_container = MagicMock()
mock_container.id = 'abc'
mock_container.name = 'test'
mock_container.status = 'running'
mock_container.image.tags = ['img']
mock_container.labels = {}
mock_client.containers.list.return_value = [mock_container]
mock_from_env.return_value = mock_client
mgr = ContainerManager()
result = mgr.list_containers()
self.assertEqual(result[0]['name'], 'test')
@patch('docker.from_env')
def test_start_stop_restart_container(self, mock_from_env):
mock_client = MagicMock()
mock_container = MagicMock()
mock_client.containers.get.return_value = mock_container
mock_from_env.return_value = mock_client
mgr = ContainerManager()
# Start
self.assertTrue(mgr.start_container('test'))
mock_container.start.assert_called_once()
# Stop
self.assertTrue(mgr.stop_container('test'))
mock_container.stop.assert_called_once()
# Restart
self.assertTrue(mgr.restart_container('test'))
mock_container.restart.assert_called_once()
# Exception cases
mock_client.containers.get.side_effect = Exception('fail')
self.assertFalse(mgr.start_container('bad'))
self.assertFalse(mgr.stop_container('bad'))
self.assertFalse(mgr.restart_container('bad'))
if __name__ == '__main__':
unittest.main()