mirror of https://github.com/mongodb/mongo
38 lines
1.2 KiB
Python
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)
|