#!/usr/bin/env python from core.app import App app = App() app.load("test.sim") app.run()
class TestApp(unittest.TestCase): """docstring for TestApp""" def setUp(self): #setUp before each test self.app = App('test/test_app') self.app.new() self.app.load() def tearDown(self): # tearDown after each test shutil.rmtree('test/test_app') def test_load(self): self.assertEqual(self.app.config['app']['name'], 'app name') # print app.config def test_new(self): #done in setUP pass def test_setParameters(self): self.app.parameters['Inputs']['bam']={'data': [{"name":"/path/to/data1"}, {"name":"/path/to/data2"}]} self.app.setParameters() self.assertEqual(self.app['inputs']['bam'][0].path, "/path/to/data1") self.assertEqual(self.app['outputs']['results'][0].path, "/var/data/80bad55acc41d5fde324415808d0a700.tgz") #try setParameters ater newParameters self.app.newParameters('test/test_app/test_parameter.yaml') self.app.parameters['Parameters']['workspace']['value'] = '/path/to/data3' self.app.setParameters() self.assertEqual(self.app['parameters']['workspace'].__str__(), '/path/to/data3') def test_newParameters(self): self.app.newParameters() self.app.newParameters('test/test_app/test_parameter.yaml') self.app.newParameters() # print self.app.parameters def test_newParameters_after_setParameters(self): self.app.setParameters() self.app.newParameters('test/test_app/test_parameter.yaml') def test_newParameters_before_setParameters(self): self.app.newParameters('test/test_app/test_parameter.yaml') self.app.setParameters() def test_newParameters_and_setParameters_more(self): self.app.newParameters('test/test_app/test_parameter.yaml') self.app.setParameters() self.app.newParameters('test/test_app/test_parameter.yaml') self.app.setParameters() def test_newParameters_and_setParameters_more2(self): self.app.setParameters() self.app.newParameters('test/test_app/test_parameter.yaml') self.app.setParameters() self.app.newParameters('test/test_app/test_parameter.yaml') def test_loadParameters(self): self.app.newParameters('test/test_app/test_parameter.yaml') self.app.loadParameters('test/test_app/test_parameter.yaml') def test_loadParameters_None(self): self.assertRaises(ValueError, self.app.loadParameters) def test_nodes(self): load_case = {'bam': {'alias': 'load bam', 'node_id': 'loaddata_bam', 'name': 'loaddata', 'parameters': None, 'inputs': None, 'outputs': {'data': {'enid': 'bam'}}, 'type': 'system', 'app_id': '55128c58f6f4067d63b956b5'}} self.assertEqual(cmp(self.app.nodes('load'), load_case), 0) store_case = {'results': {'alias': 'store results', 'node_id': 'storedata_results', 'name': 'storedata', 'parameters': {'description': {'variable': True, 'value': None}, 'name': {'variable': True, 'value': None}}, 'inputs': {'data': {'enid': 'results'}}, 'outputs': None, 'type': 'system', 'app_id': '55128c94f6f4067d63b956b6'}} self.assertEqual(cmp(self.app.nodes('store'), store_case), 0) app_case = {'app name': {'inputs': {'bam': [{'enid': 'bam'}]}, 'name': 'app name', 'parameters': {'workspace': {'variable': False, 'value': None}, 'is_genedock': {'variable': False, 'value': None}}, 'outputs': {'results': [{'enid': 'results'}]}, 'app_id': '', 'alias': 'app name', 'node_id': 'app_name', 'type': 'private'}} self.assertEqual(cmp(self.app.nodes('app'), app_case), 0) def test_workflow(self): self.app.buildTestWorkflow() test_case = {'workflow': {'account': '*****@*****.**', 'version': 1, 'nodelist': [{'alias': 'load bam', 'node_id': 'loaddata_bam', 'name': 'loaddata', 'parameters': None, 'inputs': None, 'outputs': {'data': {'enid': 'bam'}}, 'type': 'system', 'app_id': '55128c58f6f4067d63b956b5'}, {'inputs': {'bam': [{'enid': 'bam'}]}, 'name': 'app name', 'parameters': {'workspace': {'variable': False, 'value': None}, 'is_genedock': {'variable': False, 'value': None}}, 'outputs': {'results': [{'enid': 'results'}]}, 'app_id': '', 'alias': 'app name', 'node_id': 'app_name', 'type': 'private'}, {'alias': 'store results', 'node_id': 'storedata_results', 'name': 'storedata', 'parameters': {'description': {'variable': True, 'value': None}, 'name': {'variable': True, 'value': None}}, 'inputs': {'data': {'enid': 'results'}}, 'outputs': None, 'type': 'system', 'app_id': '55128c94f6f4067d63b956b6'}], 'name': 'test_app name', 'description': 'test_app name'}} self.assertEqual(cmp(self.app.workflow, test_case), 0) def test_renderScript(self): self.app.newParameters() self.app.parameters['Parameters']['is_genedock']['value']=True self.app.config['app']['outputs']=None self.app.setParameters() self.app.renderScript() # print [self.app.script] self.assertEqual(self.app.script, u'\nmkdir -p /data/project/id;\n\nln -s /var/data/540ef712ea55aa2db8a4cfea4782c74d.bam /data/project/id/samplename.bam;\n\n') def test_build(self): test_case = u'\nmkdir -p /data/project/id;\n\nln -s /var/data/540ef712ea55aa2db8a4cfea4782c74d.bam /data/project/id/samplename.bam;\n\n' self.app.build(None, '/dev/null') self.assertEqual(self.app.script, test_case) self.app.newParameters('test/test_app/test_parameter.yaml') self.app.build('test/test_app/test_parameter.yaml', '/dev/null') self.assertEqual(self.app.script, test_case) def test_dumpYaml(self): self.app.setParameters() self.app.renderScript()