diff --git a/osxphotos/_version.py b/osxphotos/_version.py index a4e25ec8..be4c736c 100644 --- a/osxphotos/_version.py +++ b/osxphotos/_version.py @@ -1,3 +1,3 @@ """ version info """ -__version__ = "0.42.20" \ No newline at end of file +__version__ = "0.42.21" \ No newline at end of file diff --git a/osxphotos/phototemplate.py b/osxphotos/phototemplate.py index 9721fb68..e5ecdafb 100644 --- a/osxphotos/phototemplate.py +++ b/osxphotos/phototemplate.py @@ -4,10 +4,12 @@ import datetime import locale import os import pathlib +import sys from textx import TextXSyntaxError, metamodel_from_file from ._constants import _UNKNOWN_PERSON +from ._version import __version__ from .datetime_formatter import DateTimeFormatter from .exiftool import ExifToolCaching from .path_utils import sanitize_dirname, sanitize_filename, sanitize_pathpart @@ -134,6 +136,8 @@ TEMPLATE_SUBSTITUTIONS = { "{lf}": r"A line feed: '\n', alias for {newline}", "{cr}": r"A carriage return: '\r'", "{crlf}": r"a carriage return + line feed: '\r\n'", + "{osxphotos_version}": f"The osxphotos version, e.g. '{__version__}'", + "{osxphotos_cmd_line}": "The full command line used to run osxphotos" } # Permitted multi-value substitutions (each of these returns None or 1 or more values) @@ -908,6 +912,10 @@ class PhotoTemplate: value = self.photo.uuid elif field in PUNCTUATION: value = PUNCTUATION[field] + elif field == "osxphotos_version": + value = __version__ + elif field == "osxphotos_cmd_line": + value = " ".join(sys.argv) else: # if here, didn't get a match raise ValueError(f"Unhandled template value: {field}") diff --git a/tests/conftest.py b/tests/conftest.py index fdd6d478..b07449f8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -34,7 +34,7 @@ if OS_VER == "15": TEST_LIBRARY = "tests/Test-10.15.7.photoslibrary" else: TEST_LIBRARY = None - pytest.exit("This test suite currently only runs on MacOS Catalina ") + # pytest.exit("This test suite currently only runs on MacOS Catalina ") @pytest.fixture(autouse=True) @@ -59,10 +59,11 @@ def pytest_configure(config): def pytest_collection_modifyitems(config, items): - if config.getoption("--addalbum"): + if config.getoption("--addalbum") and TEST_LIBRARY is not None: # --addalbum given in cli: do not skip addalbum tests (these require interactive test) return - skip_addalbum = pytest.mark.skip(reason="need --addalbum option to run") + + skip_addalbum = pytest.mark.skip(reason="need --addalbum option and MacOS Catalina to run") for item in items: if "addalbum" in item.keywords: item.add_marker(skip_addalbum)