From d8663fbbc0e90bbdd54ae5a5bbe843c4ec16687e Mon Sep 17 00:00:00 2001 From: James Kasten Date: Mon, 17 Aug 2015 11:30:39 -0700 Subject: [PATCH] Fix #690 --- letsencrypt/reverter.py | 6 +++++- letsencrypt/tests/reverter_test.py | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/letsencrypt/reverter.py b/letsencrypt/reverter.py index 363de65f4..f2281ff5e 100644 --- a/letsencrypt/reverter.py +++ b/letsencrypt/reverter.py @@ -75,7 +75,11 @@ class Reverter(object): backups = os.listdir(self.config.backup_dir) backups.sort() - if len(backups) < rollback: + if len(backups) == 0: + logger.warning( + "Let's Encrypt hasn't modified your configuration, so rollback " + "isn't available.") + elif len(backups) < rollback: logger.warning("Unable to rollback %d checkpoints, only %d exist", rollback, len(backups)) diff --git a/letsencrypt/tests/reverter_test.py b/letsencrypt/tests/reverter_test.py index 59a7e4d9a..62c47f8d6 100644 --- a/letsencrypt/tests/reverter_test.py +++ b/letsencrypt/tests/reverter_test.py @@ -343,9 +343,16 @@ class TestFullCheckpointsReverter(unittest.TestCase): @mock.patch("letsencrypt.reverter.logger") def test_rollback_too_many(self, mock_logger): + # Test no exist warning... self.reverter.rollback_checkpoints(1) self.assertEqual(mock_logger.warning.call_count, 1) + # Test Generic warning + mock_logger.warning.call_count = 0 + self._setup_three_checkpoints() + self.reverter.rollback_checkpoints(4) + self.assertEqual(mock_logger.warning.call_count, 1) + def test_multi_rollback(self): config3 = self._setup_three_checkpoints() self.reverter.rollback_checkpoints(3)