64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
"""Pytest configuration and fixtures."""
|
|
|
|
import pytest
|
|
import sys
|
|
import os
|
|
|
|
# Add src directory to path for imports
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src"))
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_tkinter_root():
|
|
"""Create a mock Tkinter root window for GUI tests."""
|
|
import unittest.mock
|
|
|
|
return unittest.mock.MagicMock()
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def mock_tkinter_imports():
|
|
"""Mock tkinter imports to avoid GUI dependencies in tests."""
|
|
import unittest.mock
|
|
|
|
# Mock tkinter modules
|
|
mock_tk = unittest.mock.MagicMock()
|
|
mock_messagebox = unittest.mock.MagicMock()
|
|
mock_filedialog = unittest.mock.MagicMock()
|
|
|
|
modules_to_mock = {
|
|
"tkinter": mock_tk,
|
|
"tkinter.messagebox": mock_messagebox,
|
|
"tkinter.filedialog": mock_filedialog,
|
|
"tkinter.ttk": unittest.mock.MagicMock(),
|
|
}
|
|
|
|
with unittest.mock.patch.dict("sys.modules", modules_to_mock):
|
|
yield
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_directory():
|
|
"""Create a temporary directory for testing."""
|
|
import tempfile
|
|
import shutil
|
|
|
|
temp_dir = tempfile.mkdtemp()
|
|
yield temp_dir
|
|
shutil.rmtree(temp_dir)
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_file():
|
|
"""Create a temporary file for testing."""
|
|
import tempfile
|
|
import os
|
|
|
|
fd, temp_path = tempfile.mkstemp()
|
|
os.close(fd)
|
|
yield temp_path
|
|
try:
|
|
os.unlink(temp_path)
|
|
except FileNotFoundError:
|
|
pass
|