import os import re import time import shutil import subprocess import logging logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s") DATA_ROOT_DIR = os.environ['CLEARING_TEST_DIR'] CLR_TEST_DIR = os.environ['CLR_TEST_DIR'] RESULT_FILES_DIR = os.environ['RESULT_FILES_DIR'] def run_docker(folder_name, date): print(f"Running docker-compose for {folder_name}") os.chdir("clr_test") subprocess.call('docker compose pull', shell=True) subprocess.call('docker compose build --no-cache', shell=True) subprocess.call('docker compose up -d --abort-on-container-exit --exit-code-from clearing_system', shell=True) subprocess.call(f"docker cp clr_test-clearing_system-1:/opt/clearing/clearing_testing_utils/store/results {CLR_TEST_DIR}/mnt/results") logging.info(os.listdir(f"{CLR_TEST_DIR}/mnt/results")) os.chdir("..") def read_date(folder_name): with open(f"{DATA_ROOT_DIR}/{folder_name}/date.txt") as f: return f.read() def remove_files_with_extensions(extension): for root, dirs, files in os.walk(CLR_TEST_DIR): for currentFile in files: if currentFile.lower().endswith(extension): logging.info(f"Removing file {os.path.join(root, currentFile)}, based on extension {extension}") os.remove(os.path.join(root, currentFile)) def main(): folders = [i for i in sorted(os.listdir(DATA_ROOT_DIR)) if re.search("\\d{1,}.\\d{1,}.*", i)] logging.info(f"Removing folder {CLR_TEST_DIR}/clearing-all/clearing_testing_utils/store/expected") shutil.rmtree(f"{CLR_TEST_DIR}/clearing-all/clearing_testing_utils/store/expected") logging.info(f"Removing folder {CLR_TEST_DIR}/clearing-all/clearing_testing_utils/store/input") shutil.rmtree(f"{CLR_TEST_DIR}/clearing-all/clearing_testing_utils/store/input") logging.info(f"Removing file {CLR_TEST_DIR}/db/export.sql") os.remove(f"{CLR_TEST_DIR}/db/export.sql") logging.info(f"Removing file {CLR_TEST_DIR}/db/test-data.sql") os.remove(f"{CLR_TEST_DIR}/db/test-data.sql") logging.info(f"Copying files from {DATA_ROOT_DIR}/{folders[0]}/db/ to {CLR_TEST_DIR}/db/") shutil.copytree(f"{DATA_ROOT_DIR}/{folders[0]}/db/", f"{CLR_TEST_DIR}/db/", dirs_exist_ok=True) logging.info(f"Copying files from {DATA_ROOT_DIR}/{folders[0]}/clearing_testing_utils/ to {CLR_TEST_DIR}/clearing-all/clearing_testing_utils/") shutil.copytree(f"{DATA_ROOT_DIR}/{folders[0]}/clearing_testing_utils/", f"{CLR_TEST_DIR}/clearing-all/clearing_testing_utils/", dirs_exist_ok=True) remove_files_with_extensions(".xml") run_docker(folders[0], read_date(folders[0])) # for folder in folders: # shutil.rmtree(f"{CLR_TEST_DIR}/clearing-all/clearing_testing_utils/store") # os.remove(f"{CLR_TEST_DIR}/db/export.sql") # os.remove(f"{CLR_TEST_DIR}/db/test-data.sql") # shutil.copytree(f"{DATA_ROOT_DIR}/{folder}/db/", f"{CLR_TEST_DIR}/db/", dirs_exist_ok=True) # shutil.copytree(f"{DATA_ROOT_DIR}/{folder}/clearing_testing_utils/", f"{CLR_TEST_DIR}/clearing-all/clearing_testing_utils/", dirs_exist_ok=True) # run_docker(folder) if __name__=='__main__': main()