pungi/tests/test_config_utils.py
Lubomír Sedlář 32a6415e58 config: Keep known options defined on CLI
If the validation or dumping script is given some options, they should
only be removed if they are not valid. We have to remove the invalid
ones, otherwise that would cause a warning about unknown options.

Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
2019-06-25 15:13:16 +02:00

48 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
try:
import unittest2 as unittest
except ImportError:
import unittest
import argparse
import os
import sys
from parameterized import parameterized
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
from pungi_utils import config_utils
class TestDefineHelpers(unittest.TestCase):
@parameterized.expand(
[
([], {}),
(["foo=bar", "baz=quux"], {"foo": "bar", "baz": "quux"}),
(["foo="], {"foo": ""}),
(["foo==bar"], {"foo": "=bar"}),
]
)
def test_extract_defines(self, input, expected):
self.assertEqual(config_utils.extract_defines(input), expected)
@parameterized.expand(["foo=bar", "foo=", "foo==bar"])
def test_validate_define_correct(self, value):
self.assertEqual(config_utils.validate_definition(value), value)
@parameterized.expand(["foo", "=", "=foo", "1=2"])
def test_validate_define_incorrect(self, value):
with self.assertRaises(argparse.ArgumentTypeError):
config_utils.validate_definition(value)
def test_remove_unknown(self):
conf = {"foo": "bar"}
config_utils.remove_unknown(conf, ["foo"])
self.assertEqual(conf, {})
def test_remove_known(self):
conf = {"release_name": "bar"}
config_utils.remove_unknown(conf, ["release_name"])
self.assertEqual(conf, {"release_name": "bar"})