"""Acceptance tests for V5 visual packages and honest commercial readiness.""" import json from pathlib import Path from bs4 import BeautifulSoup from app import theme_store,db,builder,commercial_readiness from test_factory_v2 import factory,site def test_all_four_new_versions_have_complete_offline_artwork(factory): for theme in ('automotive','industrial','corporate','minimal'): versions=factory.get(f'/api/factory/themes/{theme}/versions').json() names={row['version'] for row in versions} assert {'1.1.0','1.0.0','0.3.0'} <= names folder=theme_store.resolve(theme,'1.1.0') assert (folder/'visual/hero.svg').read_text().startswith('Test

Test

') report=commercial_readiness.inspect(root) assert not report['ready_for_review'] assert report['commercially_certified'] is False assert any(x['code']=='page_missing' for x in report['blockers']) def test_online_theme_preview_loads_same_css_and_hero(factory): preview=factory.get('/api/factory/themes/automotive/preview',params={'version':'1.1.0','page_type':'home'}) assert preview.status_code==200 assert '/ui/commercial.css' in preview.text sheet=factory.get('/ui/commercial.css') assert sheet.status_code==200 and 'pro-filter-panel' in sheet.text art=factory.get('/api/factory/themes/automotive/visual/hero.svg',params={'version':'1.1.0'}) assert art.status_code==200 and 'image/svg+xml' in art.headers['content-type'] assert factory.get('/api/factory/themes/automotive/visual/hero.svg',params={'version':'1.0.0'}).status_code==404 def test_custom_declarative_theme_inherits_trusted_visuals(factory): import io,zipfile from test_factory_v2 import zip_theme blob=io.BytesIO(zip_theme('art-compatible','2.0.0')) response=factory.post('/api/factory/themes/install',files={'file':('theme.zip',blob.getvalue(),'application/zip')}) assert response.status_code==200,response.text folder=theme_store.resolve('art-compatible','2.0.0') assert (folder/'visual/hero.svg').is_file()