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
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''