未验证 提交 1bc77671 编写于 作者: R Roman Donchenko 提交者: GitHub

generate_image_file: don't hardcode the file format (#6538)

It doesn't make much sense to encode the image as JPEG if the given file
name is "image.png". Instead, let PIL select the format based on the
requested file name.
上级 9659f828
......@@ -26,6 +26,6 @@ def generate_images(dst_dir: Path, count: int) -> List[Path]:
dst_dir.mkdir(parents=True, exist_ok=True)
for i in range(count):
filename = dst_dir / f"img_{i}.jpg"
filename.write_bytes(generate_image_file().getvalue())
filename.write_bytes(generate_image_file(filename.name).getvalue())
filenames.append(filename)
return filenames
......@@ -149,7 +149,12 @@ class TestJobUsecases:
filename_pattern="frame-{frame_id}{frame_ext}",
)
assert (self.tmp_path / "frame-0.jpg").is_file()
if quality == "original":
expected_frame_ext = "png"
else:
expected_frame_ext = "jpg"
assert (self.tmp_path / f"frame-0.{expected_frame_ext}").is_file()
assert self.stdout.getvalue() == ""
def test_can_upload_annotations(self, fxt_new_task: Task, fxt_coco_file: Path):
......
......@@ -365,7 +365,12 @@ class TestTaskUsecases:
filename_pattern="frame-{frame_id}{frame_ext}",
)
assert (self.tmp_path / "frame-0.jpg").is_file()
if quality == "original":
expected_frame_ext = "png"
else:
expected_frame_ext = "jpg"
assert (self.tmp_path / f"frame-0.{expected_frame_ext}").is_file()
assert self.stdout.getvalue() == ""
@pytest.mark.parametrize("quality", ("compressed", "original"))
......
......@@ -13,9 +13,9 @@ from shared.fixtures.init import get_server_image_tag
def generate_image_file(filename="image.png", size=(50, 50), color=(0, 0, 0)):
f = BytesIO()
image = Image.new("RGB", size=size, color=color)
image.save(f, "jpeg")
f.name = filename
image = Image.new("RGB", size=size, color=color)
image.save(f)
f.seek(0)
return f
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册