clearing/clr_test/run_test_docker_containers.py
2024-07-02 10:32:50 +03:00

69 lines
2.9 KiB
Python

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}")
subprocess.call('docker compose pull', shell=True)
subprocess.call('docker compose build --no-cache', shell=True)
subprocess.call('docker compose up --abort-on-container-exit --exit-code-from clearing_system', shell=True)
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()