From ff2aa58496a2dba311a986aae013fab966e7db69 Mon Sep 17 00:00:00 2001 From: Radouane Lahmidi <117352633+rlahmidi@users.noreply.github.com> Date: Wed, 2 Oct 2024 20:40:17 +0200 Subject: [PATCH] FIX save_dependencies functions #14 (#15) --- pytvpaint/george/grg_project.py | 22 ++++++++++++++++++---- pytvpaint/project.py | 8 ++++---- tests/george/test_grg_clip.py | 2 +- tests/george/test_grg_project.py | 19 +++++++++++++++---- tests/test_clip.py | 1 - 5 files changed, 38 insertions(+), 14 deletions(-) diff --git a/pytvpaint/george/grg_project.py b/pytvpaint/george/grg_project.py index ee1bf8f..35a97ce 100644 --- a/pytvpaint/george/grg_project.py +++ b/pytvpaint/george/grg_project.py @@ -369,14 +369,28 @@ def tv_save_palette(palette_path: Path | str) -> None: send_cmd("tv_SavePalette", palette_path.as_posix()) -def tv_project_save_video_dependencies() -> None: +def tv_project_save_video_dependencies( + project_id: str, on_save: bool = True, now: bool = False +) -> int: """Saves current project video dependencies.""" - send_cmd("tv_ProjectSaveVideoDependencies") + args: list[Any] = [project_id] + if not now: + args.append(int(on_save)) + return int( + send_cmd("tv_ProjectSaveVideoDependencies", *args, error_values=[-1, -2]) + ) -def tv_project_save_audio_dependencies() -> None: +def tv_project_save_audio_dependencies(project_id: str, on_save: bool = True) -> int: """Saves current project audio dependencies.""" - send_cmd("tv_ProjectSaveAudioDependencies") + return int( + send_cmd( + "tv_ProjectSaveAudioDependencies", + project_id, + int(on_save), + error_values=[-1, -2], + ) + ) def tv_sound_project_info(project_id: str, track_index: int) -> TVPSound: diff --git a/pytvpaint/project.py b/pytvpaint/project.py index 6ed680d..709ae32 100644 --- a/pytvpaint/project.py +++ b/pytvpaint/project.py @@ -701,11 +701,11 @@ def save_palette(self, save_path: Path | str | None = None) -> None: george.tv_save_project(save_path) @set_as_current - def save_video_dependencies(self) -> None: + def save_video_dependencies(self, on_save: bool = True, now: bool = True) -> None: """Saves the video dependencies.""" - george.tv_project_save_video_dependencies() + george.tv_project_save_video_dependencies(self.id, on_save, now) @set_as_current - def save_audio_dependencies(self) -> None: + def save_audio_dependencies(self, on_save: bool = True) -> None: """Saves audio dependencies.""" - george.tv_project_save_audio_dependencies() + george.tv_project_save_audio_dependencies(self.id, on_save) diff --git a/tests/george/test_grg_clip.py b/tests/george/test_grg_clip.py index a09b069..3e97966 100644 --- a/tests/george/test_grg_clip.py +++ b/tests/george/test_grg_clip.py @@ -541,7 +541,7 @@ def test_tv_save_sequence( clip = tv_clip_info(tv_clip_current_id()) start, end = ( (mark_in, mark_out) - if mark_in and mark_out + if mark_in is not None and mark_out is not None else (clip.first_frame, clip.last_frame) ) diff --git a/tests/george/test_grg_project.py b/tests/george/test_grg_project.py index 69cb4cf..b0491c7 100644 --- a/tests/george/test_grg_project.py +++ b/tests/george/test_grg_project.py @@ -396,12 +396,23 @@ def test_tv_save_palette_wrong_path(tmp_path: Path) -> None: tv_save_palette(tmp_path / "out" / "palette.tvpx") -def test_tv_project_save_video_dependencies() -> None: - tv_project_save_video_dependencies() +def test_tv_project_save_video_dependencies(test_project: TVPProject) -> None: + with pytest.raises(GeorgeError): + tv_project_save_video_dependencies("") + + assert tv_project_save_video_dependencies(test_project.id) == 0 + assert tv_project_save_video_dependencies(test_project.id, True, False) == 1 + assert tv_project_save_video_dependencies(test_project.id, True, True) == 1 + assert tv_project_save_video_dependencies(test_project.id, False, True) == 1 -def test_tv_project_save_audio_dependencies() -> None: - tv_project_save_audio_dependencies() +def test_tv_project_save_audio_dependencies(test_project: TVPProject) -> None: + with pytest.raises(GeorgeError): + tv_project_save_audio_dependencies("") + + assert tv_project_save_audio_dependencies(test_project.id) == 0 + assert tv_project_save_audio_dependencies(test_project.id, True) == 1 + assert tv_project_save_audio_dependencies(test_project.id, False) == 1 def test_tv_sound_project_info(test_project: TVPProject, wav_file: Path) -> None: diff --git a/tests/test_clip.py b/tests/test_clip.py index 403be8f..c40c68f 100644 --- a/tests/test_clip.py +++ b/tests/test_clip.py @@ -338,7 +338,6 @@ def test_clip_render_mp4( expected: str, error: type[Exception] | None, ) -> None: - if error: with pytest.raises(error): test_clip_obj.render(tmp_path / out, start, end, use_camera=use_camera)