- Implemented caching for tool availability and versions. - Added functions to check for ExifTool and FFprobe availability. - Included version satisfaction checks against minimum required versions. - Created utility functions for parsing boolean and float values from environment variables. - Introduced shared utilities for error message sanitization and logging with emoji indicators. - Established a Result pattern for error handling without exceptions. - Added scan throttling helpers to manage background scans efficiently. - Implemented time utilities for timestamps and performance measurement. - Defined shared types, enums, and constants for consistent error handling and file classification. - Created version management utilities to retrieve version information from pyproject.toml. - Developed installation script for runtime dependencies. - Added tests for ExifTool batch processing and various configuration scenarios. - Implemented tests for version route aliases and runtime output root configuration.
16 lines
603 B
Python
16 lines
603 B
Python
from mjr_am_backend.tool_detect import parse_tool_version, version_satisfies_minimum
|
|
|
|
|
|
def test_parse_tool_version_extracts_digits() -> None:
|
|
assert parse_tool_version("ExifTool Version Number : 12.40") == (12, 40)
|
|
assert parse_tool_version("ffprobe version 6.0.0") == (6, 0, 0)
|
|
assert parse_tool_version("") == ()
|
|
|
|
|
|
def test_version_satisfies_minimum_logic() -> None:
|
|
assert version_satisfies_minimum("12.40", "12.20")
|
|
assert not version_satisfies_minimum("12.15", "12.20")
|
|
assert not version_satisfies_minimum(None, "1.0")
|
|
assert version_satisfies_minimum("6.0.0", "")
|
|
|