Source code for macapype.utils.utils_tests
"""
Support function for loading test datasets
"""
import os
import os.path as op
import shutil
import json
import subprocess
def _download_data_zip(data_zip, name):
json_data = op.join(op.dirname(op.abspath(__file__)),
"data_test_servers.json")
data_dict = json.load(open(json_data))
for key, cloud_elem in data_dict.items():
print(key)
data_dir = cloud_elem["data_dir"]
if name not in data_dir.keys():
print("{} not found in {}".format(name, key))
continue
server = cloud_elem["server"]
if "cloud_format" in list(cloud_elem.keys()):
oc_path = cloud_elem["cloud_format"].format(server, data_dir[name])
elif "cloud_format_3" in list(cloud_elem.keys()):
oc_path = cloud_elem["cloud_format_3"].format(server,
data_dir[name], name)
cmd = 'wget --no-check-certificate \
--content-disposition {} -O {} '.format(oc_path, data_zip)
val = subprocess.call(cmd.split())
if val:
print("Error with {} for {}".format(cmd, key))
continue
if op.exists(data_zip):
print(os.listdir(op.split(data_zip)[0]))
print("Ok for download {} with {}".format(data_zip, key))
print("Quitting download function")
return True
assert op.exists(data_zip),\
"Error, data_zip = {} not found ".format(data_zip)
return False
[docs]def load_test_data(name, path_to=""):
""" Load test data, template and needed scripts """
if path_to == "":
path_to = op.expanduser("~")
assert op.exists(path_to), "Breaking, {} do not exist".format(path_to)
data_dirpath = op.join(path_to, "data_macapype")
try:
os.makedirs(data_dirpath)
except OSError:
print("data_dirpath {} already exists".format(data_dirpath))
data_path = op.join(data_dirpath, name)
if op.exists(data_path):
print("{} Already exists, skipping download".format(data_path))
return data_path
data_zip = op.join(data_dirpath, "{}.zip".format(name))
if not op.exists(data_zip):
print("Download {}".format(data_zip))
val = _download_data_zip(data_zip, name)
assert val, "Error, cannot download {}".format(data_zip)
assert op.exists(data_zip), "Error, cannot find {}".format(data_zip)
print("Unzip {} to {}".format(data_zip, data_path))
os.system("unzip -o {} -d {}".format(data_zip, data_path))
os.remove(data_zip)
assert op.exists(data_path), "Error, cannot find {}".format(data_path)
return data_path
def format_template(data_path, template_name):
import json
json_template = op.join(op.dirname(op.abspath(__file__)),
"templates.json")
template_path_dict = json.load(open(json_template))
assert template_name in template_path_dict.keys(), \
"Error, could not find template formating for {} in {}".format(
template_name, template_path_dict.keys())
template_dict = template_path_dict[template_name]
print("Found template formating for {}:".format(template_name))
print(template_dict)
for key, value in template_dict.items():
template_file = op.join(data_path, value)
assert op.exists(template_file), "Error, file {} is missing".format(
template_file)
template_dict[key] = template_file
return template_dict
def make_tmp_dir():
tmp_dir = "/tmp/test_macapype"
if op.exists(tmp_dir):
shutil.rmtree(tmp_dir)
os.makedirs(tmp_dir)
os.chdir(tmp_dir)
return tmp_dir