# -*- coding: utf-8 -*- from unittest import mock import os import six from pungi.scripts.config_validate import cli_main from tests import helpers HERE = os.path.abspath(os.path.dirname(__file__)) DUMMY_CONFIG = os.path.join(HERE, "data/dummy-pungi.conf") SCHEMA_OVERRIDE = os.path.join(HERE, "data/dummy-override.json") class ConfigValidateScriptTest(helpers.PungiTestCase): @mock.patch("sys.argv", new=["pungi-config-validate", DUMMY_CONFIG]) @mock.patch("sys.stderr", new_callable=six.StringIO) @mock.patch("sys.stdout", new_callable=six.StringIO) def test_validate_dummy_config(self, stdout, stderr): cli_main() self.assertEqual("", stdout.getvalue()) self.assertEqual("", stderr.getvalue()) @mock.patch( "sys.argv", new=[ "pungi-config-validate", DUMMY_CONFIG, "--schema-override", SCHEMA_OVERRIDE, ], ) @mock.patch("sys.stderr", new_callable=six.StringIO) @mock.patch("sys.stdout", new_callable=six.StringIO) @mock.patch("sys.exit") def test_schema_override(self, exit, stdout, stderr): cli_main() self.assertTrue( stdout.getvalue().startswith( "Failed validation in pkgset_source: 'repos' is not one of" ) ) self.assertEqual("", stderr.getvalue()) exit.assert_called_once_with(1)