This commit is contained in:
@@ -1018,6 +1018,52 @@ def test_parse_image_layout_defaults_to_square(response: str) -> None:
|
||||
assert main_module.parse_image_layout(response) == "square"
|
||||
|
||||
|
||||
def test_image_prompt_system_prompt_covers_key_details() -> None:
|
||||
"""The prompt-rewrite system prompt forces explicit detail on all aspects."""
|
||||
import vibe_bot.main as main_module
|
||||
|
||||
prompt = main_module.IMAGE_PROMPT_SYSTEM_PROMPT_TEMPLATE.format(layout="square")
|
||||
lowered = prompt.lower()
|
||||
assert "square" in prompt
|
||||
assert "exact text" in lowered
|
||||
assert "composition" in lowered
|
||||
assert "style" in lowered
|
||||
assert "canada goose" in lowered
|
||||
assert "only the image generation prompt" in lowered
|
||||
|
||||
|
||||
def test_doodlebob_prompt_rewrite_uses_detailed_system_prompt(
|
||||
mock_ctx: MagicMock,
|
||||
mock_llama_wrapper: MagicMock,
|
||||
mock_base64: MagicMock,
|
||||
mock_database: MagicMock,
|
||||
) -> None:
|
||||
"""The prompt rewrite call uses the detailed system prompt with the layout."""
|
||||
import asyncio
|
||||
|
||||
import vibe_bot.main as main_module
|
||||
|
||||
mock_llama_wrapper.chat_completion_instruct.side_effect = [
|
||||
"landscape", # layout selection
|
||||
"a very detailed prompt", # prompt rewrite
|
||||
]
|
||||
mock_llama_wrapper.image_generation.return_value = "aW1hZ2U="
|
||||
mock_database.get_image_generation_time_estimate.return_value = None
|
||||
|
||||
with patch.object(main_module, "LAYOUT_SIZES", LAYOUT_TEST_SIZES):
|
||||
asyncio.run(main_module.doodlebob(mock_ctx, message="a scene"))
|
||||
|
||||
rewrite_call = mock_llama_wrapper.chat_completion_instruct.call_args_list[1]
|
||||
expected = main_module.IMAGE_PROMPT_SYSTEM_PROMPT_TEMPLATE.format(
|
||||
layout="landscape"
|
||||
)
|
||||
assert rewrite_call.kwargs["system_prompt"] == expected
|
||||
assert rewrite_call.kwargs["user_prompt"] == "a scene"
|
||||
assert mock_llama_wrapper.image_generation.call_args.kwargs["prompt"] == (
|
||||
"a very detailed prompt"
|
||||
)
|
||||
|
||||
|
||||
def test_doodlebob_selects_portrait(
|
||||
mock_ctx: MagicMock,
|
||||
mock_llama_wrapper: MagicMock,
|
||||
|
||||
Reference in New Issue
Block a user