123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import io
- import pytest
- import salt.modules.nilrt_ip as nilrt_ip
- from tests.support.mock import patch
- @pytest.fixture(autouse=True)
- def setup_loader():
- setup_loader_modules = {nilrt_ip: {}}
- with pytest.helpers.loader_mock(setup_loader_modules) as loader_mock:
- yield loader_mock
- @pytest.fixture
- def patched_config_file():
- config_file = io.StringIO(
- """
- [some_section]
- name = thing
- fnord = bar
- icanhazquotes = "this string is quoted"
- icannothazquotes = this string is unquoted
- number_value = 42
- """
- )
- with patch("salt.utils.files.fopen", return_value=config_file):
- yield
- def test_when_config_has_quotes_around_string_they_should_be_removed(
- patched_config_file,
- ):
- expected_value = "this string is quoted"
- option = "icanhazquotes"
- actual_value = nilrt_ip._load_config("some_section", [option])[option]
- assert actual_value == expected_value
- def test_when_config_has_no_quotes_around_string_it_should_be_returned_as_is(
- patched_config_file,
- ):
- expected_value = "this string is unquoted"
- option = "icannothazquotes"
- actual_value = nilrt_ip._load_config("some_section", [option])[option]
- assert actual_value == expected_value
- @pytest.mark.parametrize(
- "default_value",
- [
- 42,
- -99.9,
- ('"', "some value", 42, '"'),
- ['"', "a weird list of values", '"'],
- {"this": "dictionary", "has": "multiple values", 0: '"', -1: '"'},
- ],
- )
- def test_when_default_value_is_not_a_string_and_option_is_missing_the_default_value_should_be_returned(
- patched_config_file, default_value
- ):
- option = "non existent option"
- actual_value = nilrt_ip._load_config(
- "some_section", options=[option], default_value=default_value
- )[option]
- assert actual_value == default_value
|