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

Consolidate and shorten some renewer tests

This commit is contained in:
Seth Schoen
2015-05-14 14:59:24 -07:00
parent c951429895
commit 183b49fbc2

View File

@@ -56,14 +56,10 @@ class RenewableCertTests(unittest.TestCase):
def test_initialization(self):
self.assertEqual(self.test_rc.lineagename, "example.org")
self.assertEqual(self.test_rc.cert, os.path.join(
self.tempdir, "live", "example.org", "cert.pem"))
self.assertEqual(self.test_rc.privkey, os.path.join(
self.tempdir, "live", "example.org", "privkey.pem"))
self.assertEqual(self.test_rc.chain, os.path.join(
self.tempdir, "live", "example.org", "chain.pem"))
self.assertEqual(self.test_rc.fullchain, os.path.join(
self.tempdir, "live", "example.org", "fullchain.pem"))
for kind in ALL_FOUR:
self.assertEqual(
self.test_rc.__getattribute__(kind), os.path.join(
self.tempdir, "live", "example.org", kind + ".pem"))
def test_renewal_bad_config(self):
"""Test that the RenewableCert constructor will complain if
@@ -292,32 +288,25 @@ class RenewableCertTests(unittest.TestCase):
else:
self.assertFalse(self.test_rc.has_pending_deployment())
def test_notbefore(self):
def _test_notafterbefore(self, function, timestamp):
test_cert = pkg_resources.resource_string(
"letsencrypt.tests", "testdata/cert.pem")
os.symlink(os.path.join("..", "..", "archive", "example.org",
"cert12.pem"), self.test_rc.cert)
with open(self.test_rc.cert, "w") as f:
f.write(test_cert)
desired_time = datetime.datetime.utcfromtimestamp(1418337285)
desired_time = datetime.datetime.utcfromtimestamp(timestamp)
desired_time = desired_time.replace(tzinfo=pytz.UTC)
for result in (self.test_rc.notbefore(), self.test_rc.notbefore(12)):
for result in (function(), function(12)):
self.assertEqual(result, desired_time)
self.assertEqual(result.utcoffset(), datetime.timedelta(0))
def test_notbefore(self):
self._test_notafterbefore(self.test_rc.notbefore, 1418337285)
# 2014-12-11 22:34:45+00:00 = Unix time 1418337285
def test_notafter(self):
test_cert = pkg_resources.resource_string(
"letsencrypt.tests", "testdata/cert.pem")
os.symlink(os.path.join("..", "..", "archive", "example.org",
"cert12.pem"), self.test_rc.cert)
with open(self.test_rc.cert, "w") as f:
f.write(test_cert)
desired_time = datetime.datetime.utcfromtimestamp(1418942085)
desired_time = desired_time.replace(tzinfo=pytz.UTC)
for result in (self.test_rc.notafter(), self.test_rc.notafter(12)):
self.assertEqual(result, desired_time)
self.assertEqual(result.utcoffset(), datetime.timedelta(0))
self._test_notafterbefore(self.test_rc.notafter, 1418942085)
# 2014-12-18 22:34:45+00:00 = Unix time 1418942085
@mock.patch("letsencrypt.storage.datetime")
@@ -345,46 +334,32 @@ class RenewableCertTests(unittest.TestCase):
f.write(test_cert)
mock_datetime.timedelta = datetime.timedelta
# 2014-12-13 12:00:00+00:00 (about 5 days prior to expiry)
sometime = datetime.datetime.utcfromtimestamp(1418472000)
mock_datetime.datetime.utcnow.return_value = sometime
# Times that should result in autorenewal/autodeployment
for when in ("2 months", "1 week"):
self.test_rc.configuration["deploy_before_expiry"] = when
self.test_rc.configuration["renew_before_expiry"] = when
self.assertTrue(self.test_rc.should_autodeploy())
self.assertTrue(self.test_rc.should_autorenew())
# Times that should not
for when in ("4 days", "2 days"):
self.test_rc.configuration["deploy_before_expiry"] = when
self.test_rc.configuration["renew_before_expiry"] = when
self.assertFalse(self.test_rc.should_autodeploy())
self.assertFalse(self.test_rc.should_autorenew())
# 2009-05-01 12:00:00+00:00 (about 5 years prior to expiry)
sometime = datetime.datetime.utcfromtimestamp(1241179200)
mock_datetime.datetime.utcnow.return_value = sometime
# Times that should result in autorenewal/autodeployment
for when in ("7 years", "11 years 2 months"):
self.test_rc.configuration["deploy_before_expiry"] = when
self.test_rc.configuration["renew_before_expiry"] = when
self.assertTrue(self.test_rc.should_autodeploy())
self.assertTrue(self.test_rc.should_autorenew())
# Times that should not
for when in ("8 hours", "2 days", "40 days", "9 months"):
self.test_rc.configuration["deploy_before_expiry"] = when
self.test_rc.configuration["renew_before_expiry"] = when
self.assertFalse(self.test_rc.should_autodeploy())
self.assertFalse(self.test_rc.should_autorenew())
# 2015-01-01 (after expiry has already happened, so all intervals
# should result in autorenewal/autodeployment)
sometime = datetime.datetime.utcfromtimestamp(1420070400)
mock_datetime.datetime.utcnow.return_value = sometime
for when in ("0 seconds", "10 seconds", "10 minutes", "10 weeks",
"10 months", "10 years", "300 months"):
self.test_rc.configuration["deploy_before_expiry"] = when
self.test_rc.configuration["renew_before_expiry"] = when
self.assertTrue(self.test_rc.should_autodeploy())
self.assertTrue(self.test_rc.should_autorenew())
for (current_time, interval, result) in [
# 2014-12-13 12:00:00+00:00 (about 5 days prior to expiry)
# Times that should result in autorenewal/autodeployment
(1418472000, "2 months", True), (1418472000, "1 week", True),
# Times that should not
(1418472000, "4 days", False), (1418472000, "2 days", False),
# 2009-05-01 12:00:00+00:00 (about 5 years prior to expiry)
# Times that should result in autorenewal/autodeployment
(1241179200, "7 years", True),
(1241179200, "11 years 2 months", True),
# Times that should not
(1241179200, "8 hours", False), (1241179200, "2 days", False),
(1241179200, "40 days", False), (1241179200, "9 months", False),
# 2015-01-01 (after expiry has already happened, so all intervals
# should result in autorenewal/autodeployment)
(1420070400, "0 seconds", True), (1420070400, "10 seconds", True),
(1420070400, "10 minutes", True), (1420070400, "10 weeks", True),
(1420070400, "10 months", True), (1420070400, "10 years", True),
(1420070400, "300 months", True), ]:
sometime = datetime.datetime.utcfromtimestamp(current_time)
mock_datetime.datetime.utcnow.return_value = sometime
self.test_rc.configuration["deploy_before_expiry"] = interval
self.test_rc.configuration["renew_before_expiry"] = interval
self.assertEqual(self.test_rc.should_autodeploy(), result)
self.assertEqual(self.test_rc.should_autorenew(), result)
def test_should_autodeploy(self):
"""Test should_autodeploy() on the basis of reasons other than