Warning
This document is for an old release 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, struct.pack("256s", ifname[:15].encode("utf-8")))[20:24] # SIOCGIFADDR
)