Files
contact.allucanget.biz/tests/conftest.py
zwitschi e192086833
All checks were successful
CI / test (3.11) (push) Successful in 1m36s
CI / build-image (push) Successful in 1m27s
feat: Add email settings management and templates functionality
- Implemented email settings configuration in the admin panel, allowing for SMTP settings and notification preferences.
- Created a new template for email settings with fields for SMTP host, port, username, password, sender address, and recipients.
- Added JavaScript functionality to handle loading, saving, and validating email settings.
- Introduced email templates management, enabling the listing, editing, and saving of email templates.
- Updated navigation to include links to email settings and templates.
- Added tests for email settings and templates to ensure proper functionality and validation.
2025-11-15 11:12:23 +01:00

63 lines
1.7 KiB
Python

import os
import tempfile
import pytest
import importlib
import sys
from pathlib import Path
# Ensure the repository root is on sys.path so tests can import the server package.
ROOT = Path(__file__).resolve().parents[1]
if str(ROOT) not in sys.path:
sys.path.insert(0, str(ROOT))
server_app_module = importlib.import_module("server.app")
# Expose app and init_db from the imported module
app = server_app_module.app
init_db = server_app_module.init_db
@pytest.fixture(autouse=True, scope="function")
def setup_tmp_db(tmp_path, monkeypatch):
"""Set up the database for each test function."""
tmp_db = tmp_path / "forms.db"
# Patch the module attribute directly to avoid package name collisions
monkeypatch.setattr(server_app_module, "DB_PATH", tmp_db, raising=False)
monkeypatch.setattr("server.settings.ADMIN_USERNAME", "admin")
monkeypatch.setattr("server.settings.ADMIN_PASSWORD", "admin")
init_db()
yield
@pytest.fixture(autouse=True, scope="function")
def stub_smtp(monkeypatch):
"""Replace smtplib SMTP clients with fast stubs to avoid real network calls."""
class _DummySMTP:
def __init__(self, *args, **kwargs):
self.args = args
self.kwargs = kwargs
def __enter__(self):
return self
def __exit__(self, exc_type, exc, tb):
return False
def starttls(self):
return None
def login(self, *args, **kwargs):
return None
def send_message(self, *args, **kwargs):
return {}
def sendmail(self, *args, **kwargs):
return {}
monkeypatch.setattr("smtplib.SMTP", _DummySMTP)
monkeypatch.setattr("smtplib.SMTP_SSL", _DummySMTP)
yield