def setUp(self): super(InstallerTest, self).setUp() filesystem.mkdir(self.config.config_dir) from certbot.plugins.common import Installer self.installer = Installer(config=self.config, name="Installer") self.reverter = self.installer.reverter
def setUp(self): super(InstallerTest, self).setUp() os.mkdir(self.config.config_dir) from certbot.plugins.common import Installer with mock.patch("certbot.plugins.common.reverter.Reverter"): self.installer = Installer(config=self.config, name="Installer") self.reverter = self.installer.reverter
def setUp(self): from certbot.plugins.common import Installer with mock.patch("certbot.plugins.common.reverter.Reverter"): self.installer = Installer(config=mock.MagicMock(), name="Installer") self.reverter = self.installer.reverter
class InstallerTest(test_util.ConfigTestCase): """Tests for certbot.plugins.common.Installer.""" def setUp(self): super(InstallerTest, self).setUp() filesystem.mkdir(self.config.config_dir) from certbot.plugins.common import Installer self.installer = Installer(config=self.config, name="Installer") self.reverter = self.installer.reverter def test_add_to_real_checkpoint(self): files = { "foo.bar", "baz.qux", } save_notes = "foo bar baz qux" self._test_wrapped_method("add_to_checkpoint", files, save_notes) def test_add_to_real_checkpoint2(self): self._test_add_to_checkpoint_common(False) def test_add_to_temporary_checkpoint(self): self._test_add_to_checkpoint_common(True) def _test_add_to_checkpoint_common(self, temporary): files = { "foo.bar", "baz.qux", } save_notes = "foo bar baz qux" installer_func = functools.partial(self.installer.add_to_checkpoint, temporary=temporary) if temporary: reverter_func_name = "add_to_temp_checkpoint" else: reverter_func_name = "add_to_checkpoint" self._test_adapted_method(installer_func, reverter_func_name, files, save_notes) def test_finalize_checkpoint(self): self._test_wrapped_method("finalize_checkpoint", "foo") def test_recovery_routine(self): self._test_wrapped_method("recovery_routine") def test_revert_temporary_config(self): self._test_wrapped_method("revert_temporary_config") def test_rollback_checkpoints(self): self._test_wrapped_method("rollback_checkpoints", 42) def _test_wrapped_method(self, name, *args, **kwargs): """Test a wrapped reverter method. :param str name: name of the method to test :param tuple args: position arguments to method :param dict kwargs: keyword arguments to method """ installer_func = getattr(self.installer, name) self._test_adapted_method(installer_func, name, *args, **kwargs) def _test_adapted_method(self, installer_func, reverter_func_name, *passed_args, **passed_kwargs): """Test an adapted reverter method :param callable installer_func: installer method to test :param str reverter_func_name: name of the method on the reverter that should be called :param tuple passed_args: positional arguments passed from installer method to the reverter method :param dict passed_kargs: keyword arguments passed from installer method to the reverter method """ with mock.patch.object(self.reverter, reverter_func_name) as reverter_func: installer_func(*passed_args, **passed_kwargs) reverter_func.assert_called_once_with(*passed_args, **passed_kwargs) reverter_func.side_effect = errors.ReverterError self.assertRaises(errors.PluginError, installer_func, *passed_args, **passed_kwargs) def test_install_ssl_dhparams(self): self.installer.install_ssl_dhparams() self.assertTrue(os.path.isfile(self.installer.ssl_dhparams)) def _current_ssl_dhparams_hash(self): from certbot._internal.constants import SSL_DHPARAMS_SRC return crypto_util.sha256sum(SSL_DHPARAMS_SRC) def test_current_file_hash_in_all_hashes(self): from certbot._internal.constants import ALL_SSL_DHPARAMS_HASHES self.assertTrue( self._current_ssl_dhparams_hash() in ALL_SSL_DHPARAMS_HASHES, "Constants.ALL_SSL_DHPARAMS_HASHES must be appended" " with the sha256 hash of self.config.ssl_dhparams when it is updated." )
class InstallerTest(test_util.ConfigTestCase): """Tests for certbot.plugins.common.Installer.""" def setUp(self): super(InstallerTest, self).setUp() os.mkdir(self.config.config_dir) from certbot.plugins.common import Installer with mock.patch("certbot.plugins.common.reverter.Reverter"): self.installer = Installer(config=self.config, name="Installer") self.reverter = self.installer.reverter def test_add_to_real_checkpoint(self): files = set(("foo.bar", "baz.qux",)) save_notes = "foo bar baz qux" self._test_wrapped_method("add_to_checkpoint", files, save_notes) def test_add_to_real_checkpoint2(self): self._test_add_to_checkpoint_common(False) def test_add_to_temporary_checkpoint(self): self._test_add_to_checkpoint_common(True) def _test_add_to_checkpoint_common(self, temporary): files = set(("foo.bar", "baz.qux",)) save_notes = "foo bar baz qux" installer_func = functools.partial(self.installer.add_to_checkpoint, temporary=temporary) if temporary: reverter_func = self.reverter.add_to_temp_checkpoint else: reverter_func = self.reverter.add_to_checkpoint self._test_adapted_method( installer_func, reverter_func, files, save_notes) def test_finalize_checkpoint(self): self._test_wrapped_method("finalize_checkpoint", "foo") def test_recovery_routine(self): self._test_wrapped_method("recovery_routine") def test_revert_temporary_config(self): self._test_wrapped_method("revert_temporary_config") def test_rollback_checkpoints(self): self._test_wrapped_method("rollback_checkpoints", 42) def test_view_config_changes(self): self._test_wrapped_method("view_config_changes") def _test_wrapped_method(self, name, *args, **kwargs): """Test a wrapped reverter method. :param str name: name of the method to test :param tuple args: position arguments to method :param dict kwargs: keyword arguments to method """ installer_func = getattr(self.installer, name) reverter_func = getattr(self.reverter, name) self._test_adapted_method( installer_func, reverter_func, *args, **kwargs) def _test_adapted_method(self, installer_func, reverter_func, *passed_args, **passed_kwargs): """Test an adapted reverter method :param callable installer_func: installer method to test :param mock.MagicMock reverter_func: mocked adapated reverter method :param tuple passed_args: positional arguments passed from installer method to the reverter method :param dict passed_kargs: keyword arguments passed from installer method to the reverter method """ installer_func(*passed_args, **passed_kwargs) reverter_func.assert_called_once_with(*passed_args, **passed_kwargs) reverter_func.side_effect = errors.ReverterError self.assertRaises( errors.PluginError, installer_func, *passed_args, **passed_kwargs) def test_install_ssl_dhparams(self): self.installer.install_ssl_dhparams() self.assertTrue(os.path.isfile(self.installer.ssl_dhparams)) def _current_ssl_dhparams_hash(self): from certbot.constants import SSL_DHPARAMS_SRC return crypto_util.sha256sum(SSL_DHPARAMS_SRC) def test_current_file_hash_in_all_hashes(self): from certbot.constants import ALL_SSL_DHPARAMS_HASHES self.assertTrue(self._current_ssl_dhparams_hash() in ALL_SSL_DHPARAMS_HASHES, "Constants.ALL_SSL_DHPARAMS_HASHES must be appended" " with the sha256 hash of self.config.ssl_dhparams when it is updated.")