summaryrefslogtreecommitdiff
path: root/tests/test_schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_schema.py')
-rw-r--r--tests/test_schema.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/test_schema.py b/tests/test_schema.py
index 15a5f9b..51ec4a2 100644
--- a/tests/test_schema.py
+++ b/tests/test_schema.py
@@ -41,3 +41,65 @@ def test_inpaint_requires_both_images() -> None:
def test_arbitrary_dimensions_are_not_accepted() -> None:
with pytest.raises(InvalidRequestError, match="size"):
TextToImageRequest.create("cat", size="640x480")
+
+
+def test_base_prompts_are_combined_with_user_prompts() -> None:
+ request = TextToImageRequest.create(
+ "a cat",
+ "blurry",
+ base_positive="masterpiece, best quality",
+ base_negative="low quality, watermark",
+ )
+ assert request.positive_prompt == "masterpiece, best quality, a cat"
+ assert request.negative_prompt == "low quality, watermark\nblurry"
+
+
+def test_base_positive_only_does_not_add_trailing_separator() -> None:
+ request = TextToImageRequest.create(
+ "a cat",
+ base_positive="masterpiece",
+ )
+ assert request.positive_prompt == "masterpiece, a cat"
+ assert request.negative_prompt == ""
+
+
+def test_base_negative_only_does_not_add_leading_separator() -> None:
+ request = TextToImageRequest.create(
+ "a cat",
+ "blurry",
+ base_negative="low quality",
+ )
+ assert request.positive_prompt == "a cat"
+ assert request.negative_prompt == "low quality\nblurry"
+
+
+def test_empty_base_prompts_preserve_user_prompts() -> None:
+ request = TextToImageRequest.create("a cat", "blurry")
+ assert request.positive_prompt == "a cat"
+ assert request.negative_prompt == "blurry"
+
+
+def test_guided_request_combines_base_prompts() -> None:
+ request = GuidedImageRequest.create(
+ "a dancer",
+ "openpose",
+ "abc",
+ "deformed",
+ base_positive="masterpiece",
+ base_negative="low quality",
+ )
+ assert request.positive_prompt == "masterpiece, a dancer"
+ assert request.negative_prompt == "low quality\ndeformed"
+
+
+def test_inpaint_request_combines_base_prompts() -> None:
+ request = InpaintImageRequest.create(
+ "a vase",
+ "abc",
+ "def",
+ "artifacts",
+ base_positive="masterpiece",
+ base_negative="low quality",
+ )
+ assert request.positive_prompt == "masterpiece, a vase"
+ assert request.negative_prompt == "low quality\nartifacts"