mirror of
https://github.com/certbot/certbot.git
synced 2026-05-28 04:34:11 -04:00
Minor bugfixes (#7891)
* Fix dangerous default argument * Remove unused imports * Remove unnecessary comprehension * Use literal syntax to create data structure * Use literal syntax instead of function calls to create data structure Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
This commit is contained in:
parent
316e4640f8
commit
8e4dc0a48c
48 changed files with 197 additions and 201 deletions
|
|
@ -1123,8 +1123,8 @@ class ClientNetwork(object):
|
|||
debug_content = response.content.decode("utf-8")
|
||||
logger.debug('Received response:\nHTTP %d\n%s\n\n%s',
|
||||
response.status_code,
|
||||
"\n".join(["{0}: {1}".format(k, v)
|
||||
for k, v in response.headers.items()]),
|
||||
"\n".join("{0}: {1}".format(k, v)
|
||||
for k, v in response.headers.items()),
|
||||
debug_content)
|
||||
return response
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
# serve to show the default.
|
||||
|
||||
import os
|
||||
import shlex
|
||||
import sys
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ class PollErrorTest(unittest.TestCase):
|
|||
def setUp(self):
|
||||
from acme.errors import PollError
|
||||
self.timeout = PollError(
|
||||
exhausted=set([mock.sentinel.AR]),
|
||||
exhausted={mock.sentinel.AR},
|
||||
updated={})
|
||||
self.invalid = PollError(exhausted=set(), updated={
|
||||
mock.sentinel.AR: mock.sentinel.AR2})
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ def included_in_paths(filepath, paths):
|
|||
:rtype: bool
|
||||
"""
|
||||
|
||||
return any([fnmatch.fnmatch(filepath, path) for path in paths])
|
||||
return any(fnmatch.fnmatch(filepath, path) for path in paths)
|
||||
|
||||
|
||||
def parse_defines(apachectl):
|
||||
|
|
@ -144,7 +144,7 @@ def parse_defines(apachectl):
|
|||
:rtype: dict
|
||||
"""
|
||||
|
||||
variables = dict()
|
||||
variables = {}
|
||||
define_cmd = [apachectl, "-t", "-D",
|
||||
"DUMP_RUN_CFG"]
|
||||
matches = parse_from_subprocess(define_cmd, r"Define: ([^ \n]*)")
|
||||
|
|
|
|||
|
|
@ -132,9 +132,9 @@ def assertEqualPathsList(first, second): # pragma: no cover
|
|||
Checks that the two lists of file paths match. This assertion allows for wildcard
|
||||
paths.
|
||||
"""
|
||||
if any([isPass(path) for path in first]):
|
||||
if any(isPass(path) for path in first):
|
||||
return
|
||||
if any([isPass(path) for path in second]):
|
||||
if any(isPass(path) for path in second):
|
||||
return
|
||||
for fpath in first:
|
||||
assert any([fnmatch.fnmatch(fpath, spath) for spath in second])
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ class AugeasBlockNode(AugeasDirectiveNode):
|
|||
def find_blocks(self, name, exclude=True):
|
||||
"""Recursive search of BlockNodes from the sequence of children"""
|
||||
|
||||
nodes = list()
|
||||
nodes = []
|
||||
paths = self._aug_find_blocks(name)
|
||||
if exclude:
|
||||
paths = self.parser.exclude_dirs(paths)
|
||||
|
|
@ -351,7 +351,7 @@ class AugeasBlockNode(AugeasDirectiveNode):
|
|||
def find_directives(self, name, exclude=True):
|
||||
"""Recursive search of DirectiveNodes from the sequence of children"""
|
||||
|
||||
nodes = list()
|
||||
nodes = []
|
||||
ownpath = self.metadata.get("augeaspath")
|
||||
|
||||
directives = self.parser.find_dir(name, start=ownpath, exclude=exclude)
|
||||
|
|
@ -374,7 +374,7 @@ class AugeasBlockNode(AugeasDirectiveNode):
|
|||
:param str comment: Comment content to search for.
|
||||
"""
|
||||
|
||||
nodes = list()
|
||||
nodes = []
|
||||
ownpath = self.metadata.get("augeaspath")
|
||||
|
||||
comments = self.parser.find_comments(comment, start=ownpath)
|
||||
|
|
|
|||
|
|
@ -208,12 +208,12 @@ class ApacheConfigurator(common.Installer):
|
|||
super(ApacheConfigurator, self).__init__(*args, **kwargs)
|
||||
|
||||
# Add name_server association dict
|
||||
self.assoc = dict() # type: Dict[str, obj.VirtualHost]
|
||||
self.assoc = {} # type: Dict[str, obj.VirtualHost]
|
||||
# Outstanding challenges
|
||||
self._chall_out = set() # type: Set[KeyAuthorizationAnnotatedChallenge]
|
||||
# List of vhosts configured per wildcard domain on this run.
|
||||
# used by deploy_cert() and enhance()
|
||||
self._wildcard_vhosts = dict() # type: Dict[str, List[obj.VirtualHost]]
|
||||
self._wildcard_vhosts = {} # type: Dict[str, List[obj.VirtualHost]]
|
||||
# Maps enhancements to vhosts we've enabled the enhancement for
|
||||
self._enhanced_vhosts = defaultdict(set) # type: DefaultDict[str, Set[obj.VirtualHost]]
|
||||
# Temporary state for AutoHSTS enhancement
|
||||
|
|
@ -436,7 +436,7 @@ class ApacheConfigurator(common.Installer):
|
|||
"""Initializes the ParserNode parser root instance."""
|
||||
|
||||
if HAS_APACHECONFIG:
|
||||
apache_vars = dict()
|
||||
apache_vars = {}
|
||||
apache_vars["defines"] = apache_util.parse_defines(self.option("ctl"))
|
||||
apache_vars["includes"] = apache_util.parse_includes(self.option("ctl"))
|
||||
apache_vars["modules"] = apache_util.parse_modules(self.option("ctl"))
|
||||
|
|
@ -548,7 +548,7 @@ class ApacheConfigurator(common.Installer):
|
|||
|
||||
# Go through the vhosts, making sure that we cover all the names
|
||||
# present, but preferring the SSL vhosts
|
||||
filtered_vhosts = dict()
|
||||
filtered_vhosts = {}
|
||||
for vhost in vhosts:
|
||||
for name in vhost.get_names():
|
||||
if vhost.ssl:
|
||||
|
|
@ -574,7 +574,7 @@ class ApacheConfigurator(common.Installer):
|
|||
|
||||
# Make sure we create SSL vhosts for the ones that are HTTP only
|
||||
# if requested.
|
||||
return_vhosts = list()
|
||||
return_vhosts = []
|
||||
for vhost in dialog_output:
|
||||
if not vhost.ssl:
|
||||
return_vhosts.append(self.make_vhost_ssl(vhost))
|
||||
|
|
@ -1579,7 +1579,7 @@ class ApacheConfigurator(common.Installer):
|
|||
result.append(comment)
|
||||
sift = True
|
||||
|
||||
result.append('\n'.join(['# ' + l for l in chunk]))
|
||||
result.append('\n'.join('# ' + l for l in chunk))
|
||||
else:
|
||||
result.append('\n'.join(chunk))
|
||||
return result, sift
|
||||
|
|
@ -1719,7 +1719,7 @@ class ApacheConfigurator(common.Installer):
|
|||
for addr in vhost.addrs:
|
||||
# In Apache 2.2, when a NameVirtualHost directive is not
|
||||
# set, "*" and "_default_" will conflict when sharing a port
|
||||
addrs = set((addr,))
|
||||
addrs = {addr,}
|
||||
if addr.get_addr() in ("*", "_default_"):
|
||||
addrs.update(obj.Addr((a, addr.get_port(),))
|
||||
for a in ("*", "_default_"))
|
||||
|
|
@ -1910,7 +1910,7 @@ class ApacheConfigurator(common.Installer):
|
|||
try:
|
||||
self._autohsts = self.storage.fetch("autohsts")
|
||||
except KeyError:
|
||||
self._autohsts = dict()
|
||||
self._autohsts = {}
|
||||
|
||||
def _autohsts_save_state(self):
|
||||
"""
|
||||
|
|
@ -2471,7 +2471,7 @@ class ApacheConfigurator(common.Installer):
|
|||
if len(matches) != 1:
|
||||
raise errors.PluginError("Unable to find Apache version")
|
||||
|
||||
return tuple([int(i) for i in matches[0].split(".")])
|
||||
return tuple(int(i) for i in matches[0].split("."))
|
||||
|
||||
def more_info(self):
|
||||
"""Human-readable string to help understand the module"""
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ def select_vhost_multiple(vhosts):
|
|||
:rtype: :class:`list`of type `~obj.Vhost`
|
||||
"""
|
||||
if not vhosts:
|
||||
return list()
|
||||
return []
|
||||
tags_list = [vhost.display_repr()+"\n" for vhost in vhosts]
|
||||
# Remove the extra newline from the last entry
|
||||
if tags_list:
|
||||
|
|
@ -37,7 +37,7 @@ def select_vhost_multiple(vhosts):
|
|||
def _reversemap_vhosts(names, vhosts):
|
||||
"""Helper function for select_vhost_multiple for mapping string
|
||||
representations back to actual vhost objects"""
|
||||
return_vhosts = list()
|
||||
return_vhosts = []
|
||||
|
||||
for selection in names:
|
||||
for vhost in vhosts:
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class DualNodeBase(object):
|
|||
|
||||
pass_primary = assertions.isPassNodeList(primary_res)
|
||||
pass_secondary = assertions.isPassNodeList(secondary_res)
|
||||
new_nodes = list()
|
||||
new_nodes = []
|
||||
|
||||
if pass_primary and pass_secondary:
|
||||
# Both unimplemented
|
||||
|
|
@ -221,7 +221,7 @@ class DualBlockNode(DualNodeBase):
|
|||
implementations to a list of tuples.
|
||||
"""
|
||||
|
||||
matched = list()
|
||||
matched = []
|
||||
for p in primary_list:
|
||||
match = None
|
||||
for s in secondary_list:
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class ApacheParser(object):
|
|||
|
||||
"""
|
||||
arg_var_interpreter = re.compile(r"\$\{[^ \}]*}")
|
||||
fnmatch_chars = set(["*", "?", "\\", "[", "]"])
|
||||
fnmatch_chars = {"*", "?", "\\", "[", "]"}
|
||||
|
||||
def __init__(self, root, vhostroot=None, version=(2, 4),
|
||||
configurator=None):
|
||||
|
|
@ -945,8 +945,8 @@ def case_i(string):
|
|||
:param str string: string to make case i regex
|
||||
|
||||
"""
|
||||
return "".join(["[" + c.upper() + c.lower() + "]"
|
||||
if c.isalpha() else c for c in re.escape(string)])
|
||||
return "".join("[" + c.upper() + c.lower() + "]"
|
||||
if c.isalpha() else c for c in re.escape(string))
|
||||
|
||||
|
||||
def get_aug_path(file_path):
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ def validate_kwargs(kwargs, required_names):
|
|||
:param list required_names: List of required parameter names.
|
||||
"""
|
||||
|
||||
validated_kwargs = dict()
|
||||
validated_kwargs = {}
|
||||
for name in required_names:
|
||||
try:
|
||||
validated_kwargs[name] = kwargs.pop(name)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
import mock
|
||||
|
||||
import os
|
||||
import unittest
|
||||
import util
|
||||
|
||||
from certbot import errors
|
||||
|
|
|
|||
|
|
@ -19,12 +19,12 @@ def get_vh_truth(temp_dir, config_name):
|
|||
obj.VirtualHost(
|
||||
os.path.join(prefix, "test.example.com.conf"),
|
||||
os.path.join(aug_pre, "test.example.com.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "test.example.com"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "ssl.conf"),
|
||||
os.path.join(aug_pre, "ssl.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("_default_:443")]),
|
||||
{obj.Addr.fromstring("_default_:443")},
|
||||
True, True, None)
|
||||
]
|
||||
return vh_truth
|
||||
|
|
@ -104,7 +104,7 @@ class CentOS6Tests(util.ApacheTest):
|
|||
pre_loadmods = self.config.parser.find_dir(
|
||||
"LoadModule", "ssl_module", exclude=False)
|
||||
# LoadModules are not within IfModule blocks
|
||||
self.assertFalse(any(["ifmodule" in m.lower() for m in pre_loadmods]))
|
||||
self.assertFalse(any("ifmodule" in m.lower() for m in pre_loadmods))
|
||||
self.config.assoc["test.example.com"] = self.vh_truth[0]
|
||||
self.config.deploy_cert(
|
||||
"random.demo", "example/cert.pem", "example/key.pem",
|
||||
|
|
|
|||
|
|
@ -21,12 +21,12 @@ def get_vh_truth(temp_dir, config_name):
|
|||
obj.VirtualHost(
|
||||
os.path.join(prefix, "centos.example.com.conf"),
|
||||
os.path.join(aug_pre, "centos.example.com.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "centos.example.com"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "ssl.conf"),
|
||||
os.path.join(aug_pre, "ssl.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("_default_:443")]),
|
||||
{obj.Addr.fromstring("_default_:443")},
|
||||
True, True, None)
|
||||
]
|
||||
return vh_truth
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
parserargs = ["server_root", "enmod", "dismod", "le_vhost_ext",
|
||||
"vhost_root", "logs_root", "challenge_location",
|
||||
"handle_modules", "handle_sites", "ctl"]
|
||||
exp = dict()
|
||||
exp = {}
|
||||
|
||||
for k in ApacheConfigurator.OS_DEFAULTS:
|
||||
if k in parserargs:
|
||||
|
|
@ -140,11 +140,9 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
mock_utility = mock_getutility()
|
||||
mock_utility.notification = mock.MagicMock(return_value=True)
|
||||
names = self.config.get_all_names()
|
||||
self.assertEqual(names, set(
|
||||
["certbot.demo", "ocspvhost.com", "encryption-example.demo",
|
||||
self.assertEqual(names, {"certbot.demo", "ocspvhost.com", "encryption-example.demo",
|
||||
"nonsym.link", "vhost.in.rootconf", "www.certbot.demo",
|
||||
"duplicate.example.com"]
|
||||
))
|
||||
"duplicate.example.com"})
|
||||
|
||||
@certbot_util.patch_get_utility()
|
||||
@mock.patch("certbot_apache._internal.configurator.socket.gethostbyaddr")
|
||||
|
|
@ -154,9 +152,9 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
mock_utility.notification.return_value = True
|
||||
vhost = obj.VirtualHost(
|
||||
"fp", "ap",
|
||||
set([obj.Addr(("8.8.8.8", "443")),
|
||||
{obj.Addr(("8.8.8.8", "443")),
|
||||
obj.Addr(("zombo.com",)),
|
||||
obj.Addr(("192.168.1.2"))]),
|
||||
obj.Addr(("192.168.1.2"))},
|
||||
True, False)
|
||||
|
||||
self.config.vhosts.append(vhost)
|
||||
|
|
@ -185,7 +183,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
|
||||
def test_bad_servername_alias(self):
|
||||
ssl_vh1 = obj.VirtualHost(
|
||||
"fp1", "ap1", set([obj.Addr(("*", "443"))]),
|
||||
"fp1", "ap1", {obj.Addr(("*", "443"))},
|
||||
True, False)
|
||||
# pylint: disable=protected-access
|
||||
self.config._add_servernames(ssl_vh1)
|
||||
|
|
@ -198,7 +196,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
# pylint: disable=protected-access
|
||||
self.config._add_servernames(self.vh_truth[2])
|
||||
self.assertEqual(
|
||||
self.vh_truth[2].get_names(), set(["*.le.co", "ip-172-30-0-17"]))
|
||||
self.vh_truth[2].get_names(), {"*.le.co", "ip-172-30-0-17"})
|
||||
|
||||
def test_get_virtual_hosts(self):
|
||||
"""Make sure all vhosts are being properly found."""
|
||||
|
|
@ -269,7 +267,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
def test_choose_vhost_select_vhost_conflicting_non_ssl(self, mock_select):
|
||||
mock_select.return_value = self.vh_truth[3]
|
||||
conflicting_vhost = obj.VirtualHost(
|
||||
"path", "aug_path", set([obj.Addr.fromstring("*:443")]),
|
||||
"path", "aug_path", {obj.Addr.fromstring("*:443")},
|
||||
True, True)
|
||||
self.config.vhosts.append(conflicting_vhost)
|
||||
|
||||
|
|
@ -278,14 +276,14 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
|
||||
def test_find_best_http_vhost_default(self):
|
||||
vh = obj.VirtualHost(
|
||||
"fp", "ap", set([obj.Addr.fromstring("_default_:80")]), False, True)
|
||||
"fp", "ap", {obj.Addr.fromstring("_default_:80")}, False, True)
|
||||
self.config.vhosts = [vh]
|
||||
self.assertEqual(self.config.find_best_http_vhost("foo.bar", False), vh)
|
||||
|
||||
def test_find_best_http_vhost_port(self):
|
||||
port = "8080"
|
||||
vh = obj.VirtualHost(
|
||||
"fp", "ap", set([obj.Addr.fromstring("*:" + port)]),
|
||||
"fp", "ap", {obj.Addr.fromstring("*:" + port)},
|
||||
False, True, "encryption-example.demo")
|
||||
self.config.vhosts.append(vh)
|
||||
self.assertEqual(self.config.find_best_http_vhost("foo.bar", False, port), vh)
|
||||
|
|
@ -313,8 +311,8 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
def test_find_best_vhost_variety(self):
|
||||
# pylint: disable=protected-access
|
||||
ssl_vh = obj.VirtualHost(
|
||||
"fp", "ap", set([obj.Addr(("*", "443")),
|
||||
obj.Addr(("zombo.com",))]),
|
||||
"fp", "ap", {obj.Addr(("*", "443")),
|
||||
obj.Addr(("zombo.com",))},
|
||||
True, False)
|
||||
self.config.vhosts.append(ssl_vh)
|
||||
self.assertEqual(self.config._find_best_vhost("zombo.com"), ssl_vh)
|
||||
|
|
@ -685,7 +683,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
self.assertEqual(ssl_vhost.path,
|
||||
"/files" + ssl_vhost.filep + "/IfModule/Virtualhost")
|
||||
self.assertEqual(len(ssl_vhost.addrs), 1)
|
||||
self.assertEqual(set([obj.Addr.fromstring("*:443")]), ssl_vhost.addrs)
|
||||
self.assertEqual({obj.Addr.fromstring("*:443")}, ssl_vhost.addrs)
|
||||
self.assertEqual(ssl_vhost.name, "encryption-example.demo")
|
||||
self.assertTrue(ssl_vhost.ssl)
|
||||
self.assertFalse(ssl_vhost.enabled)
|
||||
|
|
@ -910,7 +908,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
self.config.parser.modules["rewrite_module"] = None
|
||||
mock_exe.return_value = True
|
||||
ssl_vh1 = obj.VirtualHost(
|
||||
"fp1", "ap1", set([obj.Addr(("*", "443"))]),
|
||||
"fp1", "ap1", {obj.Addr(("*", "443"))},
|
||||
True, False)
|
||||
ssl_vh1.name = "satoshi.com"
|
||||
self.config.vhosts.append(ssl_vh1)
|
||||
|
|
@ -1011,7 +1009,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
|
||||
def test_get_http_vhost_third_filter(self):
|
||||
ssl_vh = obj.VirtualHost(
|
||||
"fp", "ap", set([obj.Addr(("*", "443"))]),
|
||||
"fp", "ap", {obj.Addr(("*", "443"))},
|
||||
True, False)
|
||||
ssl_vh.name = "satoshi.com"
|
||||
self.config.vhosts.append(ssl_vh)
|
||||
|
|
@ -1214,8 +1212,8 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
def test_redirect_with_conflict(self):
|
||||
self.config.parser.modules["rewrite_module"] = None
|
||||
ssl_vh = obj.VirtualHost(
|
||||
"fp", "ap", set([obj.Addr(("*", "443")),
|
||||
obj.Addr(("zombo.com",))]),
|
||||
"fp", "ap", {obj.Addr(("*", "443")),
|
||||
obj.Addr(("zombo.com",))},
|
||||
True, False)
|
||||
# No names ^ this guy should conflict.
|
||||
|
||||
|
|
@ -1257,7 +1255,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
self.config.get_version = mock.Mock(return_value=(2, 3, 9))
|
||||
# For full testing... give names...
|
||||
self.vh_truth[1].name = "default.com"
|
||||
self.vh_truth[1].aliases = set(["yes.default.com"])
|
||||
self.vh_truth[1].aliases = {"yes.default.com"}
|
||||
|
||||
# pylint: disable=protected-access
|
||||
self.config._enable_redirect(self.vh_truth[1], "")
|
||||
|
|
@ -1268,7 +1266,7 @@ class MultipleVhostsTest(util.ApacheTest):
|
|||
self.config.get_version = mock.Mock(return_value=(2, 2))
|
||||
# For full testing... give names...
|
||||
self.vh_truth[1].name = "default.com"
|
||||
self.vh_truth[1].aliases = set(["yes.default.com"])
|
||||
self.vh_truth[1].aliases = {"yes.default.com"}
|
||||
|
||||
# pylint: disable=protected-access
|
||||
self.config._enable_redirect(self.vh_truth[1], "")
|
||||
|
|
@ -1609,7 +1607,7 @@ class MultiVhostsTest(util.ApacheTest):
|
|||
self.assertEqual(ssl_vhost.path,
|
||||
"/files" + ssl_vhost.filep + "/IfModule/VirtualHost")
|
||||
self.assertEqual(len(ssl_vhost.addrs), 1)
|
||||
self.assertEqual(set([obj.Addr.fromstring("*:443")]), ssl_vhost.addrs)
|
||||
self.assertEqual({obj.Addr.fromstring("*:443")}, ssl_vhost.addrs)
|
||||
self.assertEqual(ssl_vhost.name, "banana.vomit.com")
|
||||
self.assertTrue(ssl_vhost.ssl)
|
||||
self.assertFalse(ssl_vhost.enabled)
|
||||
|
|
|
|||
|
|
@ -93,9 +93,9 @@ class SelectVhostTest(unittest.TestCase):
|
|||
|
||||
self.vhosts.append(
|
||||
obj.VirtualHost(
|
||||
"path", "aug_path", set([obj.Addr.fromstring("*:80")]),
|
||||
"path", "aug_path", {obj.Addr.fromstring("*:80")},
|
||||
False, False,
|
||||
"wildcard.com", set(["*.wildcard.com"])))
|
||||
"wildcard.com", {"*.wildcard.com"}))
|
||||
|
||||
self.assertEqual(self.vhosts[5], self._call(self.vhosts))
|
||||
|
||||
|
|
|
|||
|
|
@ -21,19 +21,19 @@ def get_vh_truth(temp_dir, config_name):
|
|||
obj.VirtualHost(
|
||||
os.path.join(prefix, "gentoo.example.com.conf"),
|
||||
os.path.join(aug_pre, "gentoo.example.com.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "gentoo.example.com"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "00_default_vhost.conf"),
|
||||
os.path.join(aug_pre, "00_default_vhost.conf/IfDefine/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "localhost"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "00_default_ssl_vhost.conf"),
|
||||
os.path.join(aug_pre,
|
||||
"00_default_ssl_vhost.conf" +
|
||||
"/IfDefine/IfDefine/IfModule/VirtualHost"),
|
||||
set([obj.Addr.fromstring("_default_:443")]),
|
||||
{obj.Addr.fromstring("_default_:443")},
|
||||
True, True, "localhost")
|
||||
]
|
||||
return vh_truth
|
||||
|
|
|
|||
|
|
@ -14,13 +14,13 @@ class VirtualHostTest(unittest.TestCase):
|
|||
self.addr_default = Addr.fromstring("_default_:443")
|
||||
|
||||
self.vhost1 = VirtualHost(
|
||||
"filep", "vh_path", set([self.addr1]), False, False, "localhost")
|
||||
"filep", "vh_path", {self.addr1}, False, False, "localhost")
|
||||
|
||||
self.vhost1b = VirtualHost(
|
||||
"filep", "vh_path", set([self.addr1]), False, False, "localhost")
|
||||
"filep", "vh_path", {self.addr1}, False, False, "localhost")
|
||||
|
||||
self.vhost2 = VirtualHost(
|
||||
"fp", "vhp", set([self.addr2]), False, False, "localhost")
|
||||
"fp", "vhp", {self.addr2}, False, False, "localhost")
|
||||
|
||||
def test_repr(self):
|
||||
self.assertEqual(repr(self.addr2),
|
||||
|
|
@ -42,7 +42,7 @@ class VirtualHostTest(unittest.TestCase):
|
|||
|
||||
complex_vh = VirtualHost(
|
||||
"fp", "vhp",
|
||||
set([Addr.fromstring("*:443"), Addr.fromstring("1.2.3.4:443")]),
|
||||
{Addr.fromstring("*:443"), Addr.fromstring("1.2.3.4:443")},
|
||||
False, False)
|
||||
self.assertTrue(complex_vh.conflicts([self.addr1]))
|
||||
self.assertTrue(complex_vh.conflicts([self.addr2]))
|
||||
|
|
@ -57,14 +57,14 @@ class VirtualHostTest(unittest.TestCase):
|
|||
def test_same_server(self):
|
||||
from certbot_apache._internal.obj import VirtualHost
|
||||
no_name1 = VirtualHost(
|
||||
"fp", "vhp", set([self.addr1]), False, False, None)
|
||||
"fp", "vhp", {self.addr1}, False, False, None)
|
||||
no_name2 = VirtualHost(
|
||||
"fp", "vhp", set([self.addr2]), False, False, None)
|
||||
"fp", "vhp", {self.addr2}, False, False, None)
|
||||
no_name3 = VirtualHost(
|
||||
"fp", "vhp", set([self.addr_default]),
|
||||
"fp", "vhp", {self.addr_default},
|
||||
False, False, None)
|
||||
no_name4 = VirtualHost(
|
||||
"fp", "vhp", set([self.addr2, self.addr_default]),
|
||||
"fp", "vhp", {self.addr2, self.addr_default},
|
||||
False, False, None)
|
||||
|
||||
self.assertTrue(self.vhost1.same_server(self.vhost2))
|
||||
|
|
|
|||
|
|
@ -142,71 +142,71 @@ def get_vh_truth(temp_dir, config_name):
|
|||
obj.VirtualHost(
|
||||
os.path.join(prefix, "encryption-example.conf"),
|
||||
os.path.join(aug_pre, "encryption-example.conf/Virtualhost"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "encryption-example.demo"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "default-ssl.conf"),
|
||||
os.path.join(aug_pre,
|
||||
"default-ssl.conf/IfModule/VirtualHost"),
|
||||
set([obj.Addr.fromstring("_default_:443")]), True, True),
|
||||
{obj.Addr.fromstring("_default_:443")}, True, True),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "000-default.conf"),
|
||||
os.path.join(aug_pre, "000-default.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80"),
|
||||
obj.Addr.fromstring("[::]:80")]),
|
||||
{obj.Addr.fromstring("*:80"),
|
||||
obj.Addr.fromstring("[::]:80")},
|
||||
False, True, "ip-172-30-0-17"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "certbot.conf"),
|
||||
os.path.join(aug_pre, "certbot.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]), False, True,
|
||||
{obj.Addr.fromstring("*:80")}, False, True,
|
||||
"certbot.demo", aliases=["www.certbot.demo"]),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "mod_macro-example.conf"),
|
||||
os.path.join(aug_pre,
|
||||
"mod_macro-example.conf/Macro/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]), False, True,
|
||||
{obj.Addr.fromstring("*:80")}, False, True,
|
||||
modmacro=True),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "default-ssl-port-only.conf"),
|
||||
os.path.join(aug_pre, ("default-ssl-port-only.conf/"
|
||||
"IfModule/VirtualHost")),
|
||||
set([obj.Addr.fromstring("_default_:443")]), True, True),
|
||||
{obj.Addr.fromstring("_default_:443")}, True, True),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "wildcard.conf"),
|
||||
os.path.join(aug_pre, "wildcard.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]), False, True,
|
||||
{obj.Addr.fromstring("*:80")}, False, True,
|
||||
"ip-172-30-0-17", aliases=["*.blue.purple.com"]),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "ocsp-ssl.conf"),
|
||||
os.path.join(aug_pre, "ocsp-ssl.conf/IfModule/VirtualHost"),
|
||||
set([obj.Addr.fromstring("10.2.3.4:443")]), True, True,
|
||||
{obj.Addr.fromstring("10.2.3.4:443")}, True, True,
|
||||
"ocspvhost.com"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "non-symlink.conf"),
|
||||
os.path.join(aug_pre, "non-symlink.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]), False, True,
|
||||
{obj.Addr.fromstring("*:80")}, False, True,
|
||||
"nonsym.link"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "default-ssl-port-only.conf"),
|
||||
os.path.join(aug_pre,
|
||||
"default-ssl-port-only.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]), True, True, ""),
|
||||
{obj.Addr.fromstring("*:80")}, True, True, ""),
|
||||
obj.VirtualHost(
|
||||
os.path.join(temp_dir, config_name,
|
||||
"apache2/apache2.conf"),
|
||||
"/files" + os.path.join(temp_dir, config_name,
|
||||
"apache2/apache2.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]), False, True,
|
||||
{obj.Addr.fromstring("*:80")}, False, True,
|
||||
"vhost.in.rootconf"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "duplicatehttp.conf"),
|
||||
os.path.join(aug_pre, "duplicatehttp.conf/VirtualHost"),
|
||||
set([obj.Addr.fromstring("10.2.3.4:80")]), False, True,
|
||||
{obj.Addr.fromstring("10.2.3.4:80")}, False, True,
|
||||
"duplicate.example.com"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "duplicatehttps.conf"),
|
||||
os.path.join(aug_pre, "duplicatehttps.conf/IfModule/VirtualHost"),
|
||||
set([obj.Addr.fromstring("10.2.3.4:443")]), True, True,
|
||||
{obj.Addr.fromstring("10.2.3.4:443")}, True, True,
|
||||
"duplicate.example.com")]
|
||||
return vh_truth
|
||||
if config_name == "debian_apache_2_4/multi_vhosts":
|
||||
|
|
@ -217,27 +217,27 @@ def get_vh_truth(temp_dir, config_name):
|
|||
obj.VirtualHost(
|
||||
os.path.join(prefix, "default.conf"),
|
||||
os.path.join(aug_pre, "default.conf/VirtualHost[1]"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "ip-172-30-0-17"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "default.conf"),
|
||||
os.path.join(aug_pre, "default.conf/VirtualHost[2]"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "banana.vomit.com"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "multi-vhost.conf"),
|
||||
os.path.join(aug_pre, "multi-vhost.conf/VirtualHost[1]"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "1.multi.vhost.tld"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "multi-vhost.conf"),
|
||||
os.path.join(aug_pre, "multi-vhost.conf/IfModule/VirtualHost"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "2.multi.vhost.tld"),
|
||||
obj.VirtualHost(
|
||||
os.path.join(prefix, "multi-vhost.conf"),
|
||||
os.path.join(aug_pre, "multi-vhost.conf/VirtualHost[2]"),
|
||||
set([obj.Addr.fromstring("*:80")]),
|
||||
{obj.Addr.fromstring("*:80")},
|
||||
False, True, "3.multi.vhost.tld")]
|
||||
return vh_truth
|
||||
return None # pragma: no cover
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
"""Module to handle the context of integration tests."""
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ def generate_csr(domains, key_path, csr_path, key_type=RSA_KEY_TYPE):
|
|||
file_h.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key))
|
||||
|
||||
req = crypto.X509Req()
|
||||
san = ', '.join(['DNS:{0}'.format(item) for item in domains])
|
||||
san = ', '.join('DNS:{0}'.format(item) for item in domains)
|
||||
san_constraint = crypto.X509Extension(b'subjectAltName', False, san.encode('utf-8'))
|
||||
req.add_extensions([san_constraint])
|
||||
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ def test_authenticator(plugin, config, temp_dir):
|
|||
|
||||
def _create_achalls(plugin):
|
||||
"""Returns a list of annotated challenges to test on plugin"""
|
||||
achalls = list()
|
||||
achalls = []
|
||||
names = plugin.get_testable_domain_names()
|
||||
for domain in names:
|
||||
prefs = plugin.get_chall_pref(domain)
|
||||
|
|
|
|||
|
|
@ -748,7 +748,7 @@ class NginxConfigurator(common.Installer):
|
|||
|
||||
# if there is no separate SSL block, break the block into two and
|
||||
# choose the SSL block.
|
||||
if vhost.ssl and any([not addr.ssl for addr in vhost.addrs]):
|
||||
if vhost.ssl and any(not addr.ssl for addr in vhost.addrs):
|
||||
_, vhost = self._split_block(vhost)
|
||||
|
||||
header_directives = [
|
||||
|
|
@ -983,7 +983,7 @@ class NginxConfigurator(common.Installer):
|
|||
logger.warning("NGINX derivative %s is not officially supported by"
|
||||
" certbot", product_name)
|
||||
|
||||
nginx_version = tuple([int(i) for i in product_version.split(".")])
|
||||
nginx_version = tuple(int(i) for i in product_version.split("."))
|
||||
|
||||
# nginx < 0.8.48 uses machine hostname as default server_name instead of
|
||||
# the empty string
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ def select_vhost_multiple(vhosts):
|
|||
:rtype: :class:`list`of type `~obj.Vhost`
|
||||
"""
|
||||
if not vhosts:
|
||||
return list()
|
||||
return []
|
||||
tags_list = [vhost.display_repr()+"\n" for vhost in vhosts]
|
||||
# Remove the extra newline from the last entry
|
||||
if tags_list:
|
||||
|
|
@ -33,7 +33,7 @@ def select_vhost_multiple(vhosts):
|
|||
def _reversemap_vhosts(names, vhosts):
|
||||
"""Helper function for select_vhost_multiple for mapping string
|
||||
representations back to actual vhost objects"""
|
||||
return_vhosts = list()
|
||||
return_vhosts = []
|
||||
|
||||
for selection in names:
|
||||
for vhost in vhosts:
|
||||
|
|
|
|||
|
|
@ -404,9 +404,9 @@ class NginxParser(object):
|
|||
if directive and directive[0] == 'listen':
|
||||
# Exclude one-time use parameters which will cause an error if repeated.
|
||||
# https://nginx.org/en/docs/http/ngx_http_core_module.html#listen
|
||||
exclude = set(('default_server', 'default', 'setfib', 'fastopen', 'backlog',
|
||||
exclude = {'default_server', 'default', 'setfib', 'fastopen', 'backlog',
|
||||
'rcvbuf', 'sndbuf', 'accept_filter', 'deferred', 'bind',
|
||||
'ipv6only', 'reuseport', 'so_keepalive'))
|
||||
'ipv6only', 'reuseport', 'so_keepalive'}
|
||||
|
||||
for param in exclude:
|
||||
# See: github.com/certbot/certbot/pull/6223#pullrequestreview-143019225
|
||||
|
|
@ -578,7 +578,7 @@ def _update_or_add_directives(directives, insert_at_top, block):
|
|||
|
||||
|
||||
INCLUDE = 'include'
|
||||
REPEATABLE_DIRECTIVES = set(['server_name', 'listen', INCLUDE, 'rewrite', 'add_header'])
|
||||
REPEATABLE_DIRECTIVES = {'server_name', 'listen', INCLUDE, 'rewrite', 'add_header'}
|
||||
COMMENT = ' managed by Certbot'
|
||||
COMMENT_BLOCK = [' ', '#', COMMENT]
|
||||
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ class Sentence(Parsable):
|
|||
:returns: whether this lists is parseable by `Sentence`.
|
||||
"""
|
||||
return isinstance(lists, list) and len(lists) > 0 and \
|
||||
all([isinstance(elem, six.string_types) for elem in lists])
|
||||
all(isinstance(elem, six.string_types) for elem in lists)
|
||||
|
||||
def parse(self, raw_list, add_spaces=False):
|
||||
""" Parses a list of string types into this object.
|
||||
|
|
@ -214,7 +214,7 @@ class Sentence(Parsable):
|
|||
if add_spaces:
|
||||
raw_list = _space_list(raw_list)
|
||||
if not isinstance(raw_list, list) or \
|
||||
any([not isinstance(elem, six.string_types) for elem in raw_list]):
|
||||
any(not isinstance(elem, six.string_types) for elem in raw_list):
|
||||
raise errors.MisconfigurationError("Sentence parsing expects a list of string types.")
|
||||
self._data = raw_list
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ class NginxConfiguratorTest(util.NginxTest):
|
|||
filep = self.config.parser.abs_path('sites-enabled/example.com')
|
||||
mock_vhost = obj.VirtualHost(filep,
|
||||
None, None, None,
|
||||
set(['.example.com', 'example.*']),
|
||||
{'.example.com', 'example.*'},
|
||||
None, [0])
|
||||
self.config.parser.add_server_directives(
|
||||
mock_vhost,
|
||||
|
|
@ -150,11 +150,11 @@ class NginxConfiguratorTest(util.NginxTest):
|
|||
self._test_choose_vhosts_common('ipv6.com', 'ipv6_conf')
|
||||
|
||||
def _test_choose_vhosts_common(self, name, conf):
|
||||
conf_names = {'localhost_conf': set(['localhost', r'~^(www\.)?(example|bar)\.']),
|
||||
'server_conf': set(['somename', 'another.alias', 'alias']),
|
||||
'example_conf': set(['.example.com', 'example.*']),
|
||||
'foo_conf': set(['*.www.foo.com', '*.www.example.com']),
|
||||
'ipv6_conf': set(['ipv6.com'])}
|
||||
conf_names = {'localhost_conf': {'localhost', r'~^(www\.)?(example|bar)\.'},
|
||||
'server_conf': {'somename', 'another.alias', 'alias'},
|
||||
'example_conf': {'.example.com', 'example.*'},
|
||||
'foo_conf': {'*.www.foo.com', '*.www.example.com'},
|
||||
'ipv6_conf': {'ipv6.com'}}
|
||||
|
||||
conf_path = {'localhost': "etc_nginx/nginx.conf",
|
||||
'alias': "etc_nginx/nginx.conf",
|
||||
|
|
@ -177,7 +177,7 @@ class NginxConfiguratorTest(util.NginxTest):
|
|||
self.assertTrue(vhost.ipv6_enabled())
|
||||
# Make sure that we have SSL enabled also for IPv6 addr
|
||||
self.assertTrue(
|
||||
any([True for x in vhost.addrs if x.ssl and x.ipv6]))
|
||||
any(True for x in vhost.addrs if x.ssl and x.ipv6))
|
||||
|
||||
def test_choose_vhosts_bad(self):
|
||||
bad_results = ['www.foo.com', 'example', 't.www.bar.co',
|
||||
|
|
|
|||
|
|
@ -98,10 +98,10 @@ class AddrTest(unittest.TestCase):
|
|||
|
||||
def test_set_inclusion(self):
|
||||
from certbot_nginx._internal.obj import Addr
|
||||
set_a = set([self.addr1, self.addr2])
|
||||
set_a = {self.addr1, self.addr2}
|
||||
addr1b = Addr.fromstring("192.168.1.1")
|
||||
addr2b = Addr.fromstring("192.168.1.1:* ssl")
|
||||
set_b = set([addr1b, addr2b])
|
||||
set_b = {addr1b, addr2b}
|
||||
|
||||
self.assertEqual(set_a, set_b)
|
||||
|
||||
|
|
@ -120,8 +120,8 @@ class VirtualHostTest(unittest.TestCase):
|
|||
]
|
||||
self.vhost1 = VirtualHost(
|
||||
"filep",
|
||||
set([Addr.fromstring("localhost")]), False, False,
|
||||
set(['localhost']), raw1, [])
|
||||
{Addr.fromstring("localhost")}, False, False,
|
||||
{'localhost'}, raw1, [])
|
||||
raw2 = [
|
||||
['listen', '69.50.225.155:9000'],
|
||||
[['if', '($scheme', '!=', '"https") '],
|
||||
|
|
@ -130,24 +130,24 @@ class VirtualHostTest(unittest.TestCase):
|
|||
]
|
||||
self.vhost2 = VirtualHost(
|
||||
"filep",
|
||||
set([Addr.fromstring("localhost")]), False, False,
|
||||
set(['localhost']), raw2, [])
|
||||
{Addr.fromstring("localhost")}, False, False,
|
||||
{'localhost'}, raw2, [])
|
||||
raw3 = [
|
||||
['listen', '69.50.225.155:9000'],
|
||||
['rewrite', '^(.*)$', '$scheme://www.domain.com$1', 'permanent']
|
||||
]
|
||||
self.vhost3 = VirtualHost(
|
||||
"filep",
|
||||
set([Addr.fromstring("localhost")]), False, False,
|
||||
set(['localhost']), raw3, [])
|
||||
{Addr.fromstring("localhost")}, False, False,
|
||||
{'localhost'}, raw3, [])
|
||||
raw4 = [
|
||||
['listen', '69.50.225.155:9000'],
|
||||
['server_name', 'return.com']
|
||||
]
|
||||
self.vhost4 = VirtualHost(
|
||||
"filp",
|
||||
set([Addr.fromstring("localhost")]), False, False,
|
||||
set(['localhost']), raw4, [])
|
||||
{Addr.fromstring("localhost")}, False, False,
|
||||
{'localhost'}, raw4, [])
|
||||
raw_has_hsts = [
|
||||
['listen', '69.50.225.155:9000'],
|
||||
['server_name', 'return.com'],
|
||||
|
|
@ -155,16 +155,16 @@ class VirtualHostTest(unittest.TestCase):
|
|||
]
|
||||
self.vhost_has_hsts = VirtualHost(
|
||||
"filep",
|
||||
set([Addr.fromstring("localhost")]), False, False,
|
||||
set(['localhost']), raw_has_hsts, [])
|
||||
{Addr.fromstring("localhost")}, False, False,
|
||||
{'localhost'}, raw_has_hsts, [])
|
||||
|
||||
def test_eq(self):
|
||||
from certbot_nginx._internal.obj import Addr
|
||||
from certbot_nginx._internal.obj import VirtualHost
|
||||
vhost1b = VirtualHost(
|
||||
"filep",
|
||||
set([Addr.fromstring("localhost blah")]), False, False,
|
||||
set(['localhost']), [], [])
|
||||
{Addr.fromstring("localhost blah")}, False, False,
|
||||
{'localhost'}, [], [])
|
||||
|
||||
self.assertEqual(vhost1b, self.vhost1)
|
||||
self.assertEqual(str(vhost1b), str(self.vhost1))
|
||||
|
|
@ -203,8 +203,8 @@ class VirtualHostTest(unittest.TestCase):
|
|||
['#', ' managed by Certbot'], []]
|
||||
vhost_haystack = VirtualHost(
|
||||
"filp",
|
||||
set([Addr.fromstring("localhost")]), False, False,
|
||||
set(['localhost']), test_haystack, [])
|
||||
{Addr.fromstring("localhost")}, False, False,
|
||||
{'localhost'}, test_haystack, [])
|
||||
test_bad_haystack = [['listen', '80'], ['root', '/var/www/html'],
|
||||
['index', 'index.html index.htm index.nginx-debian.html'],
|
||||
['server_name', 'two.functorkitten.xyz'], ['listen', '443 ssl'],
|
||||
|
|
@ -219,8 +219,8 @@ class VirtualHostTest(unittest.TestCase):
|
|||
['#', ' managed by Certbot'], []]
|
||||
vhost_bad_haystack = VirtualHost(
|
||||
"filp",
|
||||
set([Addr.fromstring("localhost")]), False, False,
|
||||
set(['localhost']), test_bad_haystack, [])
|
||||
{Addr.fromstring("localhost")}, False, False,
|
||||
{'localhost'}, test_bad_haystack, [])
|
||||
self.assertTrue(vhost_haystack.contains_list(test_needle))
|
||||
self.assertFalse(vhost_bad_haystack.contains_list(test_needle))
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ class ParsingHooksTest(unittest.TestCase):
|
|||
fake_parser1.should_parse = lambda x: False
|
||||
parsing_hooks.return_value = (fake_parser1,)
|
||||
self.assertRaises(errors.MisconfigurationError, parse_raw, [])
|
||||
parsing_hooks.return_value = tuple()
|
||||
parsing_hooks.return_value = ()
|
||||
self.assertRaises(errors.MisconfigurationError, parse_raw, [])
|
||||
|
||||
def test_parse_raw_passes_add_spaces(self):
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ class NginxParserTest(util.NginxTest):
|
|||
vhost = obj.VirtualHost(nparser.abs_path('sites-enabled/globalssl.com'),
|
||||
[obj.Addr('4.8.2.6', '57', True, False,
|
||||
False, False)],
|
||||
True, True, set(['globalssl.com']), [], [0])
|
||||
True, True, {'globalssl.com'}, [], [0])
|
||||
|
||||
globalssl_com = [x for x in vhosts if 'globalssl.com' in x.filep][0]
|
||||
self.assertEqual(vhost, globalssl_com)
|
||||
|
|
@ -139,8 +139,8 @@ class NginxParserTest(util.NginxTest):
|
|||
[obj.Addr('', '8080', False, False,
|
||||
False, False)],
|
||||
False, True,
|
||||
set(['localhost',
|
||||
r'~^(www\.)?(example|bar)\.']),
|
||||
{'localhost',
|
||||
r'~^(www\.)?(example|bar)\.'},
|
||||
[], [10, 1, 9])
|
||||
vhost2 = obj.VirtualHost(nparser.abs_path('nginx.conf'),
|
||||
[obj.Addr('somename', '8080', False, False,
|
||||
|
|
@ -148,7 +148,7 @@ class NginxParserTest(util.NginxTest):
|
|||
obj.Addr('', '8000', False, False,
|
||||
False, False)],
|
||||
False, True,
|
||||
set(['somename', 'another.alias', 'alias']),
|
||||
{'somename', 'another.alias', 'alias'},
|
||||
[], [10, 1, 12])
|
||||
vhost3 = obj.VirtualHost(nparser.abs_path('sites-enabled/example.com'),
|
||||
[obj.Addr('69.50.225.155', '9000',
|
||||
|
|
@ -156,19 +156,19 @@ class NginxParserTest(util.NginxTest):
|
|||
obj.Addr('127.0.0.1', '', False, False,
|
||||
False, False)],
|
||||
False, True,
|
||||
set(['.example.com', 'example.*']), [], [0])
|
||||
{'.example.com', 'example.*'}, [], [0])
|
||||
vhost4 = obj.VirtualHost(nparser.abs_path('sites-enabled/default'),
|
||||
[obj.Addr('myhost', '', False, True,
|
||||
False, False),
|
||||
obj.Addr('otherhost', '', False, True,
|
||||
False, False)],
|
||||
False, True, set(['www.example.org']),
|
||||
False, True, {'www.example.org'},
|
||||
[], [0])
|
||||
vhost5 = obj.VirtualHost(nparser.abs_path('foo.conf'),
|
||||
[obj.Addr('*', '80', True, True,
|
||||
False, False)],
|
||||
True, True, set(['*.www.foo.com',
|
||||
'*.www.example.com']),
|
||||
True, True, {'*.www.foo.com',
|
||||
'*.www.example.com'},
|
||||
[], [2, 1, 0])
|
||||
|
||||
self.assertEqual(14, len(vhosts))
|
||||
|
|
@ -208,11 +208,11 @@ class NginxParserTest(util.NginxTest):
|
|||
nparser = parser.NginxParser(self.config_path)
|
||||
mock_vhost = obj.VirtualHost(nparser.abs_path('nginx.conf'),
|
||||
None, None, None,
|
||||
set(['localhost',
|
||||
r'~^(www\.)?(example|bar)\.']),
|
||||
{'localhost',
|
||||
r'~^(www\.)?(example|bar)\.'},
|
||||
None, [10, 1, 9])
|
||||
example_com = nparser.abs_path('sites-enabled/example.com')
|
||||
names = set(['.example.com', 'example.*'])
|
||||
names = {'.example.com', 'example.*'}
|
||||
mock_vhost.filep = example_com
|
||||
mock_vhost.names = names
|
||||
mock_vhost.path = [0]
|
||||
|
|
@ -232,8 +232,8 @@ class NginxParserTest(util.NginxTest):
|
|||
nparser = parser.NginxParser(self.config_path)
|
||||
mock_vhost = obj.VirtualHost(nparser.abs_path('nginx.conf'),
|
||||
None, None, None,
|
||||
set(['localhost',
|
||||
r'~^(www\.)?(example|bar)\.']),
|
||||
{'localhost',
|
||||
r'~^(www\.)?(example|bar)\.'},
|
||||
None, [10, 1, 9])
|
||||
nparser.add_server_directives(mock_vhost,
|
||||
[['foo', 'bar'], ['\n ', 'ssl_certificate', ' ',
|
||||
|
|
@ -243,7 +243,7 @@ class NginxParserTest(util.NginxTest):
|
|||
self.assertEqual(1, len(re.findall(ssl_re, dump)))
|
||||
|
||||
example_com = nparser.abs_path('sites-enabled/example.com')
|
||||
names = set(['.example.com', 'example.*'])
|
||||
names = {'.example.com', 'example.*'}
|
||||
mock_vhost.filep = example_com
|
||||
mock_vhost.names = names
|
||||
mock_vhost.path = [0]
|
||||
|
|
@ -264,7 +264,7 @@ class NginxParserTest(util.NginxTest):
|
|||
]]])
|
||||
|
||||
server_conf = nparser.abs_path('server.conf')
|
||||
names = set(['alias', 'another.alias', 'somename'])
|
||||
names = {'alias', 'another.alias', 'somename'}
|
||||
mock_vhost.filep = server_conf
|
||||
mock_vhost.names = names
|
||||
mock_vhost.path = []
|
||||
|
|
@ -279,7 +279,7 @@ class NginxParserTest(util.NginxTest):
|
|||
example_com = nparser.abs_path('sites-enabled/example.com')
|
||||
mock_vhost = obj.VirtualHost(example_com,
|
||||
None, None, None,
|
||||
set(['.example.com', 'example.*']),
|
||||
{'.example.com', 'example.*'},
|
||||
None, [0])
|
||||
nparser.add_server_directives(mock_vhost,
|
||||
[['\n ', '#', ' ', 'what a nice comment']])
|
||||
|
|
@ -301,7 +301,7 @@ class NginxParserTest(util.NginxTest):
|
|||
|
||||
def test_replace_server_directives(self):
|
||||
nparser = parser.NginxParser(self.config_path)
|
||||
target = set(['.example.com', 'example.*'])
|
||||
target = {'.example.com', 'example.*'}
|
||||
filep = nparser.abs_path('sites-enabled/example.com')
|
||||
mock_vhost = obj.VirtualHost(filep, None, None, None, target, None, [0])
|
||||
nparser.update_or_add_server_directives(
|
||||
|
|
@ -314,7 +314,7 @@ class NginxParserTest(util.NginxTest):
|
|||
['server_name', 'foobar.com'], ['#', COMMENT],
|
||||
['server_name', 'example.*'], []
|
||||
]]])
|
||||
mock_vhost.names = set(['foobar.com', 'example.*'])
|
||||
mock_vhost.names = {'foobar.com', 'example.*'}
|
||||
nparser.update_or_add_server_directives(
|
||||
mock_vhost, [['ssl_certificate', 'cert.pem']])
|
||||
self.assertEqual(
|
||||
|
|
@ -328,19 +328,19 @@ class NginxParserTest(util.NginxTest):
|
|||
|
||||
def test_get_best_match(self):
|
||||
target_name = 'www.eff.org'
|
||||
names = [set(['www.eff.org', 'irrelevant.long.name.eff.org', '*.org']),
|
||||
set(['eff.org', 'ww2.eff.org', 'test.www.eff.org']),
|
||||
set(['*.eff.org', '.www.eff.org']),
|
||||
set(['.eff.org', '*.org']),
|
||||
set(['www.eff.', 'www.eff.*', '*.www.eff.org']),
|
||||
set(['example.com', r'~^(www\.)?(eff.+)', '*.eff.*']),
|
||||
set(['*', r'~^(www\.)?(eff.+)']),
|
||||
set(['www.*', r'~^(www\.)?(eff.+)', '.test.eff.org']),
|
||||
set(['*.org', r'*.eff.org', 'www.eff.*']),
|
||||
set(['*.www.eff.org', 'www.*']),
|
||||
set(['*.org']),
|
||||
set([]),
|
||||
set(['example.com'])]
|
||||
names = [{'www.eff.org', 'irrelevant.long.name.eff.org', '*.org'},
|
||||
{'eff.org', 'ww2.eff.org', 'test.www.eff.org'},
|
||||
{'*.eff.org', '.www.eff.org'},
|
||||
{'.eff.org', '*.org'},
|
||||
{'www.eff.', 'www.eff.*', '*.www.eff.org'},
|
||||
{'example.com', r'~^(www\.)?(eff.+)', '*.eff.*'},
|
||||
{'*', r'~^(www\.)?(eff.+)'},
|
||||
{'www.*', r'~^(www\.)?(eff.+)', '.test.eff.org'},
|
||||
{'*.org', r'*.eff.org', 'www.eff.*'},
|
||||
{'*.www.eff.org', 'www.*'},
|
||||
{'*.org'},
|
||||
set(),
|
||||
{'example.com'}]
|
||||
winners = [('exact', 'www.eff.org'),
|
||||
(None, None),
|
||||
('exact', '.www.eff.org'),
|
||||
|
|
|
|||
|
|
@ -91,17 +91,17 @@ ARGPARSE_PARAMS_TO_REMOVE = ("const", "nargs", "type",)
|
|||
|
||||
|
||||
# These sets are used when to help detect options set by the user.
|
||||
EXIT_ACTIONS = set(("help", "version",))
|
||||
EXIT_ACTIONS = {"help", "version",}
|
||||
|
||||
|
||||
ZERO_ARG_ACTIONS = set(("store_const", "store_true",
|
||||
"store_false", "append_const", "count",))
|
||||
ZERO_ARG_ACTIONS = {"store_const", "store_true",
|
||||
"store_false", "append_const", "count",}
|
||||
|
||||
|
||||
# Maps a config option to a set of config options that may have modified it.
|
||||
# This dictionary is used recursively, so if A modifies B and B modifies C,
|
||||
# it is determined that C was modified by the user if A was modified.
|
||||
VAR_MODIFIERS = {"account": set(("server",)),
|
||||
"renew_hook": set(("deploy_hook",)),
|
||||
"server": set(("dry_run", "staging",)),
|
||||
"webroot_map": set(("webroot_path",))}
|
||||
VAR_MODIFIERS = {"account": {"server",},
|
||||
"renew_hook": {"deploy_hook",},
|
||||
"server": {"dry_run", "staging",},
|
||||
"webroot_map": {"webroot_path",}}
|
||||
|
|
|
|||
|
|
@ -890,7 +890,7 @@ def enhance(config, plugins):
|
|||
"""
|
||||
supported_enhancements = ["hsts", "redirect", "uir", "staple"]
|
||||
# Check that at least one enhancement was requested on command line
|
||||
oldstyle_enh = any([getattr(config, enh) for enh in supported_enhancements])
|
||||
oldstyle_enh = any(getattr(config, enh) for enh in supported_enhancements)
|
||||
if not enhancements.are_requested(config) and not oldstyle_enh:
|
||||
msg = ("Please specify one or more enhancement types to configure. To list "
|
||||
"the available enhancement types, run:\n\n%s --help enhance\n")
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ permitted by DNS standards.)
|
|||
super(Authenticator, self).__init__(*args, **kwargs)
|
||||
self.reverter = reverter.Reverter(self.config)
|
||||
self.reverter.recovery_routine()
|
||||
self.env = dict() \
|
||||
self.env = {} \
|
||||
# type: Dict[achallenges.KeyAuthorizationAnnotatedChallenge, Dict[str, str]]
|
||||
self.subsequent_dns_challenge = False
|
||||
self.subsequent_any_challenge = False
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ def choose_plugin(prepared, question):
|
|||
|
||||
while True:
|
||||
disp = z_util(interfaces.IDisplay)
|
||||
if "CERTBOT_AUTO" in os.environ and names == set(("apache", "nginx")):
|
||||
if "CERTBOT_AUTO" in os.environ and names == {"apache", "nginx"}:
|
||||
# The possibility of being offered exactly apache and nginx here
|
||||
# is new interactivity brought by https://github.com/certbot/certbot/issues/4079,
|
||||
# so set apache as a default for those kinds of non-interactive use
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ def _choose_names_manually(prompt_prefix=""):
|
|||
cli_flag="--domains", force_interactive=True)
|
||||
|
||||
if code == display_util.OK:
|
||||
invalid_domains = dict()
|
||||
invalid_domains = {}
|
||||
retry_message = ""
|
||||
try:
|
||||
domain_list = display_util.separate_list_input(input_)
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class PluginStorage(object):
|
|||
|
||||
:raises .errors.PluginStorageError: when unable to open or read the file
|
||||
"""
|
||||
data = dict() # type: Dict[str, Any]
|
||||
data = {} # type: Dict[str, Any]
|
||||
filedata = ""
|
||||
try:
|
||||
with open(self._storagepath, 'r') as fh:
|
||||
|
|
@ -107,7 +107,7 @@ class PluginStorage(object):
|
|||
self._initialize_storage()
|
||||
|
||||
if not self._classkey in self._data.keys():
|
||||
self._data[self._classkey] = dict()
|
||||
self._data[self._classkey] = {}
|
||||
self._data[self._classkey][key] = value
|
||||
|
||||
def fetch(self, key):
|
||||
|
|
|
|||
|
|
@ -271,7 +271,7 @@ class ChooseNamesTest(unittest.TestCase):
|
|||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_filter_names_valid_return(self, mock_util):
|
||||
self.mock_install.get_all_names.return_value = set(["example.com"])
|
||||
self.mock_install.get_all_names.return_value = {"example.com"}
|
||||
mock_util().checklist.return_value = (display_util.OK, ["example.com"])
|
||||
|
||||
names = self._call(self.mock_install)
|
||||
|
|
@ -280,7 +280,7 @@ class ChooseNamesTest(unittest.TestCase):
|
|||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_filter_namees_override_question(self, mock_util):
|
||||
self.mock_install.get_all_names.return_value = set(["example.com"])
|
||||
self.mock_install.get_all_names.return_value = {"example.com"}
|
||||
mock_util().checklist.return_value = (display_util.OK, ["example.com"])
|
||||
names = self._call(self.mock_install, "Custom")
|
||||
self.assertEqual(names, ["example.com"])
|
||||
|
|
@ -289,14 +289,14 @@ class ChooseNamesTest(unittest.TestCase):
|
|||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_filter_names_nothing_selected(self, mock_util):
|
||||
self.mock_install.get_all_names.return_value = set(["example.com"])
|
||||
self.mock_install.get_all_names.return_value = {"example.com"}
|
||||
mock_util().checklist.return_value = (display_util.OK, [])
|
||||
|
||||
self.assertEqual(self._call(self.mock_install), [])
|
||||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_filter_names_cancel(self, mock_util):
|
||||
self.mock_install.get_all_names.return_value = set(["example.com"])
|
||||
self.mock_install.get_all_names.return_value = {"example.com"}
|
||||
mock_util().checklist.return_value = (
|
||||
display_util.CANCEL, ["example.com"])
|
||||
|
||||
|
|
|
|||
|
|
@ -173,14 +173,14 @@ class FileOutputDisplayTest(unittest.TestCase):
|
|||
code, tag_list = self.displayer.checklist(
|
||||
"msg", TAGS, force_interactive=True)
|
||||
self.assertEqual(
|
||||
(code, set(tag_list)), (display_util.OK, set(["tag1", "tag2"])))
|
||||
(code, set(tag_list)), (display_util.OK, {"tag1", "tag2"}))
|
||||
|
||||
@mock.patch("certbot.display.util.input_with_timeout")
|
||||
def test_checklist_empty(self, mock_input):
|
||||
mock_input.return_value = ""
|
||||
code, tag_list = self.displayer.checklist("msg", TAGS, force_interactive=True)
|
||||
self.assertEqual(
|
||||
(code, set(tag_list)), (display_util.OK, set(["tag1", "tag2", "tag3"])))
|
||||
(code, set(tag_list)), (display_util.OK, {"tag1", "tag2", "tag3"}))
|
||||
|
||||
@mock.patch("certbot.display.util.input_with_timeout")
|
||||
def test_checklist_miss_valid(self, mock_input):
|
||||
|
|
@ -212,9 +212,9 @@ class FileOutputDisplayTest(unittest.TestCase):
|
|||
["2", "3"],
|
||||
]
|
||||
exp = [
|
||||
set(["tag1"]),
|
||||
set(["tag1", "tag2"]),
|
||||
set(["tag2", "tag3"]),
|
||||
{"tag1"},
|
||||
{"tag1", "tag2"},
|
||||
{"tag2", "tag3"},
|
||||
]
|
||||
for i, list_ in enumerate(indices):
|
||||
set_tags = set(
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class ErrorHandlerTest(unittest.TestCase):
|
|||
from certbot._internal import error_handler
|
||||
|
||||
self.init_func = mock.MagicMock()
|
||||
self.init_args = set((42,))
|
||||
self.init_args = {42,}
|
||||
self.init_kwargs = {'foo': 'bar'}
|
||||
self.handler = error_handler.ErrorHandler(self.init_func,
|
||||
*self.init_args,
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class ValidateHooksTest(unittest.TestCase):
|
|||
self._call(config)
|
||||
|
||||
types = [call[0][1] for call in mock_validate_hook.call_args_list]
|
||||
self.assertEqual(set(("pre", "post", "deploy",)), set(types[:-1]))
|
||||
self.assertEqual({"pre", "post", "deploy",}, set(types[:-1]))
|
||||
# This ensures error messages are about deploy hooks when appropriate
|
||||
self.assertEqual("renew", types[-1])
|
||||
|
||||
|
|
|
|||
|
|
@ -1583,9 +1583,9 @@ class EnhanceTest(test_util.ConfigTestCase):
|
|||
not_req_enh = ["uir"]
|
||||
self.assertTrue(mock_client.enhance_config.called)
|
||||
self.assertTrue(
|
||||
all([getattr(mock_client.config, e) for e in req_enh]))
|
||||
all(getattr(mock_client.config, e) for e in req_enh))
|
||||
self.assertFalse(
|
||||
any([getattr(mock_client.config, e) for e in not_req_enh]))
|
||||
any(getattr(mock_client.config, e) for e in not_req_enh))
|
||||
self.assertTrue(
|
||||
"example.com" in mock_client.enhance_config.call_args[0][0])
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ class InstallerTest(test_util.ConfigTestCase):
|
|||
self.reverter = self.installer.reverter
|
||||
|
||||
def test_add_to_real_checkpoint(self):
|
||||
files = set(("foo.bar", "baz.qux",))
|
||||
files = {"foo.bar", "baz.qux",}
|
||||
save_notes = "foo bar baz qux"
|
||||
self._test_wrapped_method("add_to_checkpoint", files, save_notes)
|
||||
|
||||
|
|
@ -105,7 +105,7 @@ class InstallerTest(test_util.ConfigTestCase):
|
|||
self._test_add_to_checkpoint_common(True)
|
||||
|
||||
def _test_add_to_checkpoint_common(self, temporary):
|
||||
files = set(("foo.bar", "baz.qux",))
|
||||
files = {"foo.bar", "baz.qux",}
|
||||
save_notes = "foo bar baz qux"
|
||||
|
||||
installer_func = functools.partial(self.installer.add_to_checkpoint,
|
||||
|
|
@ -242,17 +242,17 @@ class AddrTest(unittest.TestCase):
|
|||
|
||||
def test_set_inclusion(self):
|
||||
from certbot.plugins.common import Addr
|
||||
set_a = set([self.addr1, self.addr2])
|
||||
set_a = {self.addr1, self.addr2}
|
||||
addr1b = Addr.fromstring("192.168.1.1")
|
||||
addr2b = Addr.fromstring("192.168.1.1:*")
|
||||
set_b = set([addr1b, addr2b])
|
||||
set_b = {addr1b, addr2b}
|
||||
|
||||
self.assertEqual(set_a, set_b)
|
||||
|
||||
set_c = set([self.addr4, self.addr5])
|
||||
set_c = {self.addr4, self.addr5}
|
||||
addr4b = Addr.fromstring("[fe00::1]")
|
||||
addr5b = Addr.fromstring("[fe00::1]:*")
|
||||
set_d = set([addr4b, addr5b])
|
||||
set_d = {addr4b, addr5b}
|
||||
|
||||
self.assertEqual(set_c, set_d)
|
||||
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ class AuthenticatorTest(unittest.TestCase):
|
|||
|
||||
self.auth.cleanup(["chall1"])
|
||||
self.assertEqual(self.auth.served, {
|
||||
"server1": set(), "server2": set(["chall2", "chall3"])})
|
||||
"server1": set(), "server2": {"chall2", "chall3"}})
|
||||
self.auth.servers.stop.assert_called_once_with(1)
|
||||
|
||||
self.auth.servers.running.return_value = {
|
||||
|
|
@ -169,12 +169,12 @@ class AuthenticatorTest(unittest.TestCase):
|
|||
}
|
||||
self.auth.cleanup(["chall2"])
|
||||
self.assertEqual(self.auth.served, {
|
||||
"server1": set(), "server2": set(["chall3"])})
|
||||
"server1": set(), "server2": {"chall3"}})
|
||||
self.assertEqual(1, self.auth.servers.stop.call_count)
|
||||
|
||||
self.auth.cleanup(["chall3"])
|
||||
self.assertEqual(self.auth.served, {
|
||||
"server1": set(), "server2": set([])})
|
||||
"server1": set(), "server2": set()})
|
||||
self.auth.servers.stop.assert_called_with(2)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ class ReverterCheckpointLocalTest(test_util.ConfigTestCase):
|
|||
|
||||
# Check to make sure new files are also checked...
|
||||
self.assertRaises(errors.ReverterError, self.reverter.add_to_checkpoint,
|
||||
set([config3]), "invalid save")
|
||||
{config3}, "invalid save")
|
||||
|
||||
def test_multiple_saves_and_temp_revert(self):
|
||||
self.reverter.add_to_temp_checkpoint(self.sets[0], "save1")
|
||||
|
|
@ -414,9 +414,9 @@ def setup_test_files():
|
|||
with open(config2, "w") as file_fd:
|
||||
file_fd.write("directive-dir2")
|
||||
|
||||
sets = [set([config1]),
|
||||
set([config2]),
|
||||
set([config1, config2])]
|
||||
sets = [{config1},
|
||||
{config2},
|
||||
{config1, config2}]
|
||||
|
||||
return config1, config2, dir1, dir2, sets
|
||||
|
||||
|
|
|
|||
2
letsencrypt-auto-source/rebuild_dependencies.py
Executable file → Normal file
2
letsencrypt-auto-source/rebuild_dependencies.py
Executable file → Normal file
|
|
@ -103,7 +103,7 @@ def _requirements_from_one_distribution(distribution, verbose):
|
|||
os.chmod(script, 0o755)
|
||||
|
||||
_write_to(authoritative_constraints, '\n'.join(
|
||||
['{0}=={1}'.format(package, version) for package, version in AUTHORITATIVE_CONSTRAINTS.items()]))
|
||||
'{0}=={1}'.format(package, version) for package, version in AUTHORITATIVE_CONSTRAINTS.items()))
|
||||
|
||||
command = ['docker', 'run', '--rm', '--cidfile', cid_file,
|
||||
'-v', '{0}:/tmp/certbot'.format(CERTBOT_REPO_PATH),
|
||||
|
|
|
|||
|
|
@ -124,7 +124,9 @@ def _check_version(version_str, major_version):
|
|||
return False
|
||||
|
||||
|
||||
def subprocess_with_print(cmd, env=os.environ, shell=False):
|
||||
def subprocess_with_print(cmd, env=None, shell=False):
|
||||
if env is None:
|
||||
env = os.environ
|
||||
print('+ {0}'.format(subprocess.list2cmdline(cmd)) if isinstance(cmd, list) else cmd)
|
||||
subprocess.check_call(cmd, env=env, shell=shell)
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import sys
|
|||
|
||||
from cryptography.hazmat.backends import default_backend
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
||||
import josepy as jose
|
||||
|
||||
from acme import client as acme_client
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ extra_preamble=pywin32_paths.py
|
|||
'''.format(certbot_version=certbot_version,
|
||||
installer_suffix='win_amd64' if PYTHON_BITNESS == 64 else 'win32',
|
||||
python_bitness=PYTHON_BITNESS,
|
||||
python_version='.'.join([str(item) for item in PYTHON_VERSION])))
|
||||
python_version='.'.join(str(item) for item in PYTHON_VERSION)))
|
||||
|
||||
return installer_cfg_path
|
||||
|
||||
|
|
@ -184,7 +184,7 @@ if __name__ == '__main__':
|
|||
|
||||
if sys.version_info[:2] != PYTHON_VERSION[:2]:
|
||||
raise RuntimeError('This script must be run with Python {0}'
|
||||
.format('.'.join([str(item) for item in PYTHON_VERSION[0:2]])))
|
||||
.format('.'.join(str(item) for item in PYTHON_VERSION[0:2])))
|
||||
|
||||
if struct.calcsize('P') * 8 != PYTHON_BITNESS:
|
||||
raise RuntimeError('This script must be run with a {0} bit version of Python.'
|
||||
|
|
|
|||
Loading…
Reference in a new issue