diff --git a/src/hera/__main__.py b/src/hera/__main__.py index ac08c1c73..94f4a946d 100644 --- a/src/hera/__main__.py +++ b/src/hera/__main__.py @@ -25,5 +25,5 @@ def main(argv=None): cappa.invoke(Hera, argv=argv) -if __name__ == "__main__": +if __name__ == "__main__": # pragma: no cover main() diff --git a/src/hera/_cli/base.py b/src/hera/_cli/base.py index 8b9e78092..15f76717d 100644 --- a/src/hera/_cli/base.py +++ b/src/hera/_cli/base.py @@ -2,6 +2,7 @@ from dataclasses import dataclass from pathlib import Path +from typing import Union from cappa import Arg, Subcommands, command from typing_extensions import Annotated @@ -36,7 +37,7 @@ class GenerateYaml: ), ] to: Annotated[ - Path | None, + Union[Path, None], Arg( long=True, help=( diff --git a/tests/cli/test_generate_yaml.py b/tests/cli/test_generate_yaml.py index 114d4f216..eea968b46 100644 --- a/tests/cli/test_generate_yaml.py +++ b/tests/cli/test_generate_yaml.py @@ -1,3 +1,4 @@ +import sys from textwrap import dedent from unittest.mock import mock_open, patch @@ -11,6 +12,12 @@ def get_stdout(capsys): return capsys.readouterr().out +def patch_open(): + if sys.version_info == (3, 10): + return patch("pathlib._NormalAccessor.open", new=mock_open()) + return patch("io.open", new=mock_open()) + + single_workflow_output = dedent( """\ apiVersion: argoproj.io/v1alpha1 @@ -175,7 +182,7 @@ def test_source_file_output_folder(): dest_is_file_patch = patch("pathlib.Path.is_file", return_value=False) makedirs_patch = patch("os.makedirs") - open_patch = patch("io.open", new=mock_open()) + open_patch = patch_open() with source_is_dir_patch, dest_exists_patch, dest_is_file_patch, makedirs_patch, open_patch: cappa.invoke( @@ -202,7 +209,7 @@ def test_source_folder_output_folder(): dest_exists_patch = patch("os.path.exists", return_value=False) makedirs_patch = patch("os.makedirs") - open_patch = patch("io.open", new=mock_open()) + open_patch = patch_open() with source_is_dir_patch, dest_exists_patch, makedirs_patch, open_patch: cappa.invoke(