warc2zim/tests/test_converter.py

52 lines
1.6 KiB
Python

import tempfile
import pytest
from warc2zim.converter import Converter
from warc2zim.main import _create_arguments_parser
@pytest.mark.parametrize(
"inputs, warc_files",
[
pytest.param([], [], id="empty_array"),
pytest.param(["foo.warc.gz"], ["foo.warc.gz"], id="one_file"),
pytest.param(
[
"rec-f9c30d949953-20240724035746176-0.warc.gz",
"rec-f9c30d949953-20240724045846176-0.warc.gz",
],
None, # no change
id="two_already_sorted",
),
pytest.param(
[
"rec-f9c30d949953-20240724045846176-0.warc.gz",
"rec-f9c30d949953-20240724035746176-0.warc.gz",
],
[
"rec-f9c30d949953-20240724035746176-0.warc.gz",
"rec-f9c30d949953-20240724045846176-0.warc.gz",
],
id="two_not_sorted",
),
pytest.param(
[
"aaaa/rec-f9c30d949953-20240724045846176-0.warc.gz",
"bbb/rec-f9c30d949953-20240724035746176-0.warc.gz",
],
[
"bbb/rec-f9c30d949953-20240724035746176-0.warc.gz",
"aaaa/rec-f9c30d949953-20240724045846176-0.warc.gz",
],
id="two_not_sorted_in_random_unsorted_dirs",
),
],
)
def test_sort_warc_files(inputs, warc_files):
parser = _create_arguments_parser()
tmpdir = tempfile.mkdtemp()
args = parser.parse_args(["--name", "foo", "--output", tmpdir])
args.inputs = inputs
conv = Converter(args)
assert conv.warc_files == (warc_files if warc_files else inputs)