47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
|
# -*- 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)
|