def test_workflow_handler_patch_req_error(self): # Incorrect path parameter obs = workflow_handler_patch_req('add', '/1/extra/') exp = {'status': 'error', 'message': 'Incorrect path parameter'} self.assertEqual(obs, exp) # Workflow does not exist obs = workflow_handler_patch_req('add', '/1000/') exp = {'status': 'error', 'message': 'Workflow 1000 does not exist'} self.assertEqual(obs, exp) # Operation not supported obs = workflow_handler_patch_req('replace', '/1/') exp = {'status': 'error', 'message': 'Operation "replace" not supported. ' 'Current supported operations: add'} self.assertEqual(obs, exp) # Incorrect path parameter (op = remove) obs = workflow_handler_patch_req('remove', '/1/') exp = {'status': 'error', 'message': 'Incorrect path parameter'} self.assertEqual(obs, exp)
def test_workflow_handler_patch_req_error(self): # Incorrect path parameter obs = workflow_handler_patch_req('add', '/1/extra/') exp = {'status': 'error', 'message': 'Incorrect path parameter'} self.assertEqual(obs, exp) # Workflow does not exist obs = workflow_handler_patch_req('add', '/1000/') exp = {'status': 'error', 'message': 'Workflow 1000 does not exist'} self.assertEqual(obs, exp) # Operation not supported obs = workflow_handler_patch_req('replace', '/1/') exp = { 'status': 'error', 'message': 'Operation "replace" not supported. ' 'Current supported operations: add' } self.assertEqual(obs, exp) # Incorrect path parameter (op = remove) obs = workflow_handler_patch_req('remove', '/1/') exp = {'status': 'error', 'message': 'Incorrect path parameter'} self.assertEqual(obs, exp)
def test_workflow_handler_patch_req(self): # Create a new workflow so it is in construction exp_command = Command(1) json_str = ( '{"input_data": 1, "max_barcode_errors": 1.5, ' '"barcode_type": "golay_12", "max_bad_run_length": 3, ' '"rev_comp": false, "phred_quality_threshold": 3, ' '"rev_comp_barcode": false, "rev_comp_mapping_barcodes": false, ' '"min_per_read_length_fraction": 0.75, "sequence_max_n": 0}') exp_params = Parameters.load(exp_command, json_str=json_str) exp_user = User('*****@*****.**') name = "Test processing workflow" # tests success wf = ProcessingWorkflow.from_scratch(exp_user, exp_params, name=name, force=True) graph = wf.graph nodes = list(graph.nodes()) job_id = nodes[0].id value = { 'dflt_params': 10, 'connections': { job_id: { 'demultiplexed': 'input_data' } } } obs = workflow_handler_patch_req('add', '/%s/' % wf.id, req_value=dumps(value)) new_jobs = set(wf.graph.nodes()) - set(nodes) self.assertEqual(len(new_jobs), 1) new_job = new_jobs.pop() exp = { 'status': 'success', 'message': '', 'job': { 'id': new_job.id, 'inputs': [job_id], 'label': 'Pick closed-reference OTUs', 'outputs': [['OTU table', 'BIOM']] } } self.assertEqual(obs, exp) obs = workflow_handler_patch_req('remove', '/%s/%s/' % (wf.id, new_job.id)) exp = {'status': 'success', 'message': ''} jobs = set(wf.graph.nodes()) - set(nodes) self.assertEqual(jobs, set())
def test_workflow_handler_patch_req(self): # Create a new workflow so it is in construction exp_command = Command(1) json_str = ( '{"input_data": 1, "max_barcode_errors": 1.5, ' '"barcode_type": "golay_12", "max_bad_run_length": 3, ' '"rev_comp": false, "phred_quality_threshold": 3, ' '"rev_comp_barcode": false, "rev_comp_mapping_barcodes": false, ' '"min_per_read_length_fraction": 0.75, "sequence_max_n": 0}') exp_params = Parameters.load(exp_command, json_str=json_str) exp_user = User('*****@*****.**') name = "Test processing workflow" # tests success wf = ProcessingWorkflow.from_scratch( exp_user, exp_params, name=name, force=True) graph = wf.graph nodes = list(graph.nodes()) job_id = nodes[0].id value = {'dflt_params': 10, 'connections': {job_id: {'demultiplexed': 'input_data'}}} obs = workflow_handler_patch_req( 'add', '/%s/' % wf.id, req_value=dumps(value)) new_jobs = set(wf.graph.nodes()) - set(nodes) self.assertEqual(len(new_jobs), 1) new_job = new_jobs.pop() exp = {'status': 'success', 'message': '', 'job': {'id': new_job.id, 'inputs': [job_id], 'label': 'Pick closed-reference OTUs', 'outputs': [['OTU table', 'BIOM']]}} self.assertEqual(obs, exp) obs = workflow_handler_patch_req( 'remove', '/%s/%s/' % (wf.id, new_job.id)) exp = {'status': 'success', 'message': ''} jobs = set(wf.graph.nodes()) - set(nodes) self.assertEqual(jobs, set())