#!/usr/bin/env python # Unit tests to run wait-for-it.py unit tests in several different docker images import unittest import os import docker from parameterized import parameterized client = docker.from_env() app_path = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..')) volumes = {app_path: {'bind': '/app', 'mode': 'ro'}} class TestContainers(unittest.TestCase): """ Test multiple container types with the test cases in wait-for-it.py """ @parameterized.expand([ "python:3.5-buster", "python:3.5-stretch", "dougg/alpine-busybox:alpine-3.11.3_busybox-1.30.1", "dougg/alpine-busybox:alpine-3.11.3_busybox-1.31.1" ]) def test_image(self, image): print(image) command="/app/test/wait-for-it.py" container = client.containers.run(image, command=command, volumes=volumes, detach=True) result = container.wait() logs = container.logs() container.remove() self.assertEqual(result["StatusCode"], 0) if __name__ == '__main__': unittest.main()