summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2016-10-14 14:54:50 -0600
committerBert JW Regeer <bertjw@regeer.org>2016-10-14 15:06:26 -0600
commit4b7cdc336bca1ebce44646ac99f08b5a2386228b (patch)
tree1657e480c18029e91ba58950ecde1ca6fd99d989
parentfda05ee9ec48a970031b325c21a618beaec9a8c7 (diff)
downloadwaitress-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.py5
-rw-r--r--waitress/compat.py1
-rw-r--r--waitress/tests/test_adjustments.py14
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]