Пример #1
0
 def test_generate_certificate_if_needed_waits_for_creation(self):
     mock_isfile = self.patch(maas_certificates.os.path, "isfile")
     mock_isfile.side_effect = [False, False, False, True, True]
     mock_sleep = self.patch(maas_certificates, "sleep")
     with NamedLock("certificate"):
         self.assertTrue(maas_certificates.generate_certificate_if_needed())
     self.assertThat(mock_sleep, MockCalledOnce())
Пример #2
0
 def test_generate_certificate_if_needed_checks_cache(self):
     now = datetime.utcnow()
     mock_isfile = self.patch(maas_certificates.os.path, "isfile")
     mock_isfile.return_value = True
     mock_getmtime = self.patch(maas_certificates.os.path, "getmtime")
     mock_getmtime.return_value = now
     mock_open = self.patch(maas_certificates, "open")
     maas_certificates._cert_not_before = now - timedelta(days=182)
     maas_certificates._cert_not_after = now + timedelta(days=182)
     maas_certificates._cert_mtime = now
     self.assertFalse(maas_certificates.generate_certificate_if_needed())
     self.assertThat(mock_open, MockNotCalled())
Пример #3
0
 def test_generate_certificate_if_needed(self):
     self.assertTrue(maas_certificates.generate_certificate_if_needed())
     self.assertTrue(os.path.exists(maas_certificates.MAAS_PRIVATE_KEY))
     self.assertTrue(os.path.exists(maas_certificates.MAAS_PUBLIC_KEY))
     self.assertTrue(os.path.exists(maas_certificates.MAAS_CERTIFICATE))
     with open(maas_certificates.MAAS_CERTIFICATE) as f:
         cert = crypto.load_certificate(crypto.FILETYPE_PEM, f.read())
     self.assertEqual(gethostname(), cert.get_subject().CN)
     self.assertGreaterEqual(
         datetime.utcnow(),
         datetime.strptime(cert.get_notBefore().decode(), "%Y%m%d%H%M%SZ"),
     )
     self.assertGreaterEqual(
         datetime.strptime(cert.get_notAfter().decode(), "%Y%m%d%H%M%SZ"),
         datetime.utcnow() + timedelta(days=364),
     )
Пример #4
0
 def test_generate_certificate_if_needed_does_nothing_if_valid(self):
     maas_certificates.generate_certificate_if_needed()
     old_hash = maas_certificates.get_certificate_fingerprint()
     self.assertFalse(maas_certificates.generate_certificate_if_needed())
     new_hash = maas_certificates.get_certificate_fingerprint()
     self.assertEqual(old_hash, new_hash)
Пример #5
0
 def test_generate_certificate_if_needed_regenerates_if_after(self):
     maas_certificates.generate_certificate_if_needed(not_after=-1)
     old_hash = maas_certificates.get_certificate_fingerprint()
     self.assertTrue(maas_certificates.generate_certificate_if_needed())
     new_hash = maas_certificates.get_certificate_fingerprint()
     self.assertNotEquals(old_hash, new_hash)