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) ])
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('))
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('))
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('))
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('))
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('))