1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-26 07:41:33 +03:00

Always save server value in renewal conf file (#6189)

This commit is contained in:
Brad Warren
2018-07-10 14:06:45 -07:00
committed by ohemorange
parent 0672e63176
commit 8a5abb6203
2 changed files with 24 additions and 5 deletions

View File

@@ -239,10 +239,15 @@ def relevant_values(all_values):
:rtype dict:
"""
return dict(
rv = dict(
(option, value)
for option, value in six.iteritems(all_values)
if _relevant(option) and cli.option_was_set(option, value))
# We always save the server value to help with forward compatibility
# and behavioral consistency when versions of Certbot with different
# server defaults are used.
rv["server"] = all_values["server"]
return rv
def lineagename_for_filename(config_filename):
"""Returns the lineagename for a configuration filename.

View File

@@ -544,14 +544,22 @@ class RenewableCertTests(BaseRenewableCertTest):
self.assertFalse(os.path.exists(temp_config_file))
def _test_relevant_values_common(self, values):
option = "rsa_key_size"
defaults = dict((option, cli.flag_default(option))
for option in ("rsa_key_size", "server",))
mock_parser = mock.Mock(args=["--standalone"], verb="certonly",
defaults={option: cli.flag_default(option)})
defaults=defaults)
# make a copy to ensure values isn't modified
values = values.copy()
values.setdefault("server", defaults["server"])
expected_server = values["server"]
from certbot.storage import relevant_values
with mock.patch("certbot.cli.helpful_parser", mock_parser):
# make a copy to ensure values isn't modified
return relevant_values(values.copy())
rv = relevant_values(values)
self.assertIn("server", rv)
self.assertEqual(rv.pop("server"), expected_server)
return rv
def test_relevant_values(self):
"""Test that relevant_values() can reject an irrelevant value."""
@@ -589,6 +597,12 @@ class RenewableCertTests(BaseRenewableCertTest):
self.assertEqual(
self._test_relevant_values_common(values), values)
def test_relevant_values_server(self):
self.assertEqual(
# _test_relevant_values_common handles testing the server
# value and removes it
self._test_relevant_values_common({"server": "example.org"}), {})
@mock.patch("certbot.storage.relevant_values")
def test_new_lineage(self, mock_rv):
"""Test for new_lineage() class method."""