diff --git a/.github/appveyor.yml b/.github/appveyor.yml index 18aa55b3c..39dae8813 100644 --- a/.github/appveyor.yml +++ b/.github/appveyor.yml @@ -58,7 +58,7 @@ for: - wsl whoami - wsl cat /etc/os-release - wsl sudo DEBIAN_FRONTEND=noninteractive apt-get update - - wsl sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-venv python3-pip + - wsl sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3-venv python3-pip - wsl python3 -m venv . - wsl bin/pip install -U pip tox test_script: diff --git a/gunicorn/packaging_support.py b/gunicorn/packaging_support.py index c84099cd5..554fc6b47 100644 --- a/gunicorn/packaging_support.py +++ b/gunicorn/packaging_support.py @@ -26,8 +26,9 @@ def _minimum_version_of_installed(package_name, spew=True): all_spec.append(requirement.specifier) # simplication: this will fail on > operator (mentioned is not acceptable) all_version = [spec.version for spec_list in all_spec for spec in spec_list] + # Python 3.7 cleanup: sum(iterable, /, start=0) acceptable_mentioned = sum( - (list(spec_list.filter(all_version)) for spec_list in all_spec), start=[] + (list(spec_list.filter(all_version)) for spec_list in all_spec), [] ) lowest_mentioned = min(acceptable_mentioned, default=None) if lowest_mentioned: diff --git a/tests/test_e2e.py b/tests/test_e2e.py index 4c8ee5966..af737801f 100644 --- a/tests/test_e2e.py +++ b/tests/test_e2e.py @@ -63,10 +63,14 @@ def bad_method(): import signal import os -logging.basicConfig(force=True) -logger = logging.getLogger(__name__) +if sys.version_info >= (3, 8): + logging.basicConfig(force=True) + logger = logging.getLogger(__name__) + logger.info("logger has been reset") +else: + logger = logging.getLogger(__name__) + logging.basicConfig() -logger.warning("logger has been reset before import error happens") # os.kill(os.getppid(), signal.SIGTERM) # sys.exit(3) import syntax_error @@ -119,7 +123,7 @@ def run(self): sys.executable, "-m", "gunicorn", - #"--config=%s" % os.devnull, + # "--config=%s" % os.devnull, "--config=%s" % self.conf_path, "--log-level=debug", "--worker-class=sync", @@ -215,7 +219,9 @@ def test_process_request_after_fixing_syntax_error(): assert "load_wsgi" not in body.lower() access_log = server._read_stdio( - key=OUT, wait_for_keyword='GET / HTTP/1.1" 500 ', timeout_sec=5, + key=OUT, + wait_for_keyword='GET / HTTP/1.1" 500 ', + timeout_sec=5, ) # trigger reloader server.write_ok() @@ -235,7 +241,9 @@ def test_process_request_after_fixing_syntax_error(): assert "response body from app" == body debug_log = server._read_stdio( - key=ERR, wait_for_keyword="stderr from app", timeout_sec=5, + key=ERR, + wait_for_keyword="stderr from app", + timeout_sec=5, ) shutdown_log = server._graceful_quit() diff --git a/tests/test_e2e_debug.py b/tests/test_e2e_debug.py index 9c22cadc9..13eadab2d 100644 --- a/tests/test_e2e_debug.py +++ b/tests/test_e2e_debug.py @@ -34,12 +34,15 @@ import sys import logging -logging.basicConfig(force=True) -logger = logging.getLogger(__name__) +if sys.version_info >= (3, 8): + logging.basicConfig(force=True) + logger = logging.getLogger(__name__) + logger.info("logger has been reset") +else: + logging.basicConfig() + logger = logging.getLogger(__name__) def app(environ_, start_response): - # print("stdout from app", file=sys.stdout) - logger.warning("logger has been reset") print("stderr from app", file=sys.stderr) # needed for Python <= 3.8 sys.stderr.flush() @@ -101,9 +104,9 @@ def run(self): "--log-level=debug", "--workers=3", "--worker-class=sync", - #"--enable-stdio-inheritance", - #"--access-logfile=-", - #"--disable-redirect-access-to-syslog", + # "--enable-stdio-inheritance", + # "--access-logfile=-", + # "--disable-redirect-access-to-syslog", "--graceful-timeout=%d" % GRACEFUL_TIMEOUT, "--on-fatal=world-readable", # "--reload", @@ -187,7 +190,9 @@ def test_process_shutdown_cleanly_after_inserting_syntax_error(): assert "response body from app" == body debug_log = server._read_stdio( - key=ERR, wait_for_keyword="stderr from app", timeout_sec=5, + key=ERR, + wait_for_keyword="stderr from app", + timeout_sec=5, ) # trigger reloader