mongo/buildscripts/tests/util/test_read_config.py

38 lines
1.2 KiB
Python

"""Unit tests for the util/read_config.py file."""
import unittest
import mock
from buildscripts.util import read_config
class TestGetConfigValue(unittest.TestCase):
def test_undefined_values_return_none(self):
value = read_config.get_config_value("unknown", {}, {})
self.assertEqual(None, value)
def test_default_can_be_specified(self):
value = read_config.get_config_value("option", {}, {}, default="default")
self.assertEqual("default", value)
def test_exception_throw_for_missing_required(self):
self.assertRaises(KeyError, read_config.get_config_value, "missing", {}, {}, required=True)
def test_config_file_value_is_used(self):
value = read_config.get_config_value(
"option", {}, {"option": "value 0"}, default="default", required=True
)
self.assertEqual("value 0", value)
def test_cmdline_value_is_used(self):
cmdline_mock = mock.Mock
cmdline_mock.option = "cmdline value"
value = read_config.get_config_value(
"option", cmdline_mock, {"option": "value 0"}, default="default", required=True
)
self.assertEqual("cmdline value", value)