|
| 1 | +# Copyright OpenSearch Contributors |
| 2 | +# SPDX-License-Identifier: Apache-2.0 |
| 3 | +# |
| 4 | +# The OpenSearch Contributors require contributions made to |
| 5 | +# this file be licensed under the Apache-2.0 license or a |
| 6 | +# compatible open source license. |
| 7 | + |
| 8 | + |
| 9 | +import unittest |
| 10 | +from typing import Any |
| 11 | +from unittest.mock import Mock, patch |
| 12 | + |
| 13 | +import pytest |
| 14 | +from pytest import CaptureFixture |
| 15 | + |
| 16 | +from src.run_validation import main |
| 17 | +from src.validation_workflow.validation_args import ValidationArgs |
| 18 | + |
| 19 | + |
| 20 | +class TestRunValidation(unittest.TestCase): |
| 21 | + |
| 22 | + @pytest.fixture(autouse=True) |
| 23 | + def getCapfd(self, capfd: CaptureFixture) -> None: |
| 24 | + self.capfd = capfd |
| 25 | + |
| 26 | + @patch("argparse._sys.argv", ["run_validation.py", "--help"]) |
| 27 | + def test_usage(self, *mocks: Any) -> None: |
| 28 | + with self.assertRaises(SystemExit): |
| 29 | + main() |
| 30 | + |
| 31 | + out, _ = self.capfd.readouterr() |
| 32 | + self.assertTrue(out.startswith("usage:")) |
| 33 | + |
| 34 | + @patch("argparse._sys.argv", ["run_validation.py", "--version", "1.3.6"]) |
| 35 | + @patch("src.validation_workflow.validation_tar.ValidationTar.download_artifacts", return_value=True) |
| 36 | + @patch("run_validation.main", return_value=0) |
| 37 | + def test_main_default(self, mock_tar: Mock, *mocks: Any) -> None: |
| 38 | + self.assertEqual(ValidationArgs().version, "1.3.6") |
| 39 | + self.assertEqual(ValidationArgs().distribution, "tar") |
| 40 | + self.assertNotEqual(ValidationArgs().distribution, "rpm") |
| 41 | + |
| 42 | + @patch("argparse._sys.argv", ["run_validation.py", "--version", "2.1.0", "--distribution", "rpm"]) |
| 43 | + @patch("src.validation_workflow.validation_rpm.ValidationRpm.download_artifacts", return_value=True) |
| 44 | + @patch("run_validation.main", return_value=0) |
| 45 | + def test_main_rpm(self, mock_tar: Mock, *mocks: Any) -> None: |
| 46 | + self.assertEqual(ValidationArgs().version, "2.1.0") |
| 47 | + self.assertEqual(ValidationArgs().distribution, "rpm") |
| 48 | + self.assertNotEqual(ValidationArgs().distribution, "tar") |
| 49 | + |
| 50 | + @patch("argparse._sys.argv", ["run_validation.py", "--version", "2.1.0", "--distribution", "yum"]) |
| 51 | + @patch("src.validation_workflow.validation_yum.ValidationYum.download_artifacts", return_value=True) |
| 52 | + @patch("run_validation.main", return_value=0) |
| 53 | + def test_main_yum(self, mock_tar: Mock, *mocks: Any) -> None: |
| 54 | + self.assertEqual(ValidationArgs().version, "2.1.0") |
| 55 | + self.assertEqual(ValidationArgs().distribution, "yum") |
| 56 | + self.assertNotEqual(ValidationArgs().distribution, "tar") |
0 commit comments