diff --git a/tests/compose/test.py b/tests/compose/test.py index 690855d4..4be823b4 100755 --- a/tests/compose/test.py +++ b/tests/compose/test.py @@ -1,6 +1,7 @@ import sys import os import time +import datetime import docker from colorama import Fore, Style import subprocess @@ -22,12 +23,7 @@ def stop(exit_code): print(subprocess.check_output("docker-compose -f " + compose_file + " down", shell=True).decode()) sys.exit(exit_code) -# Sleep for a defined amount of time -def sleep(): - print(Fore.LIGHTMAGENTA_EX + "Sleeping for " + str(timeout) + "m" + Style.RESET_ALL) - time.sleep(timeout*60) - -def health_checks(): +def health_checks(deadline): exit_code = 0 #Iterating trough all containers dictionary for container in client.containers(all=True): @@ -58,7 +54,9 @@ def health_checks(): #Adding the generated dictionary to a list containers.append(containers_dict) - if exit_code != 0: + if exit_code == 0: + return True + else if exit_code != 0 and deadline > datetime.now(): stop(exit_code) def print_logs(): @@ -86,14 +84,19 @@ def hooks(): # Start up containers sys.stdout.flush() +deadline=datetime.now()+datetime.timedelta(minutes=timeout) print(subprocess.check_output("docker-compose -f " + compose_file + " up -d", shell=True).decode()) print() -sleep() +print(Fore.LIGHTMAGENTA_EX + "Sleeping for 10s" + Style.RESET_ALL) +time.sleep(10) print() sys.stdout.flush() print(subprocess.check_output("docker ps -a", shell=True).decode()) print() -health_checks() +while not health_checks(deadline): + print(Fore.LIGHTMAGENTA_EX + "Sleeping for 10s" + Style.RESET_ALL) + sys.stdout.flush() + time.sleep(10) print() hooks() print()