Coverage for tests/staging_test_acme_account_rollover.py: 82%
44 statements
« prev ^ index » next coverage.py v6.5.0, created at 2024-05-24 19:15 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2024-05-24 19:15 +0000
1"""Test acme_account_rollover script with real ACME server"""
2import unittest
3import os
4import configparser
5import acme_dns_tiny
6from tests.config_factory import generate_acme_account_rollover_config
7from tools.acme_account_deactivate import account_deactivate
8import tools.acme_account_rollover
10ACME_DIRECTORY = os.getenv("GITLABCI_ACMEDIRECTORY_V2",
11 "https://acme-staging-v02.api.letsencrypt.org/directory")
12ACME_TIMEOUT = os.getenv("GITLABCI_ACMETIMEOUT", "10")
15class TestACMEAccountRollover(unittest.TestCase):
16 """Tests for acme_account_rollover."""
18 @classmethod
19 def setUpClass(cls):
20 cls.configs = generate_acme_account_rollover_config()
21 acme_dns_tiny.main([cls.configs['config']])
22 super(TestACMEAccountRollover, cls).setUpClass()
24 # To clean ACME staging server and close correctly temporary files
25 # pylint: disable=bare-except
26 @classmethod
27 def tearDownClass(cls):
28 # Remove temporary files
29 parser = configparser.ConfigParser()
30 parser.read(cls.configs['config'])
31 try:
32 # deactivate account key registration at end of tests
33 # (we assume the key has been rolled over)
34 account_deactivate(
35 cls.configs["new_account_key"], ACME_DIRECTORY, ACME_TIMEOUT)
36 except:
37 pass
38 try:
39 os.remove(parser["acmednstiny"]["AccountKeyFile"])
40 except:
41 pass
42 try:
43 os.remove(parser["acmednstiny"]["CSRFile"])
44 except:
45 pass
46 try:
47 os.remove(cls.configs["new_account_key"])
48 except:
49 pass
50 try:
51 os.remove(cls.configs['config'])
52 except:
53 pass
54 super(TestACMEAccountRollover, cls).tearDownClass()
56 def test_success_account_rollover(self):
57 """ Test success account key rollover."""
58 with self.assertLogs(level='INFO') as accountrolloverlog:
59 tools.acme_account_rollover.main(["--current", self.configs['old_account_key'],
60 "--new", self.configs['new_account_key'],
61 "--acme-directory", ACME_DIRECTORY])
62 self.assertIn("INFO:acme_account_rollover:Keys rolled over.", accountrolloverlog.output)
65if __name__ == "__main__": # pragma: no cover
66 unittest.main()