Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy_test.base.env
"""Base utilities for working Galaxy test environments.
"""
import fcntl
import os
import socket
import struct
from typing import Optional, Tuple
DEFAULT_WEB_HOST = socket.gethostbyname('localhost')
[docs]def setup_keep_outdir() -> str:
keep_outdir = os.environ.get('GALAXY_TEST_SAVE', '')
if keep_outdir > '':
try:
os.makedirs(keep_outdir)
except Exception:
pass
return keep_outdir
[docs]def target_url_parts() -> Tuple[str, Optional[str], str]:
host = socket.gethostbyname(os.environ.get('GALAXY_TEST_HOST', DEFAULT_WEB_HOST))
port = os.environ.get('GALAXY_TEST_PORT')
if port:
default_url = f"http://{host}:{port}"
else:
default_url = f"http://{host}"
url = os.environ.get('GALAXY_TEST_EXTERNAL', default_url)
return host, port, url
[docs]def get_ip_address(ifname: str) -> str:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15].encode('utf-8'))
)[20:24])