Feature timewarp parse date 867 (#951)

* Working on tests for timewarp --parse-date

* Test working for --parse-date

* Refactored date utils out of timewarp.py

* Added timezone to --parse-date, updated tests

* Added cog to README
This commit is contained in:
Rhet Turnbull
2023-01-22 22:35:05 -08:00
committed by GitHub
parent 29968269ff
commit 369fa553e8
28 changed files with 1419 additions and 430 deletions

View File

@@ -5,15 +5,12 @@ import time
import pytest
from click.testing import CliRunner
from osxphotos import PhotosDB
from osxphotos.exiftool import ExifTool
from tests.conftest import (
get_os_version,
)
from tests.conftest import get_os_version
from tests.parse_timewarp_output import parse_compare_exif, parse_inspect_output
# set timezone to avoid issues with comparing dates
os.environ["TZ"] = "US/Pacific"
time.tzset()
@@ -1007,3 +1004,69 @@ def test_function(photoslib, suspend_capture, output_file):
)
output_values = parse_inspect_output(output_file)
assert output_values[0] == expected
@pytest.mark.timewarp
def test_select_palm_tree_1(photoslib, suspend_capture):
"""Force user to select the right photo for following tests"""
assert ask_user_to_make_selection(photoslib, suspend_capture, "palm tree")
@pytest.mark.timewarp
@pytest.mark.skipif(get_os_version()[0] != "13", reason="test requires macOS 13")
def test_parse_date(photoslib, suspend_capture, output_file):
"""Test --parse-date"""
from osxphotos.cli.timewarp import timewarp
expected = TEST_DATA["parse_date"]["expected"]
runner = CliRunner()
result = runner.invoke(
timewarp,
[
"--parse-date",
"^%Y%m%d_%H%M%S",
"--force",
],
terminal_width=TERMINAL_WIDTH,
)
assert result.exit_code == 0
result = runner.invoke(
timewarp,
["--inspect", "--plain", "--force", "-o", output_file],
terminal_width=TERMINAL_WIDTH,
)
output_values = parse_inspect_output(output_file)
assert output_values[0].date_local == expected.date_local
assert output_values[0].date_tz == expected.date_tz
assert output_values[0].tz_offset == expected.tz_offset
@pytest.mark.timewarp
@pytest.mark.skipif(get_os_version()[0] != "13", reason="test requires macOS 13")
def test_parse_date_tz(photoslib, suspend_capture, output_file):
"""Test --parse-date with a timezone"""
from osxphotos.cli.timewarp import timewarp
expected = TEST_DATA["parse_date_tz"]["expected"]
runner = CliRunner()
result = runner.invoke(
timewarp,
[
"--parse-date",
"^%Y%m%d_%H%M%S%z",
"--force",
],
terminal_width=TERMINAL_WIDTH,
)
assert result.exit_code == 0
result = runner.invoke(
timewarp,
["--inspect", "--plain", "--force", "-o", output_file],
terminal_width=TERMINAL_WIDTH,
)
output_values = parse_inspect_output(output_file)
assert output_values[0].date_local == expected.date_local
assert output_values[0].date_tz == expected.date_tz
assert output_values[0].tz_offset == expected.tz_offset