Added --tmpdir, #650 (#651)

This commit is contained in:
Rhet Turnbull
2022-03-02 06:58:23 -08:00
committed by GitHub
parent f132e9a843
commit d8802368fc
20 changed files with 341 additions and 181 deletions

View File

@@ -1384,7 +1384,7 @@ def test_query_exif_case_insensitive(exiftag, exifvalue, uuid_expected):
def test_export():
"""test basic export"""
runner = CliRunner()
cwd = os.getcwd()
# pylint: disable=not-context-manager
@@ -1395,6 +1395,22 @@ def test_export():
assert sorted(files) == sorted(CLI_EXPORT_FILENAMES)
def test_export_tmpdir():
"""test basic export with --tmpdir"""
runner = CliRunner()
cwd = os.getcwd()
tmpdir = TemporaryDirectory()
# pylint: disable=not-context-manager
with runner.isolated_filesystem():
result = runner.invoke(
export,
[os.path.join(cwd, CLI_PHOTOS_DB), ".", "-V", "--tmpdir", tmpdir.name],
)
assert result.exit_code == 0
files = glob.glob("*")
assert sorted(files) == sorted(CLI_EXPORT_FILENAMES)
def test_export_uuid_from_file():
"""Test export with --uuid-from-file"""
@@ -1811,6 +1827,40 @@ def test_export_exiftool():
assert exif[key] == CLI_EXIFTOOL[uuid][key]
@pytest.mark.skipif(exiftool is None, reason="exiftool not installed")
def test_export_exiftool_tmpdir():
"""test --exiftool with --tmpdir"""
runner = CliRunner()
cwd = os.getcwd()
tmpdir = TemporaryDirectory()
# pylint: disable=not-context-manager
with runner.isolated_filesystem():
for uuid in CLI_EXIFTOOL:
result = runner.invoke(
export,
[
os.path.join(cwd, PHOTOS_DB_15_7),
".",
"-V",
"--exiftool",
"--uuid",
f"{uuid}",
"--tmpdir",
tmpdir.name,
],
)
assert result.exit_code == 0
files = glob.glob("*")
assert sorted(files) == sorted([CLI_EXIFTOOL[uuid]["File:FileName"]])
exif = ExifTool(CLI_EXIFTOOL[uuid]["File:FileName"]).asdict()
for key in CLI_EXIFTOOL[uuid]:
if type(exif[key]) == list:
assert sorted(exif[key]) == sorted(CLI_EXIFTOOL[uuid][key])
else:
assert exif[key] == CLI_EXIFTOOL[uuid][key]
@pytest.mark.skipif(exiftool is None, reason="exiftool not installed")
def test_export_exiftool_template_change():
"""Test --exiftool when template changes with --update, #630"""
@@ -6503,7 +6553,7 @@ def test_export_download_missing_preview():
"OSXPHOTOS_TEST_EXPORT" not in os.environ,
reason="Skip if not running on author's personal library.",
)
def test_export_download_missing_preview_applesccript():
def test_export_download_missing_preview_applescript():
"""test --download-missing --preview and applescript download, #564"""
runner = CliRunner()

View File

@@ -1,8 +1,12 @@
""" test FileUtil """
import os
import pathlib
import pytest
from osxphotos.fileutil import FileUtil
TEST_HEIC = "tests/test-images/IMG_3092.heic"
TEST_RAW = "tests/test-images/DSC03584.dng"
@@ -11,6 +15,7 @@ def test_copy_file_valid():
# copy file with valid src, dest
import os.path
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -23,6 +28,7 @@ def test_copy_file_valid():
def test_copy_file_invalid():
# copy file with invalid src
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -36,6 +42,7 @@ def test_hardlink_file_valid():
# hardlink file with valid src, dest
import os.path
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -49,6 +56,7 @@ def test_hardlink_file_valid():
def test_unlink_file():
import os.path
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -63,6 +71,7 @@ def test_unlink_file():
def test_rmdir():
import os.path
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -77,9 +86,10 @@ def test_rmdir():
reason="Skip if running in Github actions, no GPU.",
)
def test_convert_to_jpeg():
""" test convert_to_jpeg """
"""test convert_to_jpeg"""
import pathlib
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -95,9 +105,10 @@ def test_convert_to_jpeg():
reason="Skip if running in Github actions, no GPU.",
)
def test_convert_to_jpeg_quality():
""" test convert_to_jpeg with compression_quality """
"""test convert_to_jpeg with compression_quality"""
import pathlib
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -113,6 +124,7 @@ def test_rename_file():
# rename file with valid src, dest
import pathlib
import tempfile
from osxphotos.fileutil import FileUtil
temp_dir = tempfile.TemporaryDirectory(prefix="osxphotos_")
@@ -125,3 +137,15 @@ def test_rename_file():
assert pathlib.Path(dest2).exists()
assert not pathlib.Path(dest).exists()
def test_tempdir():
"""Test FileUtil.tmpdir"""
tmpdir = FileUtil.tmpdir()
assert pathlib.Path(tmpdir.name).is_dir()
def test_tempdir_context_mgr():
"""Test Fileutil.tmpdir as context manager"""
with FileUtil.tmpdir() as tmpdir_name:
assert pathlib.Path(tmpdir_name).is_dir()
assert not pathlib.Path(tmpdir_name).is_dir()