diff --git a/acme/client.py b/acme/client.py index 4979bce8e..6bb0f5412 100644 --- a/acme/client.py +++ b/acme/client.py @@ -321,7 +321,7 @@ class Client(object): # pylint: disable=too-many-instance-attributes :returns: Challenge Resource with updated body. :rtype: `.ChallengeResource` - :raises errors.UnexpectedUpdate: + :raises .UnexpectedUpdate: """ response = self._post(challb.uri, response) diff --git a/letsencrypt/account.py b/letsencrypt/account.py index e6e46d098..f651bfdb2 100644 --- a/letsencrypt/account.py +++ b/letsencrypt/account.py @@ -205,8 +205,7 @@ class Account(object): :param str email: Email address - :raises letsencrypt.errors.Error: If invalid - email address is given. + :raises .errors.Error: If invalid email address is given. """ if not email or cls.safe_email(email): diff --git a/letsencrypt/auth_handler.py b/letsencrypt/auth_handler.py index a86cdd69d..c3711a244 100644 --- a/letsencrypt/auth_handler.py +++ b/letsencrypt/auth_handler.py @@ -60,7 +60,7 @@ class AuthHandler(object): form of (`completed`, `failed`) :rtype: tuple - :raises AuthorizationError: If unable to retrieve all + :raises .AuthorizationError: If unable to retrieve all authorizations """ @@ -296,8 +296,7 @@ class AuthHandler(object): :class:`letsencrypt.achallenges.Indexed` :rtype: tuple - :raises errors.Error: If Challenge type is not - recognized + :raises .errors.Error: if challenge type is not recognized """ dv_chall = [] @@ -354,8 +353,7 @@ def challb_to_achall(challb, key, domain): else: raise errors.Error( - "Received unsupported challenge of type: %s", - chall.typ) + "Received unsupported challenge of type: %s", chall.typ) def gen_challenge_path(challbs, preferences, combinations): diff --git a/letsencrypt/client.py b/letsencrypt/client.py index e29064a56..279813640 100644 --- a/letsencrypt/client.py +++ b/letsencrypt/client.py @@ -147,8 +147,7 @@ class Client(object): logging.warning(msg) raise errors.Error(msg) if self.account.regr is None: - raise errors.Error( - "Please register with the ACME server first.") + raise errors.Error("Please register with the ACME server first.") # Perform Challenges/Get Authorizations authzr = self.auth_handler.get_authorizations(domains) @@ -339,8 +338,8 @@ class Client(object): :param redirect: If traffic should be forwarded from HTTP to HTTPS. :type redirect: bool or None - :raises letsencrypt.errors.Error: if - no installer is specified in the client. + :raises .errors.Error: if no installer is specified in the + client. """ if self.installer is None: @@ -386,8 +385,7 @@ def validate_key_csr(privkey, csr=None): :param csr: CSR :type csr: :class:`letsencrypt.le_util.CSR` - :raises letsencrypt.errors.Error: when - validation fails + :raises .errors.Error: when validation fails """ # TODO: Handle all of these problems appropriately @@ -396,8 +394,7 @@ def validate_key_csr(privkey, csr=None): # Key must be readable and valid. if privkey.pem and not crypto_util.valid_privkey(privkey.pem): - raise errors.Error( - "The provided key is not a valid key") + raise errors.Error("The provided key is not a valid key") if csr: if csr.form == "der": @@ -406,16 +403,14 @@ def validate_key_csr(privkey, csr=None): # If CSR is provided, it must be readable and valid. if csr.data and not crypto_util.valid_csr(csr.data): - raise errors.Error( - "The provided CSR is not a valid CSR") + raise errors.Error("The provided CSR is not a valid CSR") # If both CSR and key are provided, the key must be the same key used # in the CSR. if csr.data and privkey.pem: if not crypto_util.csr_matches_pubkey( csr.data, privkey.pem): - raise errors.Error( - "The key and CSR do not match") + raise errors.Error("The key and CSR do not match") def determine_account(config): diff --git a/letsencrypt/display/enhancements.py b/letsencrypt/display/enhancements.py index 7855b7fba..6d7c78d7d 100644 --- a/letsencrypt/display/enhancements.py +++ b/letsencrypt/display/enhancements.py @@ -21,8 +21,7 @@ def ask(enhancement): :returns: True if feature is desired, False otherwise :rtype: bool - :raises letsencrypt.errors.Error: If - the enhancement provided is not supported. + :raises .errors.Error: if the enhancement provided is not supported """ try: diff --git a/letsencrypt/interfaces.py b/letsencrypt/interfaces.py index 539683d30..d529127e9 100644 --- a/letsencrypt/interfaces.py +++ b/letsencrypt/interfaces.py @@ -68,10 +68,10 @@ class IPlugin(zope.interface.Interface): Finish up any additional initialization. - :raises letsencrypt.errors.MisconfigurationError: - when full initialization cannot be completed. Plugin will be - displayed on a list of available plugins. - :raises letsencrypt.errors.NoInstallationError: + :raises .MisconfigurationError: + when full initialization cannot be completed. Plugin will + be displayed on a list of available plugins. + :raises .NoInstallationError: when the necessary programs/files cannot be located. Plugin will NOT be displayed on a list of available plugins. diff --git a/letsencrypt/le_util.py b/letsencrypt/le_util.py index 2b0a4a495..e5654a03d 100644 --- a/letsencrypt/le_util.py +++ b/letsencrypt/le_util.py @@ -19,7 +19,7 @@ def make_or_verify_dir(directory, mode=0o755, uid=0): :param int mode: Directory mode. :param int uid: Directory owner. - :raises Error: if a directory already exists, + :raises .errors.Error: if a directory already exists, but has wrong permissions or owner :raises OSError: if invalid or inaccessible file names and diff --git a/letsencrypt/plugins/disco.py b/letsencrypt/plugins/disco.py index 229e152e2..6b0d8e4f3 100644 --- a/letsencrypt/plugins/disco.py +++ b/letsencrypt/plugins/disco.py @@ -102,8 +102,7 @@ class PluginEntryPoint(object): @property def misconfigured(self): """Is plugin misconfigured?""" - return isinstance( - self._prepared, errors.MisconfigurationError) + return isinstance(self._prepared, errors.MisconfigurationError) @property def available(self): diff --git a/letsencrypt/reverter.py b/letsencrypt/reverter.py index 2743be97e..72a6c0b67 100644 --- a/letsencrypt/reverter.py +++ b/letsencrypt/reverter.py @@ -30,8 +30,7 @@ class Reverter(object): This function should reinstall the users original configuration files for all saves with temporary=True - :raises letsencrypt.errors.ReverterError: when - unable to revert config + :raises .ReverterError: when unable to revert config """ if os.path.isdir(self.config.temp_checkpoint_dir): @@ -41,8 +40,7 @@ class Reverter(object): # We have a partial or incomplete recovery logging.fatal("Incomplete or failed recovery for %s", self.config.temp_checkpoint_dir) - raise errors.ReverterError( - "Unable to revert temporary config") + raise errors.ReverterError("Unable to revert temporary config") def rollback_checkpoints(self, rollback=1): """Revert 'rollback' number of configuration checkpoints. @@ -50,9 +48,9 @@ class Reverter(object): :param int rollback: Number of checkpoints to reverse. A str num will be cast to an integer. So "2" is also acceptable. - :raises letsencrypt.errors.ReverterError: If - there is a problem with the input or if the function is unable to - correctly revert the configuration checkpoints. + :raises .ReverterError: + if there is a problem with the input or if the function is + unable to correctly revert the configuration checkpoints """ try: @@ -161,9 +159,8 @@ class Reverter(object): :param set save_files: set of files to save :param str save_notes: notes about changes made during the save - :raises IOError: If unable to open cp_dir + FILEPATHS file - :raises letsencrypt.errors.ReverterError: If - unable to add checkpoint + :raises IOError: if unable to open cp_dir + FILEPATHS file + :raises .ReverterError: if unable to add checkpoint """ le_util.make_or_verify_dir( diff --git a/letsencrypt/revoker.py b/letsencrypt/revoker.py index 66d359a6b..a3ea543fb 100644 --- a/letsencrypt/revoker.py +++ b/letsencrypt/revoker.py @@ -89,8 +89,7 @@ class Revoker(object): # This should never happen given the assumptions of the # module. If it does, it is probably best to delete the # the offending key/cert. For now... just raise an exception - raise errors.RevokerError( - "%s - backup file is corrupted.") + raise errors.RevokerError("%s - backup file is corrupted.") if clean_pem == test_pem: certs.append( diff --git a/letsencrypt/tests/account_test.py b/letsencrypt/tests/account_test.py index 03f1958f1..6b9fafe31 100644 --- a/letsencrypt/tests/account_test.py +++ b/letsencrypt/tests/account_test.py @@ -102,8 +102,8 @@ class AccountTest(unittest.TestCase): def test_from_email(self): from letsencrypt.account import Account - self.assertRaises(errors.Error, - Account.from_email, self.config, "not_valid...email") + self.assertRaises( + errors.Error, Account.from_email, self.config, "not_valid...email") def test_save_from_existing_account(self): from letsencrypt.account import Account @@ -170,10 +170,8 @@ class AccountTest(unittest.TestCase): def test_failed_existing_account(self): from letsencrypt.account import Account - self.assertRaises( - errors.Error, - Account.from_existing_account, - self.config, "non-existant@email.org") + self.assertRaises(errors.Error, Account.from_existing_account, + self.config, "non-existant@email.org") class SafeEmailTest(unittest.TestCase): """Test safe_email.""" diff --git a/letsencrypt/tests/auth_handler_test.py b/letsencrypt/tests/auth_handler_test.py index 7abc891bc..24bceb5f8 100644 --- a/letsencrypt/tests/auth_handler_test.py +++ b/letsencrypt/tests/auth_handler_test.py @@ -61,8 +61,8 @@ class ChallengeFactoryTest(unittest.TestCase): [mock.Mock(chall="chall", typ="unrecognized")], [messages.STATUS_PENDING]) - self.assertRaises(errors.Error, - self.handler._challenge_factory, "failure.com", [0]) + self.assertRaises( + errors.Error, self.handler._challenge_factory, "failure.com", [0]) class GetAuthorizationsTest(unittest.TestCase): @@ -153,8 +153,8 @@ class GetAuthorizationsTest(unittest.TestCase): gen_dom_authzr, challs=acme_util.CHALLENGES) self.mock_dv_auth.perform.side_effect = errors.AuthorizationError - self.assertRaises(errors.AuthorizationError, - self.handler.get_authorizations, ["0"]) + self.assertRaises( + errors.AuthorizationError, self.handler.get_authorizations, ["0"]) def _validate_all(self, unused_1, unused_2): for dom in self.handler.authzr.keys(): @@ -218,9 +218,9 @@ class PollChallengesTest(unittest.TestCase): @mock.patch("letsencrypt.auth_handler.time") def test_poll_challenges_failure(self, unused_mock_time): self.mock_net.poll.side_effect = self._mock_poll_solve_one_invalid - self.assertRaises(errors.AuthorizationError, - self.handler._poll_challenges, - self.chall_update, False) + self.assertRaises( + errors.AuthorizationError, self.handler._poll_challenges, + self.chall_update, False) @mock.patch("letsencrypt.auth_handler.time") def test_unable_to_find_challenge_status(self, unused_mock_time): @@ -229,8 +229,8 @@ class PollChallengesTest(unittest.TestCase): self.chall_update[self.doms[0]].append( challb_to_achall(acme_util.RECOVERY_CONTACT_P, "key", self.doms[0])) self.assertRaises( - errors.AuthorizationError, - self.handler._poll_challenges, self.chall_update, False) + errors.AuthorizationError, self.handler._poll_challenges, + self.chall_update, False) def test_verify_authzr_failure(self): self.assertRaises( @@ -348,8 +348,8 @@ class GenChallengePathTest(unittest.TestCase): prefs = [challenges.DVSNI] combos = ((0, 1),) - self.assertRaises(errors.AuthorizationError, - self._call, challbs, prefs, combos) + self.assertRaises( + errors.AuthorizationError, self._call, challbs, prefs, combos) class MutuallyExclusiveTest(unittest.TestCase): diff --git a/letsencrypt/tests/continuity_auth_test.py b/letsencrypt/tests/continuity_auth_test.py index 95526d265..509dc8bdf 100644 --- a/letsencrypt/tests/continuity_auth_test.py +++ b/letsencrypt/tests/continuity_auth_test.py @@ -91,8 +91,8 @@ class CleanupTest(unittest.TestCase): token = achallenges.RecoveryToken(challb=None, domain="0") unexpected = achallenges.DVSNI(challb=None, domain="0", key="dummy_key") - self.assertRaises(errors.ContAuthError, - self.auth.cleanup, [token, unexpected]) + self.assertRaises( + errors.ContAuthError, self.auth.cleanup, [token, unexpected]) def gen_client_resp(chall): diff --git a/letsencrypt/tests/display/enhancements_test.py b/letsencrypt/tests/display/enhancements_test.py index b3a6922d8..6375316bf 100644 --- a/letsencrypt/tests/display/enhancements_test.py +++ b/letsencrypt/tests/display/enhancements_test.py @@ -27,8 +27,7 @@ class AskTest(unittest.TestCase): self.assertTrue(self._call("redirect")) def test_key_error(self): - self.assertRaises( - errors.Error, self._call, "unknown_enhancement") + self.assertRaises(errors.Error, self._call, "unknown_enhancement") class RedirectTest(unittest.TestCase): diff --git a/letsencrypt/tests/le_util_test.py b/letsencrypt/tests/le_util_test.py index 267a930f1..7ce619d95 100644 --- a/letsencrypt/tests/le_util_test.py +++ b/letsencrypt/tests/le_util_test.py @@ -44,8 +44,7 @@ class MakeOrVerifyDirTest(unittest.TestCase): self.assertEqual(stat.S_IMODE(os.stat(self.path).st_mode), 0o400) def test_existing_wrong_mode_fails(self): - self.assertRaises( - errors.Error, self._call, self.path, 0o600) + self.assertRaises(errors.Error, self._call, self.path, 0o600) def test_reraises_os_error(self): with mock.patch.object(os, 'makedirs') as makedirs: diff --git a/letsencrypt/tests/reverter_test.py b/letsencrypt/tests/reverter_test.py index 00d770bcc..dda867e4f 100644 --- a/letsencrypt/tests/reverter_test.py +++ b/letsencrypt/tests/reverter_test.py @@ -50,10 +50,9 @@ class ReverterCheckpointLocalTest(unittest.TestCase): def test_add_to_checkpoint_copy_failure(self): with mock.patch("letsencrypt.reverter.shutil.copy2") as mock_copy2: mock_copy2.side_effect = IOError("bad copy") - self.assertRaises(errors.ReverterError, - self.reverter.add_to_checkpoint, - self.sets[0], - "save1") + self.assertRaises( + errors.ReverterError, self.reverter.add_to_checkpoint, + self.sets[0], "save1") def test_checkpoint_conflict(self): """Make sure that checkpoint errors are thrown appropriately.""" @@ -65,17 +64,14 @@ class ReverterCheckpointLocalTest(unittest.TestCase): # This shouldn't throw an error self.reverter.add_to_temp_checkpoint(self.sets[0], "save2") # Raise error - self.assertRaises( - errors.ReverterError, self.reverter.add_to_checkpoint, - self.sets[2], "save3") + self.assertRaises(errors.ReverterError, self.reverter.add_to_checkpoint, + self.sets[2], "save3") # Should not cause an error self.reverter.add_to_checkpoint(self.sets[1], "save4") # Check to make sure new files are also checked... - self.assertRaises( - errors.ReverterError, - self.reverter.add_to_checkpoint, - set([config3]), "invalid save") + self.assertRaises(errors.ReverterError, self.reverter.add_to_checkpoint, + set([config3]), "invalid save") def test_multiple_saves_and_temp_revert(self): self.reverter.add_to_temp_checkpoint(self.sets[0], "save1") @@ -120,15 +116,15 @@ class ReverterCheckpointLocalTest(unittest.TestCase): m_open = mock.mock_open() with mock.patch("letsencrypt.reverter.open", m_open, create=True): m_open.side_effect = OSError("bad open") - self.assertRaises(errors.ReverterError, - self.reverter.register_file_creation, - True, self.config1) + self.assertRaises( + errors.ReverterError, self.reverter.register_file_creation, + True, self.config1) def test_bad_registration(self): # Made this mistake and want to make sure it doesn't happen again... - self.assertRaises(errors.ReverterError, - self.reverter.register_file_creation, - "filepath") + self.assertRaises( + errors.ReverterError, self.reverter.register_file_creation, + "filepath") def test_recovery_routine_in_progress_failure(self): self.reverter.add_to_checkpoint(self.sets[0], "perm save") @@ -136,8 +132,7 @@ class ReverterCheckpointLocalTest(unittest.TestCase): # pylint: disable=protected-access self.reverter._recover_checkpoint = mock.MagicMock( side_effect=errors.ReverterError) - self.assertRaises(errors.ReverterError, - self.reverter.recovery_routine) + self.assertRaises(errors.ReverterError, self.reverter.recovery_routine) def test_recover_checkpoint_revert_temp_failures(self): # pylint: disable=invalid-name @@ -149,8 +144,8 @@ class ReverterCheckpointLocalTest(unittest.TestCase): self.reverter.add_to_temp_checkpoint(self.sets[0], "config1 save") - self.assertRaises(errors.ReverterError, - self.reverter.revert_temporary_config) + self.assertRaises( + errors.ReverterError, self.reverter.revert_temporary_config) def test_recover_checkpoint_rollback_failure(self): mock_recover = mock.MagicMock( @@ -161,24 +156,24 @@ class ReverterCheckpointLocalTest(unittest.TestCase): self.reverter.add_to_checkpoint(self.sets[0], "config1 save") self.reverter.finalize_checkpoint("Title") - self.assertRaises(errors.ReverterError, - self.reverter.rollback_checkpoints, 1) + self.assertRaises( + errors.ReverterError, self.reverter.rollback_checkpoints, 1) def test_recover_checkpoint_copy_failure(self): self.reverter.add_to_temp_checkpoint(self.sets[0], "save1") with mock.patch("letsencrypt.reverter.shutil.copy2") as mock_copy2: mock_copy2.side_effect = OSError("bad copy") - self.assertRaises(errors.ReverterError, - self.reverter.revert_temporary_config) + self.assertRaises( + errors.ReverterError, self.reverter.revert_temporary_config) def test_recover_checkpoint_rm_failure(self): self.reverter.add_to_temp_checkpoint(self.sets[0], "temp save") with mock.patch("letsencrypt.reverter.shutil.rmtree") as mock_rmtree: mock_rmtree.side_effect = OSError("Cannot remove tree") - self.assertRaises(errors.ReverterError, - self.reverter.revert_temporary_config) + self.assertRaises( + errors.ReverterError, self.reverter.revert_temporary_config) @mock.patch("letsencrypt.reverter.logging.warning") def test_recover_checkpoint_missing_new_files(self, mock_warn): @@ -191,8 +186,8 @@ class ReverterCheckpointLocalTest(unittest.TestCase): def test_recover_checkpoint_remove_failure(self, mock_remove): self.reverter.register_file_creation(True, self.config1) mock_remove.side_effect = OSError("Can't remove") - self.assertRaises(errors.ReverterError, - self.reverter.revert_temporary_config) + self.assertRaises( + errors.ReverterError, self.reverter.revert_temporary_config) def test_recovery_routine_temp_and_perm(self): # Register a new perm checkpoint file @@ -251,14 +246,11 @@ class TestFullCheckpointsReverter(unittest.TestCase): def test_rollback_improper_inputs(self): self.assertRaises( - errors.ReverterError, - self.reverter.rollback_checkpoints, "-1") + errors.ReverterError, self.reverter.rollback_checkpoints, "-1") self.assertRaises( - errors.ReverterError, - self.reverter.rollback_checkpoints, -1000) + errors.ReverterError, self.reverter.rollback_checkpoints, -1000) self.assertRaises( - errors.ReverterError, - self.reverter.rollback_checkpoints, "one") + errors.ReverterError, self.reverter.rollback_checkpoints, "one") def test_rollback_finalize_checkpoint_valid_inputs(self): # pylint: disable=invalid-name @@ -299,9 +291,8 @@ class TestFullCheckpointsReverter(unittest.TestCase): self.reverter.add_to_checkpoint(self.sets[0], "perm save") mock_move.side_effect = OSError("cannot move") - self.assertRaises(errors.ReverterError, - self.reverter.finalize_checkpoint, - "Title") + self.assertRaises( + errors.ReverterError, self.reverter.finalize_checkpoint, "Title") @mock.patch("letsencrypt.reverter.os.rename") def test_finalize_checkpoint_no_rename_directory(self, mock_rename): @@ -309,9 +300,8 @@ class TestFullCheckpointsReverter(unittest.TestCase): self.reverter.add_to_checkpoint(self.sets[0], "perm save") mock_rename.side_effect = OSError - self.assertRaises(errors.ReverterError, - self.reverter.finalize_checkpoint, - "Title") + self.assertRaises( + errors.ReverterError, self.reverter.finalize_checkpoint, "Title") @mock.patch("letsencrypt.reverter.logging") def test_rollback_too_many(self, mock_logging): @@ -347,8 +337,8 @@ class TestFullCheckpointsReverter(unittest.TestCase): # It must just be clean checkpoints os.makedirs(os.path.join(self.config.backup_dir, "in_progress")) - self.assertRaises(errors.ReverterError, - self.reverter.view_config_changes) + self.assertRaises( + errors.ReverterError, self.reverter.view_config_changes) def _setup_three_checkpoints(self): """Generate some finalized checkpoints.""" diff --git a/letsencrypt/tests/revoker_test.py b/letsencrypt/tests/revoker_test.py index fa756c4ee..490ff9f01 100644 --- a/letsencrypt/tests/revoker_test.py +++ b/letsencrypt/tests/revoker_test.py @@ -80,14 +80,12 @@ class RevokerTest(RevokerBase): @mock.patch("letsencrypt.revoker.Crypto.PublicKey.RSA.importKey") def test_revoke_by_invalid_keys(self, mock_import): mock_import.side_effect = ValueError - self.assertRaises(errors.RevokerError, - self.revoker.revoke_from_key, - self.key) + self.assertRaises( + errors.RevokerError, self.revoker.revoke_from_key, self.key) mock_import.side_effect = [mock.Mock(), IndexError] - self.assertRaises(errors.RevokerError, - self.revoker.revoke_from_key, - self.key) + self.assertRaises( + errors.RevokerError, self.revoker.revoke_from_key, self.key) @mock.patch("letsencrypt.network.Network.revoke") @mock.patch("letsencrypt.revoker.revocation") @@ -198,9 +196,8 @@ class RevokerTest(RevokerBase): def test_acme_revoke_failure(self, mock_crypto): # pylint: disable=protected-access mock_crypto.side_effect = ValueError - self.assertRaises(errors.Error, - self.revoker._acme_revoke, - self.certs[0]) + self.assertRaises( + errors.Error, self.revoker._acme_revoke, self.certs[0]) def test_remove_certs_from_list_bad_certs(self): # pylint: disable=protected-access @@ -216,8 +213,7 @@ class RevokerTest(RevokerBase): new_cert.orig_key = Cert.PathStatus("false path", "not here") self.assertRaises(errors.RevokerError, - self.revoker._remove_certs_from_list, - [new_cert]) + self.revoker._remove_certs_from_list, [new_cert]) def _backups_exist(self, row): # pylint: disable=protected-access diff --git a/letsencrypt_apache/configurator.py b/letsencrypt_apache/configurator.py index 256ada81d..2a0bf518b 100644 --- a/letsencrypt_apache/configurator.py +++ b/letsencrypt_apache/configurator.py @@ -674,8 +674,8 @@ class ApacheConfigurator(augeas_configurator.AugeasConfigurator): conflict, host_or_addrs = self._conflicting_host(ssl_vhost) if conflict: raise errors.ConfiguratorError( - "Unable to create a redirection vhost " - "- {}".format(host_or_addrs)) + "Unable to create a redirection vhost - {}".format( + host_or_addrs)) redirect_addrs = host_or_addrs @@ -951,8 +951,7 @@ class ApacheConfigurator(augeas_configurator.AugeasConfigurator): :returns: version :rtype: tuple - :raises errors.ConfiguratorError: - Unable to find Apache version + :raises .ConfiguratorError: if unable to find Apache version """ try: @@ -969,8 +968,7 @@ class ApacheConfigurator(augeas_configurator.AugeasConfigurator): matches = regex.findall(text) if len(matches) != 1: - raise errors.ConfiguratorError( - "Unable to find Apache version") + raise errors.ConfiguratorError("Unable to find Apache version") return tuple([int(i) for i in matches[0].split(".")]) @@ -1079,8 +1077,7 @@ def mod_loaded(module, apache_ctl): except (OSError, ValueError): logging.error( "Error accessing %s for loaded modules!", apache_ctl) - raise errors.ConfiguratorError( - "Error accessing loaded modules") + raise errors.ConfiguratorError("Error accessing loaded modules") # Small errors that do not impede if proc.returncode != 0: logging.warn("Error in checking loaded module list: %s", stderr) diff --git a/letsencrypt_apache/parser.py b/letsencrypt_apache/parser.py index 4317df757..5483b96ba 100644 --- a/letsencrypt_apache/parser.py +++ b/letsencrypt_apache/parser.py @@ -347,8 +347,7 @@ class ApacheParser(object): if os.path.isfile(os.path.join(self.root, name)): return os.path.join(self.root, name) - raise errors.NoInstallationError( - "Could not find configuration root") + raise errors.NoInstallationError("Could not find configuration root") def _set_user_config_file(self, root): """Set the appropriate user configuration file diff --git a/letsencrypt_apache/tests/configurator_test.py b/letsencrypt_apache/tests/configurator_test.py index 92cc9762a..3cdabe0b1 100644 --- a/letsencrypt_apache/tests/configurator_test.py +++ b/letsencrypt_apache/tests/configurator_test.py @@ -197,17 +197,14 @@ class TwoVhost80Test(util.ApacheTest): mock_popen().communicate.return_value = ( "Server Version: Apache (Debian)", "") - self.assertRaises( - errors.ConfiguratorError, self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) mock_popen().communicate.return_value = ( "Server Version: Apache/2.3{0} Apache/2.4.7".format(os.linesep), "") - self.assertRaises( - errors.ConfiguratorError, self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) mock_popen.side_effect = OSError("Can't find program") - self.assertRaises( - errors.ConfiguratorError, self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) if __name__ == "__main__": diff --git a/letsencrypt_nginx/configurator.py b/letsencrypt_nginx/configurator.py index 2a8ac8299..8490e7183 100644 --- a/letsencrypt_nginx/configurator.py +++ b/letsencrypt_nginx/configurator.py @@ -380,7 +380,7 @@ class NginxConfigurator(common.Plugin): :returns: version :rtype: tuple - :raises errors.ConfiguratorError: + :raises .ConfiguratorError: Unable to find Nginx version or version is unsupported """ @@ -404,22 +404,19 @@ class NginxConfigurator(common.Plugin): ssl_matches = ssl_regex.findall(text) if not version_matches: - raise errors.ConfiguratorError( - "Unable to find Nginx version") + raise errors.ConfiguratorError("Unable to find Nginx version") if not ssl_matches: raise errors.ConfiguratorError( "Nginx build is missing SSL module (--with-http_ssl_module).") if not sni_matches: - raise errors.ConfiguratorError( - "Nginx build doesn't support SNI") + raise errors.ConfiguratorError("Nginx build doesn't support SNI") nginx_version = tuple([int(i) for i in version_matches[0].split(".")]) # nginx < 0.8.48 uses machine hostname as default server_name instead of # the empty string if nginx_version < (0, 8, 48): - raise errors.ConfiguratorError( - "Nginx version must be 0.8.48+") + raise errors.ConfiguratorError("Nginx version must be 0.8.48+") return nginx_version diff --git a/letsencrypt_nginx/dvsni.py b/letsencrypt_nginx/dvsni.py index 1704d92c8..b8f9e328a 100644 --- a/letsencrypt_nginx/dvsni.py +++ b/letsencrypt_nginx/dvsni.py @@ -79,7 +79,7 @@ class NginxDvsni(common.Dvsni): :param list ll_addrs: list of lists of :class:`letsencrypt_nginx.obj.Addr` to apply - :raises errors.MisconfigurationError: + :raises .MisconfigurationError: Unable to find a suitable HTTP block to include DVSNI hosts. """ diff --git a/letsencrypt_nginx/tests/configurator_test.py b/letsencrypt_nginx/tests/configurator_test.py index 6b880b14d..4accfa8ea 100644 --- a/letsencrypt_nginx/tests/configurator_test.py +++ b/letsencrypt_nginx/tests/configurator_test.py @@ -45,10 +45,8 @@ class NginxConfiguratorTest(util.NginxTest): self.assertEqual([], self.config.supported_enhancements()) def test_enhance(self): - self.assertRaises(errors.ConfiguratorError, - self.config.enhance, - 'myhost', - 'redirect') + self.assertRaises( + errors.ConfiguratorError, self.config.enhance, 'myhost', 'redirect') def test_get_chall_pref(self): self.assertEqual([challenges.DVSNI], @@ -218,22 +216,19 @@ class NginxConfiguratorTest(util.NginxTest): " (based on LLVM 3.5svn)", "TLS SNI support enabled", "configure arguments: --with-http_ssl_module"])) - self.assertRaises(errors.ConfiguratorError, - self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) mock_popen().communicate.return_value = ( "", "\n".join(["nginx version: nginx/1.4.2", "TLS SNI support enabled"])) - self.assertRaises(errors.ConfiguratorError, - self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) mock_popen().communicate.return_value = ( "", "\n".join(["nginx version: nginx/1.4.2", "built by clang 6.0 (clang-600.0.56)" " (based on LLVM 3.5svn)", "configure arguments: --with-http_ssl_module"])) - self.assertRaises(errors.ConfiguratorError, - self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) mock_popen().communicate.return_value = ( "", "\n".join(["nginx version: nginx/0.8.1", @@ -241,12 +236,10 @@ class NginxConfiguratorTest(util.NginxTest): " (based on LLVM 3.5svn)", "TLS SNI support enabled", "configure arguments: --with-http_ssl_module"])) - self.assertRaises(errors.ConfiguratorError, - self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) mock_popen.side_effect = OSError("Can't find program") - self.assertRaises( - errors.ConfiguratorError, self.config.get_version) + self.assertRaises(errors.ConfiguratorError, self.config.get_version) @mock.patch("letsencrypt_nginx.configurator.subprocess.Popen") def test_nginx_restart(self, mock_popen): diff --git a/letsencrypt_nginx/tests/dvsni_test.py b/letsencrypt_nginx/tests/dvsni_test.py index b539c4d78..ef28e6918 100644 --- a/letsencrypt_nginx/tests/dvsni_test.py +++ b/letsencrypt_nginx/tests/dvsni_test.py @@ -163,8 +163,8 @@ class DvsniPerformTest(util.NginxTest): root = self.sni.configurator.parser.loc["root"] self.sni.configurator.parser.parsed[root] = [['include', 'foo.conf']] # pylint: disable=protected-access - self.assertRaises(errors.MisconfigurationError, - self.sni._mod_config, []) + self.assertRaises( + errors.MisconfigurationError, self.sni._mod_config, []) if __name__ == "__main__": unittest.main() # pragma: no cover