Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions tests/test_theme_prompts.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from wpgen.prompts.theme_prompts import get_theme_spec_prompt


def test_theme_prompt_includes_inspiration_and_trends_with_design_profile():
prompt = get_theme_spec_prompt(
"Create a bold ecommerce site",
design_profile={"name": "streetwear_modern", "description": "Bold streetwear look"},
)

assert "DESIGN INSPIRATION" in prompt
assert "MODERN DESIGN TRENDS" in prompt
assert prompt.index("MODERN DESIGN TRENDS") < prompt.index("## Theme Specification")


def test_theme_prompt_includes_ecommerce_guidance_for_woocommerce():
prompt = get_theme_spec_prompt(
"Set up a modern shop",
woocommerce_enabled=True,
)

assert "ECOMMERCE THEME BEST PRACTICES" in prompt
assert "MODERN DESIGN TRENDS" in prompt
assert prompt.index("ECOMMERCE THEME BEST PRACTICES") < prompt.index("## Theme Specification")
26 changes: 26 additions & 0 deletions wpgen/prompts/theme_prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@
import re
from typing import Any

from ..design_inspiration import (
get_ecommerce_best_practices,
get_inspiration_context,
get_modern_design_trends,
)
from ..schema import ThemeSpecification, get_default_theme_spec, validate_theme_spec
from ..utils.logger import get_logger

Expand Down Expand Up @@ -234,6 +239,27 @@ def get_theme_spec_prompt(
"",
])

guidance_blocks: list[str] = []

if design_profile:
inspiration_context = get_inspiration_context(design_profile.get("name", ""))
if inspiration_context:
guidance_blocks.append(inspiration_context)

if design_profile or woocommerce_enabled:
design_trends = get_modern_design_trends()
if design_trends:
guidance_blocks.append(design_trends)

if woocommerce_enabled:
ecommerce_best_practices = get_ecommerce_best_practices()
if ecommerce_best_practices:
guidance_blocks.append(ecommerce_best_practices)

if guidance_blocks:
prompt_parts.extend(guidance_blocks)
prompt_parts.append("")

# Add schema
prompt_parts.extend([
SCHEMA_DESCRIPTION,
Expand Down
Loading