pungi/tests/test_config_validate_script.py

47 lines
1.4 KiB
Python

# -*- 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)