Add basic test suite
This commit is contained in:
85
tests/conftest.py
Normal file
85
tests/conftest.py
Normal file
@@ -0,0 +1,85 @@
|
||||
from unittest.mock import MagicMock, Mock
|
||||
|
||||
import flet as ft
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_page():
|
||||
"""Create a mock Flet page for testing."""
|
||||
page = Mock(spec=ft.Page)
|
||||
page.add = Mock()
|
||||
page.update = Mock()
|
||||
page.run_thread = Mock()
|
||||
page.controls = []
|
||||
page.theme_mode = ft.ThemeMode.DARK
|
||||
page.appbar = Mock()
|
||||
page.drawer = Mock()
|
||||
page.window = Mock()
|
||||
page.width = 1024
|
||||
page.snack_bar = None
|
||||
page.on_resized = None
|
||||
page.on_keyboard_event = None
|
||||
return page
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_rns():
|
||||
"""Mock RNS module to avoid network dependencies in tests."""
|
||||
mock_rns = MagicMock()
|
||||
mock_rns.Reticulum = Mock()
|
||||
mock_rns.Transport = Mock()
|
||||
mock_rns.Identity = Mock()
|
||||
mock_rns.Destination = Mock()
|
||||
mock_rns.Link = Mock()
|
||||
mock_rns.log = Mock()
|
||||
|
||||
# Mock at the module level for all imports
|
||||
import sys
|
||||
sys.modules["RNS"] = mock_rns
|
||||
|
||||
yield mock_rns
|
||||
|
||||
# Cleanup
|
||||
if "RNS" in sys.modules:
|
||||
del sys.modules["RNS"]
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_announce_data():
|
||||
"""Sample announce data for testing."""
|
||||
return {
|
||||
"destination_hash": "1234567890abcdef",
|
||||
"display_name": "Test Node",
|
||||
"timestamp": 1234567890
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_page_request():
|
||||
"""Sample page request for testing."""
|
||||
from ren_browser.pages.page_request import PageRequest
|
||||
return PageRequest(
|
||||
destination_hash="1234567890abcdef",
|
||||
page_path="/page/index.mu",
|
||||
field_data=None
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_storage_manager():
|
||||
"""Mock storage manager for testing."""
|
||||
mock_storage = Mock()
|
||||
mock_storage.load_config.return_value = "test config content"
|
||||
mock_storage.save_config.return_value = True
|
||||
mock_storage.get_config_path.return_value = Mock()
|
||||
mock_storage.get_reticulum_config_path.return_value = Mock()
|
||||
mock_storage.get_storage_info.return_value = {
|
||||
'storage_dir': '/mock/storage',
|
||||
'config_path': '/mock/storage/config.txt',
|
||||
'reticulum_config_path': '/mock/storage/reticulum',
|
||||
'storage_dir_exists': True,
|
||||
'storage_dir_writable': True,
|
||||
'has_client_storage': True,
|
||||
}
|
||||
return mock_storage
|
||||
Reference in New Issue
Block a user