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
+77
View File
@@ -0,0 +1,77 @@
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
import tempfile
import shutil
import os
from unittest.mock import patch
from calendar_manager import CalendarManager
class TestCalendarManager(unittest.TestCase):
def setUp(self):
self.test_dir = tempfile.mkdtemp()
self.data_dir = os.path.join(self.test_dir, 'data')
self.config_dir = os.path.join(self.test_dir, 'config')
os.makedirs(self.data_dir, exist_ok=True)
os.makedirs(self.config_dir, exist_ok=True)
self.manager = CalendarManager(data_dir=self.data_dir, config_dir=self.config_dir)
def tearDown(self):
shutil.rmtree(self.test_dir)
def test_initialization(self):
self.assertTrue(os.path.exists(self.manager.calendar_dir))
self.assertTrue(os.path.exists(self.manager.radicale_dir))
def test_ensure_config_exists(self):
config_file = os.path.join(self.manager.radicale_dir, 'config')
if os.path.exists(config_file):
os.remove(config_file)
self.manager._ensure_config_exists()
self.assertTrue(os.path.exists(config_file))
def test_generate_radicale_config(self):
config_file = os.path.join(self.manager.radicale_dir, 'config')
if os.path.exists(config_file):
os.remove(config_file)
self.manager._generate_radicale_config()
self.assertTrue(os.path.exists(config_file))
with open(config_file) as f:
content = f.read()
self.assertIn('[server]', content)
self.assertIn('hosts = 0.0.0.0:5232', content)
def test_get_status(self):
status = self.manager.get_status()
self.assertIsInstance(status, dict)
self.assertIn('status', status)
@patch.object(CalendarManager, 'create_calendar', return_value=True)
@patch.object(CalendarManager, 'remove_calendar', return_value=True)
def test_create_and_remove_calendar(self, mock_remove, mock_create):
result = self.manager.create_calendar('testuser', 'testcal')
self.assertTrue(result)
result = self.manager.remove_calendar('testuser', 'testcal')
self.assertTrue(result)
@patch.object(CalendarManager, 'add_event', return_value=True)
@patch.object(CalendarManager, 'remove_event', return_value=True)
def test_add_and_remove_event(self, mock_remove, mock_add):
result = self.manager.add_event('testuser', 'testcal', {'summary': 'Test'})
self.assertTrue(result)
result = self.manager.remove_event('testuser', 'testcal', 'dummyuid')
self.assertTrue(result)
def test_error_handling(self):
# Force errors by passing invalid arguments, should return False
self.assertFalse(self.manager.create_calendar(None, None))
self.assertFalse(self.manager.add_event(None, None, None))
self.assertFalse(self.manager.remove_calendar(None, None))
self.assertFalse(self.manager.remove_event(None, None, None))
if __name__ == '__main__':
unittest.main()