add integration test
This commit is contained in:
committed by
Dana Van Aken
parent
a5bb6597b6
commit
dd05e2c63c
57
client/driver/fabfile.py
vendored
57
client/driver/fabfile.py
vendored
@@ -264,9 +264,10 @@ def free_cache():
|
||||
|
||||
|
||||
@task
|
||||
def upload_result(result_dir=None, prefix=None):
|
||||
def upload_result(result_dir=None, prefix=None, upload_code=None):
|
||||
result_dir = result_dir or os.path.join(CONF['controller_home'], 'output')
|
||||
prefix = prefix or ''
|
||||
upload_code = upload_code or CONF['upload_code']
|
||||
|
||||
files = {}
|
||||
for base in ('summary', 'knobs', 'metrics_before', 'metrics_after'):
|
||||
@@ -286,7 +287,7 @@ def upload_result(result_dir=None, prefix=None):
|
||||
files[base] = open(fpath, 'rb')
|
||||
|
||||
response = requests.post(CONF['upload_url'] + '/new_result/', files=files,
|
||||
data={'upload_code': CONF['upload_code']})
|
||||
data={'upload_code': upload_code})
|
||||
if response.status_code != 200:
|
||||
raise Exception('Error uploading result.\nStatus: {}\nMessage: {}\n'.format(
|
||||
response.status_code, response.content))
|
||||
@@ -300,10 +301,11 @@ def upload_result(result_dir=None, prefix=None):
|
||||
|
||||
|
||||
@task
|
||||
def get_result(max_time_sec=180, interval_sec=5):
|
||||
def get_result(max_time_sec=180, interval_sec=5, upload_code=None):
|
||||
max_time_sec = int(max_time_sec)
|
||||
interval_sec = int(interval_sec)
|
||||
url = CONF['upload_url'] + '/query_and_get/' + CONF['upload_code']
|
||||
upload_code = upload_code or CONF['upload_code']
|
||||
url = CONF['upload_url'] + '/query_and_get/' + upload_code
|
||||
elapsed = 0
|
||||
response_dict = None
|
||||
response = ''
|
||||
@@ -378,7 +380,7 @@ def add_udf():
|
||||
|
||||
|
||||
@task
|
||||
def upload_batch(result_dir=None, sort=True):
|
||||
def upload_batch(result_dir=None, sort=True, upload_code=None):
|
||||
result_dir = result_dir or CONF['save_path']
|
||||
sort = _parse_bool(sort)
|
||||
results = glob.glob(os.path.join(result_dir, '*__summary.json'))
|
||||
@@ -391,7 +393,7 @@ def upload_batch(result_dir=None, sort=True):
|
||||
prefix = os.path.basename(result)
|
||||
prefix_len = os.path.basename(result).find('_') + 2
|
||||
prefix = prefix[:prefix_len]
|
||||
upload_result(result_dir=result_dir, prefix=prefix)
|
||||
upload_result(result_dir=result_dir, prefix=prefix, upload_code=upload_code)
|
||||
LOG.info('Uploaded result %d/%d: %s__*.json', i + 1, count, prefix)
|
||||
|
||||
|
||||
@@ -643,3 +645,46 @@ def run_loops(max_iter=1):
|
||||
LOG.info('The %s-th Loop Starts / Total Loops %s', i + 1, max_iter)
|
||||
loop(i % RELOAD_INTERVAL)
|
||||
LOG.info('The %s-th Loop Ends / Total Loops %s', i + 1, max_iter)
|
||||
|
||||
|
||||
@task
|
||||
def rename_batch(result_dir=None):
|
||||
result_dir = result_dir or CONF['save_path']
|
||||
results = glob.glob(os.path.join(result_dir, '*__summary.json'))
|
||||
results = sorted(results)
|
||||
count = len(results)
|
||||
for i, result in enumerate(results):
|
||||
prefix = os.path.basename(result)
|
||||
prefix_len = os.path.basename(result).find('_') + 2
|
||||
prefix = prefix[:prefix_len]
|
||||
new_prefix = str(i) + '__'
|
||||
files = {}
|
||||
for base in ('summary', 'knobs', 'metrics_before', 'metrics_after'):
|
||||
fpath = os.path.join(result_dir, prefix + base + '.json')
|
||||
rename_path = os.path.join(result_dir, new_prefix + base + '.json')
|
||||
os.rename(fpath, rename_path)
|
||||
|
||||
|
||||
@task
|
||||
def integration_tests():
|
||||
|
||||
# Create test website
|
||||
response = requests.get(CONF['upload_url'] + '/test/create/')
|
||||
LOG.info(response.content)
|
||||
|
||||
# Upload training data
|
||||
LOG.info('Upload training data to no tuning session')
|
||||
upload_batch(result_dir='../../integrationTests/data/',upload_code='ottertuneTestNoTuning')
|
||||
|
||||
# TO DO: BG ready
|
||||
# Test DNN
|
||||
LOG.info('Test DNN (deep neural network)')
|
||||
upload_result(result_dir='../../integrationTests/data/', prefix='0__', upload_code='ottertuneTestTuningDNN')
|
||||
response = get_result(upload_code='ottertuneTestTuningDNN')
|
||||
assert response['status'] == 'good'
|
||||
|
||||
# Test GPR
|
||||
LOG.info('Test GPR (gaussian process regression)')
|
||||
upload_result(result_dir='../../integrationTests/data/', prefix='0__', upload_code='ottertuneTestTuningGPR')
|
||||
response = get_result(upload_code='ottertuneTestTuningGPR')
|
||||
assert response['status'] == 'good'
|
||||
Reference in New Issue
Block a user