diff --git a/src/ytdl_sub/validators/string_datetime.py b/src/ytdl_sub/validators/string_datetime.py index 69f6bb95..ef97dfea 100644 --- a/src/ytdl_sub/validators/string_datetime.py +++ b/src/ytdl_sub/validators/string_datetime.py @@ -22,7 +22,7 @@ class StringDatetimeValidator(OverridesStringFormatterValidator): def apply_formatter(self, variable_dict: Dict[str, str]) -> str: output = super().apply_formatter(variable_dict) try: - _ = datetime_from_str(self._value) + _ = datetime_from_str(output) except Exception as exc: raise self._validation_exception(f"Invalid datetime string: {str(exc)}") return output diff --git a/tests/unit/config/test_preset.py b/tests/unit/config/test_preset.py index 8cf6f353..fd32204e 100644 --- a/tests/unit/config/test_preset.py +++ b/tests/unit/config/test_preset.py @@ -135,6 +135,24 @@ class TestPreset: "key-3": "this-preset", } + def test_preset_datetime_with_override(self, config_file, youtube_video, output_options): + preset = Preset( + config=config_file, + name="test", + value={ + "youtube": youtube_video, + "output_options": dict( + output_options, + **{"maintain_download_archive": True, "keep_files_after": "today-{ttl}"} + ), + "overrides": {"ttl": "2months"}, + }, + ) + assert ( + preset.overrides.apply_formatter(formatter=preset.output_options.keep_files_after) + == "today-2months" + ) + @pytest.mark.parametrize( "parent_preset", ["preset_self_loop", "preset_loop_0", "preset_loop_1"] )