# -*- coding: utf-8 -*- 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)