Skip to content

Commit 69a70e6

Browse files
authored
Merge pull request pytest-dev#53 from Daenyth/44-fix
Fix pytest-dev#44 - don't try to bind a random port.
2 parents 586ab63 + cb500c5 commit 69a70e6

File tree

1 file changed

+10
-3
lines changed
  • pytest-server-fixtures/pytest_server_fixtures

1 file changed

+10
-3
lines changed

pytest-server-fixtures/pytest_server_fixtures/base.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
log = logging.getLogger(__name__)
2323
_SESSION_HOST = None
2424

25+
OSX = sys.platform == 'darwin'
26+
2527

2628
def get_ephemeral_host():
2729
"""
@@ -36,9 +38,14 @@ def get_ephemeral_host():
3638
while True:
3739
try:
3840
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
39-
host = '127.{}.{}.{}'.format(random.randrange(1, 255),
40-
random.randrange(1, 255),
41-
random.randrange(2, 255),)
41+
# MacOS / OSX does not support loopback ip addresses other than
42+
# 127.0.0.1 unless they are manually configured (unlike linux)
43+
if OSX:
44+
host = '127.0.0.1'
45+
else:
46+
host = '127.{}.{}.{}'.format(random.randrange(1, 255),
47+
random.randrange(1, 255),
48+
random.randrange(2, 255))
4249
s.bind((host, 5000))
4350
s.listen(0)
4451
_SESSION_HOST = (host, s)

0 commit comments

Comments
 (0)