def test_basic(self): action = self.plugin.actions['concatenate_ints'] use = usage.DiagnosticUsage() action.examples['concatenate_ints_simple'](use) self.assertEqual(5, len(use.recorder)) obs1, obs2, obs3, obs4, obs5 = use.recorder self.assertEqual('init_data', obs1['type']) self.assertEqual('init_data', obs2['type']) self.assertEqual('init_data', obs3['type']) self.assertEqual('comment', obs4['type']) self.assertEqual('action', obs5['type']) self.assertTrue('basic usage' in obs4['text']) self.assertEqual('dummy_plugin', obs5['action'].plugin_id) self.assertEqual('concatenate_ints', obs5['action'].action_id) self.assertEqual( { 'int1': 4, 'int2': 2, 'ints1': 'ints_a', 'ints2': 'ints_b', 'ints3': 'ints_c' }, obs5['input_opts']) self.assertEqual({'concatenated_ints': 'ints_d'}, obs5['output_opts'])
def test_use_init_collection_data(self): action = self.plugin.actions['variadic_input_method'] use = usage.DiagnosticUsage() action.examples['variadic_input_simple'](use) self.assertEqual(len(use.recorder), 7) obs1, obs2, obs3, obs4, obs5, obs6, obs7 = use.recorder self.assertEqual('init_data', obs1['source'], use._get_record(obs1['ref']).source) self.assertEqual('init_data', obs2['source'], use._get_record(obs2['ref']).source) self.assertEqual('init_data_collection', obs3['source'], use._get_record(obs3['ref']).source) self.assertEqual('init_data', obs4['source'], use._get_record(obs4['ref']).source) self.assertEqual('init_data', obs5['source'], use._get_record(obs5['ref']).source) self.assertEqual('init_data_collection', obs6['source'], use._get_record(obs6['ref']).source) self.assertEqual('action', obs7['source']) self.assertEqual(set, type(obs7['input_opts']['nums'])) self.assertIn('ints', obs7['input_opts']['ints']) self.assertIn('int_set', obs7['input_opts']['int_set'])
def test_basic(self): action = self.plugin.actions['concatenate_ints'] use = usage.DiagnosticUsage() action.examples['concatenate_ints_simple'](use) records = use.records self.assertEqual(5, len(records)) obs1, obs2, obs3, obs4, obs5 = records self.assertEqual('init_artifact', obs1.source) self.assertEqual('init_artifact', obs2.source) self.assertEqual('init_artifact', obs3.source) self.assertEqual('comment', obs4.source) self.assertEqual('action', obs5.source) self.assertEqual('ints_a', obs1.variable.name) self.assertEqual('ints_b', obs2.variable.name) self.assertEqual('ints_c', obs3.variable.name) self.assertEqual('This example demonstrates basic usage.', obs4.variable) self.assertEqual('ints_d', obs5.variable[0].name) self.assertEqual('artifact', obs1.variable.var_type) self.assertEqual('artifact', obs2.variable.var_type) self.assertEqual('artifact', obs3.variable.var_type) self.assertEqual('artifact', obs5.variable[0].var_type) self.assertTrue(obs1.variable.is_deferred) self.assertTrue(obs2.variable.is_deferred) self.assertTrue(obs3.variable.is_deferred) self.assertTrue(obs5.variable[0].is_deferred)
def test_optional_inputs(self): action = self.plugin.actions['optional_artifacts_method'] use = usage.DiagnosticUsage() action.examples['optional_inputs'](use) records = use.records self.assertEqual(5, len(records)) obs1, obs2, obs3, obs4, obs5 = records self.assertEqual('init_artifact', obs1.source) self.assertEqual('action', obs2.source) self.assertEqual('action', obs3.source) self.assertEqual('action', obs4.source) self.assertEqual('action', obs5.source) self.assertEqual('ints', obs1.variable.name) self.assertEqual('output1', obs2.variable[0].name) self.assertEqual('output2', obs3.variable[0].name) self.assertEqual('output3', obs4.variable[0].name) self.assertEqual('output4', obs5.variable[0].name) self.assertEqual('artifact', obs1.variable.var_type) self.assertEqual('artifact', obs2.variable[0].var_type) self.assertEqual('artifact', obs3.variable[0].var_type) self.assertEqual('artifact', obs4.variable[0].var_type) self.assertEqual('artifact', obs5.variable[0].var_type) self.assertTrue(obs1.variable.is_deferred) self.assertTrue(obs2.variable[0].is_deferred) self.assertTrue(obs3.variable[0].is_deferred) self.assertTrue(obs4.variable[0].is_deferred) self.assertTrue(obs5.variable[0].is_deferred)
def test_get_metadata_column(self): action = self.plugin.actions['identity_with_metadata_column'] use = usage.DiagnosticUsage() action.examples['identity_with_metadata_column_get_mdc'](use) records = use.records self.assertEqual(4, len(records)) obs1, obs2, obs3, obs4 = records self.assertEqual('init_artifact', obs1.source) self.assertEqual('init_metadata', obs2.source) self.assertEqual('get_metadata_column', obs3.source) self.assertEqual('action', obs4.source) self.assertEqual('ints', obs1.variable.name) self.assertEqual('md', obs2.variable.name) self.assertEqual('mdc', obs3.variable.name) self.assertEqual('out', obs4.variable[0].name) self.assertEqual('artifact', obs1.variable.var_type) self.assertEqual('metadata', obs2.variable.var_type) self.assertEqual('column', obs3.variable.var_type) self.assertEqual('artifact', obs4.variable[0].var_type) self.assertTrue(obs1.variable.is_deferred) self.assertTrue(obs2.variable.is_deferred) self.assertTrue(obs3.variable.is_deferred) self.assertTrue(obs4.variable[0].is_deferred)
def test_metadata_merging(self): action = self.plugin.actions['identity_with_metadata'] use = usage.DiagnosticUsage() action.examples['identity_with_metadata_merging'](use) records = use.records self.assertEqual(5, len(records)) obs1, obs2, obs3, obs4, obs5 = records self.assertEqual('init_artifact', obs1.source) self.assertEqual('init_metadata', obs2.source) self.assertEqual('init_metadata', obs3.source) self.assertEqual('merge_metadata', obs4.source) self.assertEqual('action', obs5.source) self.assertEqual('ints', obs1.variable.name) self.assertEqual('md1', obs2.variable.name) self.assertEqual('md2', obs3.variable.name) self.assertEqual('md3', obs4.variable.name) self.assertEqual('out', obs5.variable[0].name) self.assertEqual('artifact', obs1.variable.var_type) self.assertEqual('metadata', obs2.variable.var_type) self.assertEqual('metadata', obs3.variable.var_type) self.assertEqual('metadata', obs4.variable.var_type) self.assertEqual('artifact', obs5.variable[0].var_type) self.assertTrue(obs1.variable.is_deferred) self.assertTrue(obs2.variable.is_deferred) self.assertTrue(obs3.variable.is_deferred) self.assertTrue(obs4.variable.is_deferred) self.assertTrue(obs5.variable[0].is_deferred)
def test_use_metadata_column(self): action = self.plugin.actions['identity_with_metadata_column'] use = usage.DiagnosticUsage() action.examples['identity_with_metadata_column_from_factory'](use) self.assertEqual(3, len(use.recorder)) obs1, obs2, obs3 = use.recorder self.assertEqual('init_data', obs1['type']) self.assertEqual('init_data', obs2['type']) self.assertEqual('action', obs3['type'])
def test_optional_inputs(self): action = self.plugin.actions['optional_artifacts_method'] use = usage.DiagnosticUsage() action.examples['optional_inputs'](use) self.assertEqual(5, len(use.recorder)) obs1, obs2, obs3, obs4, obs5 = use.recorder self.assertEqual('init_data', obs1['type']) self.assertEqual('action', obs2['type']) self.assertEqual('action', obs3['type']) self.assertEqual('action', obs4['type']) self.assertEqual('action', obs5['type'])
def test_metadata_merging(self): action = self.plugin.actions['identity_with_metadata'] use = usage.DiagnosticUsage() action.examples['identity_with_metadata_merging'](use) self.assertEqual(5, len(use.recorder)) obs1, obs2, obs3, obs4, obs5 = use.recorder self.assertEqual('init_data', obs1['type']) self.assertEqual('init_data', obs2['type']) self.assertEqual('init_data', obs3['type']) self.assertEqual('merge_metadata', obs4['type']) self.assertEqual('action', obs5['type'])
def test_comments_only(self): action = self.plugin.actions['concatenate_ints'] use = usage.DiagnosticUsage() action.examples['comments_only'](use) self.assertEqual(2, len(use.recorder)) obs1, obs2 = use.recorder self.assertEqual('comment', obs1['type']) self.assertEqual('comment', obs2['type']) self.assertEqual('comment 1', obs1['text']) self.assertEqual('comment 2', obs2['text'])
def test_comments_only(self): action = self.plugin.actions['concatenate_ints'] use = usage.DiagnosticUsage() action.examples['comments_only'](use) records = use.records self.assertEqual(2, len(records)) obs1, obs2 = records self.assertEqual('comment', obs1.source) self.assertEqual('comment', obs2.source) self.assertEqual('comment 1', obs1.variable) self.assertEqual('comment 2', obs2.variable)
def test_use_merge_feature_table(self): action = self.plugin.actions['variadic_input_method'] use = usage.DiagnosticUsage() action.examples['variadic_input_simple'](use) self.assertEqual(len(use.recorder), 3) obs1, obs2, obs3 = use.recorder self.assertEqual('init_data', obs1['type']) self.assertEqual('init_data', obs2['type']) self.assertEqual('action', obs3['type']) self.assertEqual(set, type(obs3['input_opts']['nums'])) self.assertIn('int', obs3['input_opts']['ints']) self.assertIn('int_set', obs3['input_opts']['int_set'])
def test_get_metadata_column(self): action = self.plugin.actions['identity_with_metadata_column'] use = usage.DiagnosticUsage() action.examples['identity_with_metadata_column_get_mdc'](use) self.assertEqual(4, len(use.recorder)) obs1, obs2, obs3, obs4 = use.recorder self.assertEqual('init_data', obs1['source'], use._get_record(obs1['ref']).source) self.assertEqual('init_data', obs2['source'], use._get_record(obs2['ref']).source) self.assertEqual('get_metadata_column', obs3['source'], use._get_record(obs3['ref']).source) self.assertEqual('action', obs4['source'])
def test_chained(self): action = self.plugin.actions['concatenate_ints'] use = usage.DiagnosticUsage() action.examples['concatenate_ints_complex'](use) self.assertEqual(7, len(use.recorder)) obs1, obs2, obs3, obs4, obs5, obs6, obs7 = use.recorder self.assertEqual('init_data', obs1['type']) self.assertEqual('init_data', obs2['type']) self.assertEqual('init_data', obs3['type']) self.assertEqual('comment', obs4['type']) self.assertEqual('action', obs5['type']) self.assertEqual('comment', obs6['type']) self.assertEqual('action', obs7['type']) self.assertTrue('chained usage (pt 1)' in obs4['text']) self.assertEqual('dummy_plugin', obs5['action'].plugin_id) self.assertEqual('concatenate_ints', obs5['action'].action_id) self.assertEqual( { 'int1': 4, 'int2': 2, 'ints1': 'ints_a', 'ints2': 'ints_b', 'ints3': 'ints_c' }, obs5['input_opts']) self.assertEqual({'concatenated_ints': 'ints_d'}, obs5['output_opts']) self.assertTrue('chained usage (pt 2)' in obs6['text']) self.assertEqual('dummy_plugin', obs7['action'].plugin_id) self.assertEqual('concatenate_ints', obs7['action'].action_id) self.assertEqual( { 'int1': 41, 'int2': 0, 'ints1': 'ints_d', 'ints2': 'ints_b', 'ints3': 'ints_c' }, obs7['input_opts']) self.assertEqual({'concatenated_ints': 'concatenated_ints'}, obs7['output_opts'])
def test_chained(self): action = self.plugin.actions['concatenate_ints'] use = usage.DiagnosticUsage() action.examples['concatenate_ints_complex'](use) records = use.records self.assertEqual(7, len(records)) obs1, obs2, obs3, obs4, obs5, obs6, obs7 = records self.assertEqual('init_artifact', obs1.source) self.assertEqual('init_artifact', obs2.source) self.assertEqual('init_artifact', obs3.source) self.assertEqual('comment', obs4.source) self.assertEqual('action', obs5.source) self.assertEqual('comment', obs6.source) self.assertEqual('action', obs7.source) self.assertEqual('ints_a', obs1.variable.name) self.assertEqual('ints_b', obs2.variable.name) self.assertEqual('ints_c', obs3.variable.name) self.assertEqual('This example demonstrates chained usage (pt 1).', obs4.variable) self.assertEqual('ints_d', obs5.variable[0].name) self.assertEqual('This example demonstrates chained usage (pt 2).', obs6.variable) self.assertEqual('concatenated_ints', obs7.variable[0].name) self.assertEqual('artifact', obs1.variable.var_type) self.assertEqual('artifact', obs2.variable.var_type) self.assertEqual('artifact', obs3.variable.var_type) self.assertEqual('artifact', obs5.variable[0].var_type) self.assertEqual('artifact', obs7.variable[0].var_type) self.assertTrue(obs1.variable.is_deferred) self.assertTrue(obs2.variable.is_deferred) self.assertTrue(obs3.variable.is_deferred) self.assertTrue(obs5.variable[0].is_deferred) self.assertTrue(obs7.variable[0].is_deferred)