예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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())
예제 #4
0
    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())