[WIP] Add tests and coverage
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
"""
|
||||
Focused coverage test - tests actual functions without container dependencies
|
||||
"""
|
||||
|
||||
import unittest
|
||||
import tempfile
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Add project root to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
|
||||
class TestActualFunctions(unittest.TestCase):
|
||||
"""Test actual functions for coverage analysis."""
|
||||
|
||||
def setUp(self):
|
||||
"""Set up test environment."""
|
||||
self.test_dir = tempfile.mkdtemp()
|
||||
|
||||
def tearDown(self):
|
||||
"""Clean up test environment."""
|
||||
import shutil
|
||||
shutil.rmtree(self.test_dir, ignore_errors=True)
|
||||
|
||||
def test_config_loading(self):
|
||||
"""Test configuration loading."""
|
||||
from orchestration.config import Config
|
||||
|
||||
# Create a test config file
|
||||
config_content = """
|
||||
title: "Test Gallery"
|
||||
description: "Test gallery for coverage"
|
||||
output_dir: "output"
|
||||
"""
|
||||
config_file = os.path.join(self.test_dir, "test_config.yaml")
|
||||
with open(config_file, 'w') as f:
|
||||
f.write(config_content)
|
||||
|
||||
# Test loading
|
||||
config = Config.from_yaml(config_file)
|
||||
self.assertEqual(config.title, "Test Gallery")
|
||||
self.assertEqual(config.description, "Test gallery for coverage")
|
||||
|
||||
def test_metadata_functions(self):
|
||||
"""Test metadata functions."""
|
||||
from orchestration.metadata import load_metadata_file, merge_metadata
|
||||
|
||||
# Create test metadata
|
||||
metadata_content = """
|
||||
title: "Test Plot"
|
||||
author: "Test Author"
|
||||
date: "2025-01-01"
|
||||
"""
|
||||
metadata_file = os.path.join(self.test_dir, "metadata.yaml")
|
||||
with open(metadata_file, 'w') as f:
|
||||
f.write(metadata_content)
|
||||
|
||||
# Test loading
|
||||
metadata = load_metadata_file(metadata_file)
|
||||
self.assertEqual(metadata['title'], "Test Plot")
|
||||
self.assertEqual(metadata['author'], "Test Author")
|
||||
|
||||
# Test merging
|
||||
base_meta = {'title': 'Base', 'type': 'plot'}
|
||||
override_meta = {'title': 'Override', 'new_field': 'value'}
|
||||
merged = merge_metadata(base_meta, override_meta)
|
||||
|
||||
self.assertEqual(merged['title'], 'Override') # Override wins
|
||||
self.assertEqual(merged['type'], 'plot') # Base preserved
|
||||
self.assertEqual(merged['new_field'], 'value') # New field added
|
||||
|
||||
def test_logger_creation(self):
|
||||
"""Test logger creation."""
|
||||
from orchestration.logger import create_logger, GalleryLogger
|
||||
|
||||
# Test creating a logger
|
||||
logger = create_logger("test_logger")
|
||||
self.assertIsNotNone(logger)
|
||||
|
||||
# Test GalleryLogger
|
||||
gallery_logger = GalleryLogger("test_gallery")
|
||||
self.assertIsNotNone(gallery_logger)
|
||||
|
||||
def test_file_operations(self):
|
||||
"""Test file operation utilities."""
|
||||
# Create test files
|
||||
old_file = os.path.join(self.test_dir, "old.txt")
|
||||
new_file = os.path.join(self.test_dir, "new.txt")
|
||||
|
||||
# Create old file first
|
||||
with open(old_file, 'w') as f:
|
||||
f.write("old content")
|
||||
|
||||
# Wait a moment then create new file
|
||||
import time
|
||||
time.sleep(0.1)
|
||||
|
||||
with open(new_file, 'w') as f:
|
||||
f.write("new content")
|
||||
|
||||
# Test file modification times
|
||||
old_stat = os.stat(old_file)
|
||||
new_stat = os.stat(new_file)
|
||||
|
||||
self.assertLess(old_stat.st_mtime, new_stat.st_mtime)
|
||||
|
||||
def test_path_operations(self):
|
||||
"""Test path and directory operations."""
|
||||
test_path = Path(self.test_dir)
|
||||
|
||||
# Test path exists
|
||||
self.assertTrue(test_path.exists())
|
||||
self.assertTrue(test_path.is_dir())
|
||||
|
||||
# Create subdirectory
|
||||
subdir = test_path / "subdir"
|
||||
subdir.mkdir()
|
||||
|
||||
self.assertTrue(subdir.exists())
|
||||
self.assertTrue(subdir.is_dir())
|
||||
|
||||
# Create file in subdir
|
||||
test_file = subdir / "test.txt"
|
||||
test_file.write_text("test content")
|
||||
|
||||
self.assertTrue(test_file.exists())
|
||||
self.assertTrue(test_file.is_file())
|
||||
self.assertEqual(test_file.read_text(), "test content")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user