Adding Test that the changes can build Image from build context of extended compose-file

Signed-off-by: kjunker <junker.kurt@googlemail.com>
This commit is contained in:
kjunker 2022-02-20 21:54:14 +01:00 committed by Muayyad Alsadi
parent 56b88639ad
commit 91a579b81e
5 changed files with 88 additions and 1 deletions

View File

@ -112,4 +112,8 @@ There is also AWX 17.1.0
Inside `tests/` directory we have many useless docker-compose stacks Inside `tests/` directory we have many useless docker-compose stacks
that are meant to test as much cases as we can to make sure we are compatible that are meant to test as much cases as we can to make sure we are compatible
### pytest
run a pytest with following command
````shell
pytest tests/test_podman_compose.py
````

View File

@ -0,0 +1,8 @@
version: "3"
services:
web:
extends:
file: sub/docker-compose.yml
service: webapp
environment:
- DEBUG=1

View File

@ -0,0 +1,12 @@
version: "3"
services:
webapp:
build:
context: docker/example
dockerfile: Dockerfile
image: localhost/subdir_test:me
ports:
- "8000:8000"
volumes:
- "/data"

View File

@ -0,0 +1 @@
FROM bash as base

View File

@ -0,0 +1,62 @@
from pathlib import Path
import pytest
import podman_compose
import subprocess
def capture(command):
proc = subprocess.Popen(
command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
out, err = proc.communicate()
return out, err, proc.returncode
def test_podman_compose_extends_w_file_subdir():
"""
Test that podman-compose can execute podman-compose -f <file> up with extended File which
includes a build context
:return:
"""
main_path = Path(__file__).parent.parent
command_up = [
"python3",
str(main_path.joinpath("podman_compose.py")),
"-f",
str(main_path.joinpath("tests", "extends_w_file_subdir", "docker-compose.yml")),
"up",
"-d"
]
command_check_container = [
"podman",
"container",
"ps",
"--all",
"--format",
"\"{{.Image}}\""
]
command_down = [
"podman",
"rmi",
"--force",
"localhost/subdir_test:me",
"docker.io/library/bash"
]
out, err, returncode = capture(command_up)
assert 0 == returncode
# check container was created and exists
out, err, returncode = capture(command_check_container)
assert 0 == returncode
assert out == b'"localhost/subdir_test:me"\n'
out, err, returncode = capture(command_down)
# cleanup test image(tags)
assert 0 == returncode
# check container did not exists anymore
out, err, returncode = capture(command_check_container)
assert 0 == returncode
assert out == b''