From 696ce6e47927a54c0b8220a79dd5b8ae9ef259a7 Mon Sep 17 00:00:00 2001 From: Seth Schoen Date: Wed, 17 Oct 2018 04:11:27 -0700 Subject: [PATCH] Test coverage for random sleep() logic in main.py --- certbot/tests/main_test.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/certbot/tests/main_test.py b/certbot/tests/main_test.py index 62043c8f1..659762b12 100644 --- a/certbot/tests/main_test.py +++ b/certbot/tests/main_test.py @@ -1079,6 +1079,26 @@ class MainTest(test_util.ConfigTestCase): # pylint: disable=too-many-public-met args = ["renew", "--reuse-key"] self._test_renewal_common(True, [], args=args, should_renew=True, reuse_key=True) + @mock.patch('sys.stdin') + def test_noninteractive_renewal_delay(self, stdin): + stdin.isatty.return_value = False + test_util.make_lineage(self.config.config_dir, 'sample-renewal.conf') + args = ["renew", "--dry-run", "-tvv"] + self._test_renewal_common(True, [], args=args, should_renew=True) + self.assertEqual(self.mock_sleep.call_count, 1) + # in main.py: + # sleep_time = random.randint(1, 60*8) + sleep_call_arg = self.mock_sleep.call_args[0][0] + self.assertTrue(1 <= sleep_call_arg <= 60*8) + + @mock.patch('sys.stdin') + def test_interactive_no_renewal_delay(self, stdin): + stdin.isatty.return_value = True + test_util.make_lineage(self.config.config_dir, 'sample-renewal.conf') + args = ["renew", "--dry-run", "-tvv"] + self._test_renewal_common(True, [], args=args, should_renew=True) + self.assertEqual(self.mock_sleep.call_count, 0) + @mock.patch('certbot.renewal.should_renew') def test_renew_skips_recent_certs(self, should_renew): should_renew.return_value = False