From 554c485cdcb32ee14b4d21ce0203d43f6d1d9121 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Sat, 3 Aug 2024 22:10:53 +0100 Subject: [PATCH] Replace docker-compose with podman-compose - Fixed broken integration tests because docker-compose is not installed. - Simplify documentation about integration Note that the python implementation of docker-compose is abandoned and was not updated in 3+ years, not installing on several platforms. Instead, podman-compose is actively maintained and is also able to make use of docker-compose when found on disk, so it can be used as a safe replacement. --- .github/workflows/integration-tests.yml | 2 +- CONTRIBUTING.md | 7 +------ test_requirements.txt | 1 + tests/integration/event_source_kafka/test_kafka_source.py | 5 +++-- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 05053994..636390f0 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -31,7 +31,7 @@ jobs: - name: Install package dependencies run: | sudo apt-get update - sudo apt-get --assume-yes --no-install-recommends install libsystemd0 libsystemd-dev pkg-config + sudo apt-get --assume-yes --no-install-recommends install libsystemd0 libsystemd-dev pkg-config podman-compose - name: Install test requirements run: | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6501a8c0..21845c80 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,12 +43,7 @@ We recommend setting up a Python virtual environment to install the test depende ### Integration tests -Integration tests require the addition of [docker](https://docs.docker.com/engine/install/) or [podman](https://podman.io/getting-started/installation) and [docker-compose](https://docs.docker.com/compose/install/). -We recommend installing the Python implementation of `docker-compose` via pip: - -``` -pip install docker-compose -``` +Integration tests require the addition of [docker](https://docs.docker.com/engine/install/) or [podman](https://podman.io/getting-started/installation). Then install the collection directly from your local repo and execute the tests: diff --git a/test_requirements.txt b/test_requirements.txt index 6386d87f..c9c6f83e 100644 --- a/test_requirements.txt +++ b/test_requirements.txt @@ -5,6 +5,7 @@ asyncmock pytest-asyncio pytest-timeout ansible +podman-compose requests ansible-rulebook tox diff --git a/tests/integration/event_source_kafka/test_kafka_source.py b/tests/integration/event_source_kafka/test_kafka_source.py index bb02c7d5..25556c53 100644 --- a/tests/integration/event_source_kafka/test_kafka_source.py +++ b/tests/integration/event_source_kafka/test_kafka_source.py @@ -1,6 +1,7 @@ import json import os import subprocess +import sys import pytest from kafka import KafkaProducer @@ -21,9 +22,9 @@ def kafka_certs(): def kafka_broker(): cwd = os.path.join(TESTS_PATH, "event_source_kafka") print(cwd) - result = subprocess.run(["docker-compose", "up", "-d"], cwd=cwd, check=True) + result = subprocess.run([sys.executable, "-m", "podman_compose", "up", "-d"], cwd=cwd, check=True) yield result - subprocess.run(["docker-compose", "down", "-v"], cwd=cwd, check=True) + subprocess.run([sys.executable, "-m", "podman_compose", "down", "-v"], cwd=cwd, check=True) @pytest.fixture(scope="session")