diff --git a/certbot/renewal.py b/certbot/renewal.py index 23dbe191b..6678d0247 100644 --- a/certbot/renewal.py +++ b/certbot/renewal.py @@ -32,6 +32,8 @@ INT_CONFIG_ITEMS = ["rsa_key_size", "tls_sni_01_port", "http01_port"] STR_CONFIG_ITEMS = ["config_dir", "logs_dir", "work_dir", "user_agent", "server", "account", "authenticator", "installer", "standalone_supported_challenges", "renew_hook"] +CONFIG_ITEMS = set(itertools.chain( + BOOL_CONFIG_ITEMS, INT_CONFIG_ITEMS, STR_CONFIG_ITEMS)) def _reconstitute(config, full_path): diff --git a/certbot/storage.py b/certbot/storage.py index e4fc21a85..4095ba862 100644 --- a/certbot/storage.py +++ b/certbot/storage.py @@ -183,9 +183,8 @@ def _relevant(option): from certbot import renewal from certbot.plugins import disco as plugins_disco plugins = list(plugins_disco.PluginsRegistry.find_all()) - return (option in renewal.STR_CONFIG_ITEMS - or option in renewal.INT_CONFIG_ITEMS - or any(option.startswith(x + "_") for x in plugins)) + return (option in renewal.CONFIG_ITEMS or + any(option.startswith(x + "_") for x in plugins)) def relevant_values(all_values): diff --git a/certbot/tests/storage_test.py b/certbot/tests/storage_test.py index a1fda6535..f52f31d3d 100644 --- a/certbot/tests/storage_test.py +++ b/certbot/tests/storage_test.py @@ -551,7 +551,8 @@ class RenewableCertTests(BaseRenewableCertTest): from certbot.storage import relevant_values with mock.patch("certbot.cli.helpful_parser", mock_parser): - return relevant_values(values) + # make a copy to ensure values isn't modified + return relevant_values(values.copy()) def test_relevant_values(self): """Test that relevant_values() can reject an irrelevant value.""" @@ -567,10 +568,18 @@ class RenewableCertTests(BaseRenewableCertTest): def test_relevant_values_nondefault(self): """Test that relevant_values() can retain a non-default value.""" values = {"rsa_key_size": 12} - # A copy is given to _test_relevant_values_common - # to make sure values isn't modified by the method self.assertEqual( - self._test_relevant_values_common(values.copy()), values) + self._test_relevant_values_common(values), values) + + def test_relevant_values_bool(self): + values = {"allow_subset_of_names": True} + self.assertEqual( + self._test_relevant_values_common(values), values) + + def test_relevant_values_str(self): + values = {"authenticator": "apache"} + self.assertEqual( + self._test_relevant_values_common(values), values) @mock.patch("certbot.storage.relevant_values") def test_new_lineage(self, mock_rv):