Files
ETPlot/tests/test_simple_coverage.py
T
2025-09-08 10:52:58 +02:00

145 lines
4.6 KiB
Python

"""
Simple coverage test that actually works
"""
import unittest
import sys
import tempfile
import shutil
from pathlib import Path
# Add the project root to Python path
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
class TestSimpleCoverage(unittest.TestCase):
"""Simple tests that will give us coverage data."""
def test_basic_imports(self):
"""Test that we can import basic modules."""
# These should work
import os
import sys
import pathlib
self.assertTrue(os.path.exists('/'))
self.assertIsNotNone(sys.version)
self.assertIsNotNone(pathlib.Path.cwd())
def test_orchestration_config(self):
"""Test config module import and basic functionality."""
try:
from orchestration.config import Config, PathConfig, GalleryConfig, UIConfig
# Test PathConfig creation
path_config = PathConfig(
work_dir="/tmp",
web_folder="/tmp/web"
)
self.assertEqual(path_config.work_dir, "/tmp")
self.assertEqual(path_config.web_folder, "/tmp/web")
# Test Config class exists
self.assertTrue(hasattr(Config, 'from_yaml'))
# Test GalleryConfig
gallery_config = GalleryConfig(
plot_root="/plots",
png_dpi=150,
backup_folder="/backup"
)
self.assertEqual(gallery_config.plot_root, "/plots")
self.assertEqual(gallery_config.png_dpi, 150)
# Test UIConfig
ui_config = UIConfig(
max_recent_plots=10,
search_debounce_ms=300
)
self.assertEqual(ui_config.max_recent_plots, 10)
self.assertEqual(ui_config.search_debounce_ms, 300)
except ImportError:
self.skipTest("Config module not available")
def test_orchestration_metadata(self):
"""Test metadata module functions."""
try:
from orchestration.metadata import merge_metadata, load_folder_metadata
# Test merge_metadata function
base = {"title": "Base Title", "author": "Base Author"}
override = {"title": "Override Title", "type": "plot"}
merged = merge_metadata(base, override)
# Override should win for title
self.assertEqual(merged["title"], "Override Title")
# Base should be preserved for author
self.assertEqual(merged["author"], "Base Author")
# New field should be added
self.assertEqual(merged["type"], "plot")
# Test empty metadata
empty_base = {}
empty_merged = merge_metadata(empty_base, override)
self.assertEqual(empty_merged["title"], "Override Title")
# Test load_folder_metadata with non-existent path
temp_dir = tempfile.mkdtemp()
try:
folder_meta = load_folder_metadata(Path(temp_dir))
self.assertIsInstance(folder_meta, dict)
finally:
shutil.rmtree(temp_dir, ignore_errors=True)
except ImportError:
self.skipTest("Metadata module not available")
def test_file_operations(self):
"""Test basic file operations that generate coverage."""
# Create temp directory
temp_dir = tempfile.mkdtemp()
try:
# Create a test file
test_file = Path(temp_dir) / "test.txt"
test_file.write_text("Hello, World!")
# Verify file exists and has content
self.assertTrue(test_file.exists())
content = test_file.read_text()
self.assertEqual(content, "Hello, World!")
# Test file size
size = test_file.stat().st_size
self.assertGreater(size, 0)
finally:
shutil.rmtree(temp_dir, ignore_errors=True)
def test_path_manipulations(self):
"""Test path manipulations to generate more coverage."""
# Test various path operations
current_path = Path.cwd()
self.assertTrue(current_path.exists())
# Test path joining
test_path = current_path / "non_existent_file.txt"
self.assertFalse(test_path.exists())
# Test path parts
parts = current_path.parts
self.assertGreater(len(parts), 0)
# Test parent
parent = current_path.parent
self.assertIsInstance(parent, Path)
if __name__ == '__main__':
unittest.main()