itsulu-blog-publisher/conftest.py
Nicholas Riegel 421f65cda6 fix: auto-install addon via conftest for pytest-odoo
Creates conftest.py that installs the addon before tests run via the
pytest_configure hook. Also fixes Dockerfile symlink path for Odoo 17
(no version subdirectory).
2026-05-29 22:45:54 -04:00

45 lines
1.4 KiB
Python

"""
Global pytest configuration for ITSulu Blog Publisher tests.
Installs the addon into the test database before any test code runs.
"""
import subprocess
import sys
print(">>> conftest.py loaded", file=sys.stderr)
def pytest_configure(config):
"""Install itsulu_blog_publisher into the test database."""
print(">>> pytest_configure hook called", file=sys.stderr)
db_name = getattr(config.option, 'odoo_database', None)
print(f">>> odoo_database option: {db_name}", file=sys.stderr)
if not db_name:
print(">>> No database name — skipping install", file=sys.stderr)
return
print(f"\n🚀 Installing itsulu_blog_publisher into {db_name}...", file=sys.stderr)
cmd = [
'odoo',
'-d', db_name,
'-i', 'itsulu_blog_publisher',
'--without-demo=all',
'--stop-after-init',
]
try:
result = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
if result.returncode == 0:
print(f"✅ Addon installed successfully", file=sys.stderr)
else:
print(f"⚠️ Install returned {result.returncode}", file=sys.stderr)
if result.stderr:
print(f" STDERR: {result.stderr[-300:]}", file=sys.stderr)
except subprocess.TimeoutExpired:
print(f"⚠️ Install timed out (120s)", file=sys.stderr)
except Exception as e:
print(f"⚠️ Install error: {e}", file=sys.stderr)