示例#1
0
    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'])
示例#2
0
    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'])
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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)
示例#7
0
    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'])
示例#8
0
    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'])
示例#9
0
    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'])
示例#10
0
    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'])
示例#11
0
    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)
示例#12
0
    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'])
示例#13
0
    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'])
示例#14
0
    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'])
示例#15
0
    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)