""" Integration tests for site page generation """ import pytest from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from src.database.models import Base, SiteDeployment, SitePage from src.database.repositories import SiteDeploymentRepository, SitePageRepository from src.templating.service import TemplateService from src.generation.site_page_generator import generate_site_pages @pytest.fixture def test_engine(): engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) return engine @pytest.fixture def test_session(test_engine): Session = sessionmaker(bind=test_engine) session = Session() yield session session.close() @pytest.fixture def site_repo(test_session): return SiteDeploymentRepository(test_session) @pytest.fixture def page_repo(test_session): return SitePageRepository(test_session) @pytest.fixture def template_service(): return TemplateService() @pytest.fixture def test_site(site_repo): site = site_repo.create( site_name="test-site", storage_zone_id=12345, storage_zone_name="test-storage", storage_zone_password="password123", storage_zone_region="DE", pull_zone_id=67890, pull_zone_bcdn_hostname="test-site.b-cdn.net", custom_hostname=None ) return site def test_generate_pages_for_site(test_site, page_repo, template_service): pages = generate_site_pages(test_site, page_repo, template_service) assert len(pages) == 3 page_types = [p.page_type for p in pages] assert "about" in page_types assert "contact" in page_types assert "privacy" in page_types def test_generated_pages_stored_in_database(test_site, page_repo, template_service): generate_site_pages(test_site, page_repo, template_service) stored_pages = page_repo.get_by_site(test_site.id) assert len(stored_pages) == 3 for page in stored_pages: assert page.site_deployment_id == test_site.id assert page.page_type in ["about", "contact", "privacy"] assert page.content is not None assert len(page.content) > 0 assert "