from pathlib import Path import pytest from photools3.metadata_writer import MetadataWriter from test.test_photo import PATHS_DNG_EXAMPLES @pytest.fixture def make_dng_file(tmp_path): def _make(index: int = 0) -> Path: src = PATHS_DNG_EXAMPLES[index] dst = tmp_path / f"copy_{index}_{src.name}" return dst return _make @pytest.fixture def dng_file(make_dng): return make_dng() def test_read_metadata(make_dng_file): """primitive test for `MetadataWriter`""" file_path = make_dng_file() result = MetadataWriter(file_path) assert result @pytest.mark.parametrize("idx", range(len(PATHS_DNG_EXAMPLES))) def test_read_metadata_sidecar_path(make_dng_file, idx): file_path = make_dng_file(idx) metadata_writer = MetadataWriter(file_path) print(metadata_writer.sidecar_path) assert isinstance(metadata_writer.sidecar_path, Path) assert str(metadata_writer.sidecar_path).lower().endswith(".dng.xmp") def test_get_metadata(): # TODO: Parametrized test on querying metadata fields ... def test_set_metadata(): # TODO: Paramtrized test on setting metadata fields ... def test_set_caption_on_empty(): # TODO ... def test_set_caption_on_existing(): # TODO ... def test_set_keywords_on_empty(): # TODO ... def test_set_keywords_on_existing(): # TODO ...