Example #1
0
    def setUp(self):
        self.plugin = get_dummy_plugin()

        self.concatenate_ints_sig = MethodSignature(
            concatenate_ints,
            inputs={
                'ints1': IntSequence1 | IntSequence2,
                'ints2': IntSequence1,
                'ints3': IntSequence2
            },
            parameters={
                'int1': qiime2.plugin.Int,
                'int2': qiime2.plugin.Int
            },
            outputs=[('concatenated_ints', IntSequence1)])

        self.split_ints_sig = MethodSignature(split_ints,
                                              inputs={'ints': IntSequence1},
                                              parameters={},
                                              outputs=[('left', IntSequence1),
                                                       ('right', IntSequence1)
                                                       ])
Example #2
0
    def test_from_function_without_inputs_or_parameters(self):
        method = self.plugin.methods['no_input_method']

        self.assertEqual(method.id, 'no_input_method')

        exp_sig = MethodSignature(no_input_method,
                                  inputs={},
                                  parameters={},
                                  outputs=[('out', Mapping)])
        self.assertEqual(method.signature, exp_sig)

        self.assertEqual(method.name, 'No input method')
        self.assertTrue(
            method.description.startswith('This method does not accept any'))
        self.assertTrue(
            method.source.startswith('\n```python\ndef no_input_method('))
Example #3
0
    def test_from_function_with_multiple_outputs(self):
        method = self.plugin.methods['split_ints']

        self.assertEqual(method.id, 'split_ints')

        exp_sig = MethodSignature(split_ints,
                                  inputs={'ints': IntSequence1},
                                  parameters={},
                                  outputs=[('left', IntSequence1),
                                           ('right', IntSequence1)])
        self.assertEqual(method.signature, exp_sig)

        self.assertEqual(method.name, 'Split sequence of integers in half')
        self.assertTrue(
            method.description.startswith('This method splits a sequence'))
        self.assertTrue(
            method.source.startswith('\n```python\ndef split_ints('))
Example #4
0
    def test_from_function_with_parameters_only(self):
        method = self.plugin.methods['params_only_method']

        self.assertEqual(method.id, 'params_only_method')

        exp_sig = MethodSignature(params_only_method,
                                  inputs={},
                                  parameters={
                                      'name': qiime2.plugin.Str,
                                      'age': qiime2.plugin.Int
                                  },
                                  outputs=[('out', Mapping)])
        self.assertEqual(method.signature, exp_sig)

        self.assertEqual(method.name, 'Parameters only method')
        self.assertTrue(
            method.description.startswith('This method only accepts'))
        self.assertTrue(
            method.source.startswith('\n```python\ndef params_only_method('))
Example #5
0
    def test_from_function_without_parameters(self):
        method = self.plugin.methods['merge_mappings']

        self.assertEqual(method.id, 'merge_mappings')

        exp_sig = MethodSignature(merge_mappings,
                                  inputs={
                                      'mapping1': Mapping,
                                      'mapping2': Mapping
                                  },
                                  parameters={},
                                  outputs=[('merged_mapping', Mapping)])
        self.assertEqual(method.signature, exp_sig)

        self.assertEqual(method.name, 'Merge mappings')
        self.assertTrue(
            method.description.startswith('This method merges two mappings'))
        self.assertTrue(
            method.source.startswith('\n```python\ndef merge_mappings('))
Example #6
0
    def test_from_function_with_artifacts_and_parameters(self):
        concatenate_ints_sig = MethodSignature(concatenate_ints,
                                               inputs={
                                                   'ints1':
                                                   IntSequence1 | IntSequence2,
                                                   'ints2': IntSequence1,
                                                   'ints3': IntSequence2
                                               },
                                               parameters={
                                                   'int1': qiime2.plugin.Int,
                                                   'int2': qiime2.plugin.Int
                                               },
                                               outputs=[('concatenated_ints',
                                                         IntSequence1)])
        method = self.plugin.methods['concatenate_ints']

        self.assertEqual(method.id, 'concatenate_ints')
        self.assertEqual(method.signature, concatenate_ints_sig)
        self.assertEqual(method.name, 'Concatenate integers')
        self.assertTrue(
            method.description.startswith('This method concatenates integers'))
        self.assertTrue(
            method.source.startswith('\n```python\ndef concatenate_ints('))