add compose-based test runner for Python 2.7
All checks were successful
CI / validate (push) Successful in 20s
All checks were successful
CI / validate (push) Successful in 20s
Dockerfile.test builds production image with pytest baked in. compose.test.yml mounts source as volume for fast iteration. Usage: podman-compose -f compose.test.yml run --rm test
This commit is contained in:
29
Dockerfile.test
Normal file
29
Dockerfile.test
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
FROM python:2.7-slim
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list && \
|
||||||
|
sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list && \
|
||||||
|
sed -i '/buster-updates/d' /etc/apt/sources.list && \
|
||||||
|
echo 'deb http://archive.debian.org/debian-security buster/updates main' >> /etc/apt/sources.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get upgrade -y && \
|
||||||
|
apt-get install -y --no-install-recommends gcc libc-dev && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN pip install --upgrade "pip<21" "setuptools<45" "wheel<0.38"
|
||||||
|
|
||||||
|
COPY requirements.txt .
|
||||||
|
RUN pip install -r requirements.txt || true
|
||||||
|
RUN pip install pytest
|
||||||
|
|
||||||
|
RUN mkdir -p /app/data && \
|
||||||
|
python -c "import pyasn" 2>/dev/null && \
|
||||||
|
pyasn_util_download.py --latest && \
|
||||||
|
pyasn_util_convert.py --single rib.*.bz2 /app/data/ipasn.dat && \
|
||||||
|
rm -f rib.*.bz2 || \
|
||||||
|
echo "pyasn database setup skipped"
|
||||||
|
|
||||||
|
RUN apt-get purge -y gcc libc-dev && apt-get autoremove -y || true
|
||||||
|
|
||||||
|
CMD ["python", "-m", "pytest", "tests/", "-v", "--tb=short"]
|
||||||
18
compose.test.yml
Normal file
18
compose.test.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# PPF test runner (Python 2.7, production deps + pytest)
|
||||||
|
#
|
||||||
|
# Mounts source and tests as volumes so no rebuild needed between runs.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# podman-compose -f compose.test.yml run --rm test
|
||||||
|
# podman-compose -f compose.test.yml run --rm test python -m pytest tests/test_fetch.py -v
|
||||||
|
|
||||||
|
services:
|
||||||
|
test:
|
||||||
|
container_name: ppf-test
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.test
|
||||||
|
volumes:
|
||||||
|
- .:/app:ro,Z
|
||||||
|
working_dir: /app
|
||||||
|
command: python -m pytest tests/ -v --tb=short
|
||||||
Reference in New Issue
Block a user