whoops, stop warcprox and join thread in test_choose_a_port_for_me

This commit is contained in:
Noah Levitt 2017-04-17 11:47:22 -07:00
parent 1900dfac08
commit 3d87ed61be
2 changed files with 20 additions and 16 deletions

View File

@ -51,7 +51,7 @@ except:
setuptools.setup(
name='warcprox',
version='2.1b1.dev69',
version='2.1b1.dev70',
description='WARC writing MITM HTTP/S proxy',
url='https://github.com/internetarchive/warcprox',
author='Noah Levitt',

View File

@ -1368,23 +1368,27 @@ def test_choose_a_port_for_me(service_registry):
th = threading.Thread(target=controller.run_until_shutdown)
th.start()
try:
# check that service registry entry lists the correct port
start = time.time()
ports = []
while time.time() - start < 30:
svcs = service_registry.available_services('warcprox')
ports = [svc['port'] for svc in svcs]
if controller.proxy.server_port in ports:
break
assert controller.proxy.server_port in ports
# check that service registry entry lists the correct port
start = time.time()
ports = []
while time.time() - start < 30:
svcs = service_registry.available_services('warcprox')
ports = [svc['port'] for svc in svcs]
if controller.proxy.server_port in ports:
break
assert controller.proxy.server_port in ports
# check that the status api lists the correct port
url = 'http://localhost:%s/status' % controller.proxy.server_port
response = requests.get(url)
assert response.status_code == 200
status = json.loads(response.content.decode('ascii'))
assert status['port'] == controller.proxy.server_port
# check that the status api lists the correct port
url = 'http://localhost:%s/status' % controller.proxy.server_port
response = requests.get(url)
assert response.status_code == 200
status = json.loads(response.content.decode('ascii'))
assert status['port'] == controller.proxy.server_port
finally:
controller.stop.set()
th.join()
if __name__ == '__main__':
pytest.main()