diff --git a/letsencrypt/client/tests/client_test.py b/letsencrypt/client/tests/client_test.py index bad6eee26..8e29d53c8 100644 --- a/letsencrypt/client/tests/client_test.py +++ b/letsencrypt/client/tests/client_test.py @@ -2,17 +2,15 @@ import unittest import mock -import zope.component class RollbackTest(unittest.TestCase): """Test the rollback function.""" def setUp(self): self.m_install = mock.MagicMock() - self.m_input = mock.MagicMock() - zope.component.getUtility = self.m_input - def _call(self, checkpoints): # pylint: disable=no-self-use + @classmethod + def _call(cls, checkpoints): from letsencrypt.client.client import rollback rollback(checkpoints) @@ -25,13 +23,14 @@ class RollbackTest(unittest.TestCase): self.assertEqual(self.m_install().rollback_checkpoints.call_count, 1) self.assertEqual(self.m_install().restart.call_count, 1) + @mock.patch("letsencrypt.client.client.zope.component.getUtility") @mock.patch("letsencrypt.client.reverter.Reverter") @mock.patch("letsencrypt.client.client.determine_installer") - def test_misconfiguration_fixed(self, mock_det, mock_rev): + def test_misconfiguration_fixed(self, mock_det, mock_rev, mock_input): from letsencrypt.client.errors import LetsEncryptMisconfigurationError mock_det.side_effect = [LetsEncryptMisconfigurationError, self.m_install] - self.m_input().generic_yesno.return_value = True + mock_input().generic_yesno.return_value = True self._call(1) @@ -42,14 +41,16 @@ class RollbackTest(unittest.TestCase): # Only restart once self.assertEqual(self.m_install.restart.call_count, 1) + @mock.patch("letsencrypt.client.client.zope.component.getUtility") @mock.patch("letsencrypt.client.client.logging.warning") @mock.patch("letsencrypt.client.reverter.Reverter") @mock.patch("letsencrypt.client.client.determine_installer") - def test_misconfiguration_remains(self, mock_det, mock_rev, mock_warn): + def test_misconfiguration_remains( + self, mock_det, mock_rev, mock_warn, mock_input): from letsencrypt.client.errors import LetsEncryptMisconfigurationError mock_det.side_effect = LetsEncryptMisconfigurationError - self.m_input().generic_yesno.return_value = True + mock_input().generic_yesno.return_value = True self._call(1) @@ -62,13 +63,15 @@ class RollbackTest(unittest.TestCase): # There should be a warning about the remaining problem self.assertEqual(mock_warn.call_count, 1) + @mock.patch("letsencrypt.client.client.zope.component.getUtility") @mock.patch("letsencrypt.client.reverter.Reverter") @mock.patch("letsencrypt.client.client.determine_installer") - def test_user_decides_to_manually_investigate(self, mock_det, mock_rev): + def test_user_decides_to_manually_investigate( + self, mock_det, mock_rev, mock_input): from letsencrypt.client.errors import LetsEncryptMisconfigurationError mock_det.side_effect = LetsEncryptMisconfigurationError - self.m_input().generic_yesno.return_value = False + mock_input().generic_yesno.return_value = False self._call(1) diff --git a/letsencrypt/client/tests/reverter_test.py b/letsencrypt/client/tests/reverter_test.py index 6049110fc..553c9d946 100644 --- a/letsencrypt/client/tests/reverter_test.py +++ b/letsencrypt/client/tests/reverter_test.py @@ -31,6 +31,8 @@ class ReverterCheckpointLocalTest(unittest.TestCase): shutil.rmtree(self.dir1) shutil.rmtree(self.dir2) + logging.disable(logging.NOTSET) + def test_basic_add_to_temp_checkpoint(self): # These shouldn't conflict even though they are both named config.txt self.reverter.add_to_temp_checkpoint(self.sets[0], "save1") @@ -245,6 +247,7 @@ class TestFullCheckpointsReverter(unittest.TestCase): self.config1, self.config2, self.dir1, self.dir2, self.sets = tup def tearDown(self): + shutil.rmtree(self.work_dir) shutil.rmtree(self.dir1) shutil.rmtree(self.dir2) diff --git a/letsencrypt/scripts/main.py b/letsencrypt/scripts/main.py index 95c5cc8b6..4dfa70764 100755 --- a/letsencrypt/scripts/main.py +++ b/letsencrypt/scripts/main.py @@ -11,8 +11,8 @@ import zope.interface from letsencrypt.client import CONFIG from letsencrypt.client import client from letsencrypt.client import display -from letsencrypt.client import interfaces from letsencrypt.client import errors +from letsencrypt.client import interfaces from letsencrypt.client import log @@ -98,7 +98,7 @@ def main(): # pylint: disable=too-many-statements,too-many-branches except errors.LetsEncryptMisconfigurationError as err: logging.fatal("Please fix your configuration before proceeding. " "The Installer exited with the following message: " - "%s", str(err)) + "%s", err) sys.exit(1) # Use the same object if possible diff --git a/tox.ini b/tox.ini index c8c671ca1..190bfd2d7 100644 --- a/tox.ini +++ b/tox.ini @@ -14,7 +14,7 @@ commands = [testenv:cover] commands = python setup.py dev - python setup.py nosetests --with-coverage --cover-min-percentage=61 + python setup.py nosetests --with-coverage --cover-min-percentage=66 [testenv:lint] commands =