Rewrap after errors rename, doc fixes.

This commit is contained in:
Jakub Warmuz 2015-06-12 14:45:28 +00:00
parent cfa7e28106
commit 57f67c4109
No known key found for this signature in database
GPG key ID: 2A7BAD3A489B52EA
24 changed files with 109 additions and 158 deletions

View file

@ -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)

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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:

View file

@ -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.

View file

@ -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

View file

@ -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):

View file

@ -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(

View file

@ -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(

View file

@ -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."""

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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:

View file

@ -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."""

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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__":

View file

@ -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

View file

@ -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.
"""

View file

@ -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):

View file

@ -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