diff options
author | Bert JW Regeer <bertjw@regeer.org> | 2016-10-14 14:54:50 -0600 |
---|---|---|
committer | Bert JW Regeer <bertjw@regeer.org> | 2016-10-14 15:06:26 -0600 |
commit | 4b7cdc336bca1ebce44646ac99f08b5a2386228b (patch) | |
tree | 1657e480c18029e91ba58950ecde1ca6fd99d989 | |
parent | fda05ee9ec48a970031b325c21a618beaec9a8c7 (diff) | |
download | waitress-4b7cdc336bca1ebce44646ac99f08b5a2386228b.tar.gz |
Python 2 on Windows doesn't allow service names for ports
However Python 3 apparently does, since we have a test for this, and
upon changing things tests started failing on Python 3 on Windows.
-rw-r--r-- | waitress/adjustments.py | 5 | ||||
-rw-r--r-- | waitress/compat.py | 1 | ||||
-rw-r--r-- | waitress/tests/test_adjustments.py | 14 |
3 files changed, 18 insertions, 2 deletions
diff --git a/waitress/adjustments.py b/waitress/adjustments.py index 047ef6e..2ee4cd5 100644 --- a/waitress/adjustments.py +++ b/waitress/adjustments.py @@ -17,8 +17,9 @@ import getopt import socket from waitress.compat import ( - string_types, + PY2, WIN, + string_types, ) truthy = frozenset(('t', 'true', 'y', 'yes', 'on', '1')) @@ -245,7 +246,7 @@ class Adjustments(object): else: (host, port) = (i, str(self.port)) - if WIN: # pragma: no cover + if WIN and PY2: # pragma: no cover try: # Try turning the port into an integer port = int(port) diff --git a/waitress/compat.py b/waitress/compat.py index 2ffcf42..1a061e5 100644 --- a/waitress/compat.py +++ b/waitress/compat.py @@ -8,6 +8,7 @@ except ImportError: # pragma: no cover from urllib import parse as urlparse # True if we are running on Python 3. +PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 # True if we are running on Windows diff --git a/waitress/tests/test_adjustments.py b/waitress/tests/test_adjustments.py index 5c8985a..9446705 100644 --- a/waitress/tests/test_adjustments.py +++ b/waitress/tests/test_adjustments.py @@ -1,6 +1,11 @@ import sys import socket +from waitress.compat import ( + PY2, + WIN, + ) + if sys.version_info[:2] == (2, 6): # pragma: no cover import unittest2 as unittest else: # pragma: no cover @@ -181,6 +186,15 @@ class TestAdjustments(unittest.TestCase): self.assertRaises(ValueError, self._makeOne, listen='127.0.0.1:test') def test_service_port(self): + if WIN and PY2: # pragma: no cover + # On Windows and Python 2 this is broken, so we raise a ValueError + self.assertRaises( + ValueError, + self._makeOne, + listen='127.0.0.1:http', + ) + return + inst = self._makeOne(listen='127.0.0.1:http 0.0.0.0:https') bind_pairs = [sockaddr[:2] for (_, _, _, sockaddr) in inst.listen] |