|
|
import pytest_container |
|
|
import os |
|
|
|
|
|
|
|
|
if not 'REGISTRY' in os.environ: |
|
|
REGISTRY = 'ghcr.io' |
|
|
else: |
|
|
REGISTRY = os.environ['REGISTRY'] |
|
|
|
|
|
if not 'IMAGE_NAME' in os.environ: |
|
|
IMAGE_NAME = 'containers/llamacpp_python:latest' |
|
|
else: |
|
|
IMAGE_NAME = os.environ['IMAGE_NAME'] |
|
|
|
|
|
if not 'MODEL_NAME' in os.environ: |
|
|
MODEL_NAME = 'granite-7b-lab-Q4_K_M.gguf' |
|
|
else: |
|
|
MODEL_NAME = os.environ['MODEL_NAME'] |
|
|
|
|
|
if not 'MODEL_PATH' in os.environ: |
|
|
MODEL_PATH = "/locallm/models" |
|
|
else: |
|
|
MODEL_PATH = os.environ['MODEL_PATH'] |
|
|
|
|
|
if not 'PORT' in os.environ: |
|
|
PORT = 8001 |
|
|
else: |
|
|
PORT = os.environ['PORT'] |
|
|
try: |
|
|
PORT = int(PORT) |
|
|
except: |
|
|
PORT = 8001 |
|
|
|
|
|
MS = pytest_container.Container( |
|
|
url=f"containers-storage:{os.environ['REGISTRY']}/{os.environ['IMAGE_NAME']}", |
|
|
volume_mounts=[ |
|
|
pytest_container.container.BindMount( |
|
|
container_path="{MODEL_PATH}/{MODEL_NAME}".format(MODEL_PATH=MODEL_PATH, MODEL_NAME=MODEL_NAME), |
|
|
host_path=f"./{MODEL_NAME}", |
|
|
flags=["ro"] |
|
|
) |
|
|
], |
|
|
extra_environment_variables={ |
|
|
"MODEL_PATH": "{MODEL_PATH}/{MODEL_NAME}".format(MODEL_PATH=MODEL_PATH, MODEL_NAME=MODEL_NAME), |
|
|
"HOST": "0.0.0.0", |
|
|
"PORT": f"{PORT}" |
|
|
}, |
|
|
forwarded_ports=[ |
|
|
pytest_container.PortForwarding( |
|
|
container_port=PORT, |
|
|
host_port=PORT |
|
|
) |
|
|
], |
|
|
) |
|
|
|
|
|
def pytest_generate_tests(metafunc): |
|
|
pytest_container.auto_container_parametrize(metafunc) |
|
|
|
|
|
def pytest_addoption(parser): |
|
|
pytest_container.add_logging_level_options(parser) |
|
|
|