dockerfiles/uwsgi-nginx/tests/utils.py

64 lines
1.8 KiB
Python

import os
from docker.client import DockerClient
from docker.errors import NotFound
from docker.models.containers import Container
CONTAINER_NAME = "uwsgi-nginx-test"
def get_logs(container: Container) -> str:
logs = container.logs()
return logs.decode("utf-8")
def get_nginx_config(container: Container) -> str:
result = container.exec_run(f"/usr/sbin/nginx -T")
return result.output.decode()
def remove_previous_container(client: DockerClient) -> None:
try:
previous = client.containers.get(CONTAINER_NAME)
previous.stop()
previous.remove()
except NotFound:
return None
def get_response_text1() -> str:
python_version = os.getenv("PYTHON_VERSION")
return f"Hello World from a default Nginx uWSGI Python {python_version} app in a Docker container (default)"
def get_response_text2() -> str:
python_version = os.getenv("PYTHON_VERSION")
return f"Hello World from Nginx uWSGI Python {python_version} app in a Docker container"
def generate_dockerfile_content_custom_app(name: str) -> str:
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
content += "COPY ./application /application\n"
content += "COPY ./prestart.sh /app/prestart.sh\n"
content += "WORKDIR /application\n"
return content
def generate_dockerfile_content_custom_nginx_app(name: str) -> str:
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
content += "COPY app /app\n"
return content
def generate_dockerfile_content_simple_app(name: str) -> str:
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
content += "COPY ./app/main.py /app/main.py\n"
return content
def generate_dockerfile_content_app_with_installs(name: str) -> str:
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
content += "RUN pip install flask\n"
content += "COPY ./app/main.py /app/main.py\n"
return content