This means that the unit tests no longer need to load the repositories from the git repo, and in a follow-up, osbuild-composer won't need to either. By splitting the repositories used for testing from the system repositories available through the weldr API we are able to extend the system repositories without affecting the reproducibility of the tests. Signed-off-by: Tom Gundersen <teg@jklm.no>
34 lines
1.7 KiB
Python
Executable file
34 lines
1.7 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
import argparse
|
|
import subprocess
|
|
import json
|
|
import os
|
|
import sys
|
|
|
|
def main(distro, arch, store, output):
|
|
with open("tools/test-case-generators/format-request-map.json") as format_request_json:
|
|
format_request_dict = json.load(format_request_json)
|
|
with open("tools/test-case-generators/repos.json") as repos_json:
|
|
repos_dict = json.load(repos_json)
|
|
for output_format, test_case_request in format_request_dict.items():
|
|
test_case_request["compose-request"]["distro"] = distro
|
|
test_case_request["compose-request"]["arch"] = arch
|
|
test_case_request["compose-request"]["repositories"] = repos_dict[distro][arch]
|
|
test_case = json.loads(subprocess.check_output(["tools/test-case-generators/generate-test-case", store], input=json.dumps(test_case_request), encoding="utf-8"))
|
|
name = distro.replace("-", "_") + "-" + arch + "-" + output_format.replace("-", "_") + "-boot.json"
|
|
file_name = output + "/" + name
|
|
with open(file_name, 'w') as case_file:
|
|
json.dump(test_case, case_file, indent=2)
|
|
return
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser(description="Generate test cases")
|
|
parser.add_argument("--distro", help="distribution for test cases", required=True)
|
|
parser.add_argument("--arch", help="architecture for test cases", required=True)
|
|
parser.add_argument("--store", metavar="STORE_DIRECTORY", type=os.path.abspath, help="path to the osbuild store", required=True)
|
|
parser.add_argument("--output", metavar="OUTPUT_DIRECTORY", type=os.path.abspath, help="path to the output directory", required=True)
|
|
args = parser.parse_args()
|
|
|
|
main(args.distro, args.arch, args.store, args.output)
|
|
sys.exit()
|