Skip to content

Commit 7b0ffb0

Browse files
Fix tests
1 parent df7cc45 commit 7b0ffb0

2 files changed

Lines changed: 28 additions & 30 deletions

File tree

perdoo/comic/metadata/comic_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ def story_arc_list(self, value: list[str]) -> None:
278278
self.story_arc = list_to_str(value=value)
279279

280280
def get_filename(self, settings: Naming) -> str:
281-
from perdoo.metadata.metron_info import Format # noqa: PLC0415
281+
from perdoo.comic.metadata.metron_info import Format # noqa: PLC0415
282282

283283
return self.evaluate_pattern(
284284
pattern_map=PATTERN_MAP,

tests/comic_test.py

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,37 @@
1+
import tarfile
12
from pathlib import Path
23
from unittest.mock import MagicMock
34

45
import pytest
6+
from zipremove import ZipFile
57

68
from perdoo.comic import Comic
7-
from perdoo.comic.errors import ComicMetadataError
89
from perdoo.comic.metadata import ComicInfo, MetronInfo
910
from perdoo.comic.metadata.metron_info import Series
1011
from perdoo.settings import Naming
1112

1213

1314
@pytest.fixture
14-
def cbz_comic(tmp_path: Path) -> Comic:
15-
file_path = tmp_path / "test.cbz"
16-
file_path.touch()
17-
return Comic(file=file_path)
15+
def image_file(tmp_path: Path) -> Path:
16+
filepath = tmp_path / "page1.jpg"
17+
filepath.write_bytes(b"Fake image")
18+
return filepath
1819

1920

2021
@pytest.fixture
21-
def cbt_comic(tmp_path: Path) -> Comic:
22-
file_path = tmp_path / "test.cbt"
23-
file_path.touch()
24-
return Comic(file=file_path)
22+
def cbz_comic(tmp_path: Path, image_file: Path) -> Comic:
23+
filepath = tmp_path / "test.cbz"
24+
with ZipFile(filepath, "w") as archive:
25+
archive.write(image_file)
26+
return Comic(filepath=filepath)
27+
28+
29+
@pytest.fixture
30+
def cbt_comic(tmp_path: Path, image_file: Path) -> Comic:
31+
filepath = tmp_path / "test.cbt"
32+
with tarfile.open(filepath, "w:gz") as archive:
33+
archive.add(image_file)
34+
return Comic(filepath=filepath)
2535

2636

2737
@pytest.fixture
@@ -35,24 +45,19 @@ def comic_info() -> ComicInfo:
3545

3646

3747
def test_convert_to_cbz(cbt_comic: Comic) -> None:
38-
cbt_comic.convert(extension="cbz")
39-
assert cbt_comic.path.suffix == ".cbz"
40-
41-
42-
def test_convert_to_cbt(cbz_comic: Comic) -> None:
43-
cbz_comic.convert(extension="cbt")
44-
assert cbz_comic.path.suffix == ".cbt"
48+
cbt_comic.convert_to(extension="cbz")
49+
assert cbt_comic.filepath.suffix == ".cbz"
4550

4651

4752
def test_clean_archive(cbz_comic: Comic) -> None:
48-
cbz_comic._archiver.get_filename_list = MagicMock( # noqa: SLF001
53+
cbz_comic.archive.list_filenames = MagicMock(
4954
return_value=["image1.jpg", "info.txt", "ComicInfo.xml", "cover.png"]
5055
)
51-
cbz_comic._archiver.remove_files = MagicMock() # noqa: SLF001
56+
cbz_comic.archive.remove_file = MagicMock()
5257

5358
cbz_comic.clean_archive()
54-
cbz_comic._archiver.remove_files.assert_called_once() # noqa: SLF001
55-
cbz_comic._archiver.remove_files.assert_called_once_with(filename_list=["info.txt"]) # noqa: SLF001
59+
cbz_comic.archive.remove_file.assert_called_once()
60+
cbz_comic.archive.remove_file.assert_called_once_with(filename="info.txt")
5661

5762

5863
def test_write_comicinfo(cbz_comic: Comic, comic_info: ComicInfo) -> None:
@@ -67,13 +72,6 @@ def test_write_metroninfo(cbz_comic: Comic, metron_info: MetronInfo) -> None:
6772
assert cbz_comic.metron_info == metron_info
6873

6974

70-
def test_write_null_metadata(cbz_comic: Comic) -> None:
71-
with pytest.raises(ComicMetadataError):
72-
cbz_comic.write_metadata(metadata=None)
73-
assert cbz_comic.comic_info is None
74-
assert cbz_comic.metron_info is None
75-
76-
7775
def test_write_metadata_override(cbz_comic: Comic, metron_info: MetronInfo) -> None:
7876
metadata_copy = metron_info.model_copy(deep=True)
7977
metadata_copy.series.volume = 2
@@ -87,5 +85,5 @@ def test_write_metadata_override(cbz_comic: Comic, metron_info: MetronInfo) -> N
8785

8886
def test_rename(cbz_comic: Comic, metron_info: MetronInfo) -> None:
8987
cbz_comic.write_metadata(metadata=metron_info)
90-
cbz_comic.rename(naming=Naming(), output_folder=cbz_comic.path.parent)
91-
assert cbz_comic.path.name == "Test-Series-v1_#.cbz"
88+
cbz_comic.rename(naming=Naming(), output_folder=cbz_comic.filepath.parent)
89+
assert cbz_comic.filepath.name == "Test-Series-v1_#.cbz"

0 commit comments

Comments
 (0)