pick_port: unified code for testing/hooks
This commit is contained in:
parent
9665def3bd
commit
01c3bcde81
3 changed files with 24 additions and 24 deletions
|
|
@ -158,18 +158,8 @@ class HttpHooksCallbackDaemon(ThreadedHookCallbackDaemon):
|
|||
return socket.gethostname() or '127.0.0.1'
|
||||
|
||||
def get_available_port(self, min_port=20000, max_port=65535):
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
hostname = self.get_hostname()
|
||||
|
||||
for _ in range(min_port, max_port):
|
||||
pick_port = random.randint(min_port, max_port)
|
||||
try:
|
||||
sock.bind((hostname, pick_port))
|
||||
sock.close()
|
||||
del sock
|
||||
return pick_port
|
||||
except OSError:
|
||||
pass
|
||||
from rhodecode.lib.utils2 import get_available_port as _get_port
|
||||
return _get_port(min_port, max_port)
|
||||
|
||||
def _prepare(self, txn_id=None, host=None, port=None):
|
||||
if not host or host == "*":
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ import urllib
|
|||
import urlobject
|
||||
import uuid
|
||||
import getpass
|
||||
import socket
|
||||
import random
|
||||
from functools import update_wrapper, partial, wraps
|
||||
|
||||
import pygments.lexers
|
||||
|
|
@ -1171,3 +1173,21 @@ def user_agent_normalizer(user_agent_raw, safe=True):
|
|||
raise
|
||||
|
||||
return ua
|
||||
|
||||
|
||||
def get_available_port(min_port=40000, max_port=55555):
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
hostname = '127.0.0.1'
|
||||
pick_port = min_port
|
||||
|
||||
for _ in range(min_port, max_port):
|
||||
pick_port = random.randint(min_port, max_port)
|
||||
try:
|
||||
sock.bind((hostname, pick_port))
|
||||
sock.close()
|
||||
break
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
del sock
|
||||
return pick_port
|
||||
|
|
|
|||
|
|
@ -199,18 +199,8 @@ def ini_settings(ini_config):
|
|||
|
||||
|
||||
def get_available_port(min_port=40000, max_port=55555):
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
hostname = '127.0.0.1'
|
||||
|
||||
for _ in range(min_port, max_port):
|
||||
pick_port = random.randint(min_port, max_port)
|
||||
try:
|
||||
sock.bind((hostname, pick_port))
|
||||
sock.close()
|
||||
del sock
|
||||
return pick_port
|
||||
except OSError:
|
||||
pass
|
||||
from rhodecode.lib.utils2 import get_available_port as _get_port
|
||||
return _get_port(min_port, max_port)
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue