diff options
author | Erica Portnoy <ebportnoy@gmail.com> | 2022-10-14 00:54:32 +0300 |
---|---|---|
committer | Erica Portnoy <ebportnoy@gmail.com> | 2022-10-14 00:54:32 +0300 |
commit | 5f4123141c9bb57b8e4960b3fceb78d579752ea7 (patch) | |
tree | 5950d1462f425c2bb29ab6921c62ee6121be71b2 | |
parent | 11d5f0c090d0086fa4de6b1ab5b09e4eb8b404a0 (diff) |
mock everything out for tests
-rw-r--r-- | certbot/tests/main_test.py | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/certbot/tests/main_test.py b/certbot/tests/main_test.py index 2c5a14c68..5ffd9a6a0 100644 --- a/certbot/tests/main_test.py +++ b/certbot/tests/main_test.py @@ -13,6 +13,7 @@ import traceback from typing import List import unittest +import configobj import josepy as jose import pytz @@ -517,17 +518,55 @@ class ReconfigureTest(unittest.TestCase): def setUp(self): self.get_utility_patch = test_util.patch_display_util() self.mock_get_utility = self.get_utility_patch.start() + self.patchers = { + 'renewal_file': mock.patch('certbot._internal.storage.renewal_file_for_certname'), + 'configobj': mock.patch('configobj.ConfigObj'), + 'check_symlinks': mock.patch('certbot._internal.storage.RenewableCert._check_symlinks'), + 'cert_names': mock.patch('certbot._internal.storage.RenewableCert.names'), + 'choose_plugins': mock.patch( + 'certbot._internal.plugins.selection.choose_configurator_plugins'), + 'write_config': mock.patch('certbot._internal.storage.write_renewal_config'), + 'filesystem_replace': mock.patch('certbot.compat.filesystem.replace'), + } + original_config_file = io.StringIO(""" + version = 1.32.0 + archive_dir = /etc/letsencrypt/archive/example.com + cert = /etc/letsencrypt/live/example.com/cert.pem + privkey = /etc/letsencrypt/live/example.com/privkey.pem + chain = /etc/letsencrypt/live/example.com/chain.pem + fullchain = /etc/letsencrypt/live/example.com/fullchain.pem + + # Options used in the renewal process + [renewalparams] + account = ee43634db0aa4e6804f152be39990e6a + server = https://acme-staging-v02.api.letsencrypt.org/directory + authenticator = nginx + installer = nginx + key_type = rsa + """) + original_config = configobj.ConfigObj(original_config_file) + self.mocks = {k: v.start() for k, v in self.patchers.items()} + self.mocks['renewal_file'].return_value = 'path/to/config.conf' + self.mocks['configobj'].return_value = original_config + self.mocks['cert_names'].return_value = ['example.com'] + self.mocks['choose_plugins'].return_value = mock.Mock(), mock.Mock() def tearDown(self): self.get_utility_patch.stop() + for patch in self.patchers.values(): + patch.stop() - def _call(self, args): + def _call(self, arg_string): + args = arg_string.split() plugins = disco.PluginsRegistry.find_all() config = configuration.NamespaceConfig( cli.prepare_and_parse_args(plugins, args)) from certbot._internal.main import reconfigure with mock.patch('certbot._internal.main._init_le_client') as mock_init: + mock_client = mock.Mock() + mock_client.obtain_certificate.return_value = ('cert', 'chain', 'key', 'csr') + mock_init.return_value = mock_client reconfigure(config, plugins) return mock_init() # returns the client for some reason @@ -536,10 +575,12 @@ class ReconfigureTest(unittest.TestCase): self.assertRaises(errors.ConfigurationError, self._call, '--cert-name cert1 -d one.cert.com') - def test_asks_for_certname(self): + @mock.patch('certbot._internal.cert_manager.get_certnames') + def test_asks_for_certname(self, mock_cert_manager): + import ipdb; ipdb.set_trace() + mock_cert_manager.return_value = ['example.com'] self._call('--nginx') - pass - # self._call('reconfigure --cert-name cert1') + self.assertEqual(mock_cert_manager.call_count, 1) def test_update_auth(self): pass |