Organize tools and move Python tests into tools/tests
This commit is contained in:
1 parent
0aacee6518
commit
e4e1566e55
22 files changed
+209
-3
No files matched your search
@@ -0,0 +1,52 @@
|
||||
"""Tests for the reference-anchored texture path (no network)."""
|
||||
|
||||
import unittest
|
||||
from unittest import mock
|
||||
|
||||
from PIL import Image
|
||||
|
||||
import generate_textures as gt
|
||||
|
||||
|
||||
class ReferenceGateTests(unittest.TestCase):
|
||||
def test_reference_without_licence_note_is_refused(self):
|
||||
for argv in (["--ai", "--prompt", "x", "--name", "a.png",
|
||||
"--reference", "r.jpg"],
|
||||
["--ai", "--prompt", "x", "--name", "a.png",
|
||||
"--reference-licence", "CC BY 2.0"]):
|
||||
with mock.patch.object(gt, "generate_ai_textures") as gen:
|
||||
with self.assertRaises(SystemExit):
|
||||
gt._run_ai(gt._build_arg_parser().parse_args(argv))
|
||||
gen.assert_not_called()
|
||||
|
||||
def test_reference_pair_calls_with_the_path(self):
|
||||
argv = ["--ai", "--prompt", "x", "--name", "a.png",
|
||||
"--reference", "r.jpg", "--reference-licence", "CC BY 2.0"]
|
||||
with mock.patch.object(gt, "generate_ai_textures") as gen:
|
||||
gt._run_ai(gt._build_arg_parser().parse_args(argv))
|
||||
gen.assert_called_once_with("x", "a.png", gt.DEFAULT_IMAGE_MODEL,
|
||||
gt.GEN_SIZE, reference_path="r.jpg")
|
||||
|
||||
|
||||
class ReferenceCropTests(unittest.TestCase):
|
||||
def test_reference_results_are_cropped_square_before_save(self):
|
||||
wide = Image.new("RGB", (1344, 768), (10, 20, 30))
|
||||
with mock.patch.object(gt, "generate_image", return_value=wide) as gen, \
|
||||
mock.patch.object(gt, "save") as saved:
|
||||
gt.generate_ai_textures("p", "t.png", "m", 1024,
|
||||
reference_path="r.jpg")
|
||||
gen.assert_called_once()
|
||||
img = saved.call_args[0][0]
|
||||
self.assertEqual(img.size, (768, 768))
|
||||
|
||||
def test_plain_results_keep_their_size(self):
|
||||
wide = Image.new("RGB", (1344, 768), (10, 20, 30))
|
||||
with mock.patch.object(gt, "generate_image", return_value=wide), \
|
||||
mock.patch.object(gt, "save") as saved:
|
||||
gt.generate_ai_textures("p", "t.png", "m", 1024)
|
||||
img = saved.call_args[0][0]
|
||||
self.assertEqual(img.size, (1024, 585)) # _fit preserves aspect ratio
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user