示例#1
0
    def test_creation_OnUpdateSchedule_success_with_activation_metrics_some_object(
            self):
        ''' creating a OnUpdateSchedule object should succeed and find Metrics if activation_metrics != None '''
        class MyObj:
            def __init__(self):
                self.metrics = [
                    metrics.Datasource('uri_ds'),
                    metrics.Datapoint('uri_dp')
                ]
                self.ds_anom = metrics.Anomaly(metrics.Datasource('uri_ds'))
                self.dp_tag = metrics.Tag(metrics.Datapoint('uri_dp'),
                                          key='key',
                                          value='value')

        my_obj = MyObj()
        sc = schedules.OnUpdateSchedule(activation_metrics=my_obj)
        self.assertEqual(sc.exec_on_load, False)
        expected_metrics = [
            metrics.Datasource('uri_ds'),
            metrics.Datapoint('uri_dp'),
            metrics.Anomaly(metrics.Datasource('uri_ds')),
            metrics.Tag(metrics.Datapoint('uri_dp'), key='key', value='value')
        ]
        self.assertEqual(
            sorted(sc.activation_metrics, key=lambda x: x.__hash__()),
            sorted(expected_metrics, key=lambda x: x.__hash__()))
        self.assertEqual(sc.meets(), False)
示例#2
0
 def test_create_Tag_from_Datapoint_success(self):
     ''' creating a Tag object should succeed, and it should behave as a standard Datapoint object '''
     uri = 'uri'
     dp = metrics.Datapoint(uri)
     tag = metrics.Tag(dp, key='key', value='value')
     dp_tag = metrics.Datapoint(uri=tag.uri)
     self.assertEqual(tag, dp_tag)
     ds_tag = metrics.Datasource(uri=tag.uri)
     self.assertNotEqual(tag, ds_tag)
示例#3
0
 def __init__(self):
     self.metrics = [
         metrics.Datasource('uri_ds'),
         metrics.Datapoint('uri_dp')
     ]
     self.ds_anom = metrics.Anomaly(metrics.Datasource('uri_ds'))
     self.dp_tag = metrics.Tag(metrics.Datapoint('uri_dp'),
                               key='key',
                               value='value')
示例#4
0
 def test_create_Tag_from_Datasource_success(self):
     ''' creating a Tag object should succeed, and it should behave as a standard Datapoint object '''
     uri = 'uri'
     keys = ['my_key', '1-my_key1', '_', '-', 'My_KEY']
     values = ['my_value', '1-my_value1', '_', '-', '_My_VALUE_12_']
     for key in keys:
         for value in values:
             ds = metrics.Datasource(uri)
             tag = metrics.Tag(ds, key=key, value=value)
             dp_tag = metrics.Datapoint(uri=tag.uri)
             self.assertEqual(tag, dp_tag)
             ds_tag = metrics.Datasource(uri=tag.uri)
             self.assertNotEqual(tag, ds_tag)
示例#5
0
 def test_creation_OnUpdateSchedule_success_with_activation_metrics_a_dict_with_metrics(
         self):
     ''' creating a OnUpdateSchedule object should succeed and find Metrics if activation_metrics != None '''
     activation_metrics = {
         '0': metrics.Datasource('uri_1'),
         '1': metrics.Datapoint('uri_2'),
         '2': metrics.Anomaly(metrics.Datasource('uri_3')),
         '3': metrics.Tag(metrics.Datasource('uri_4'),
                          key='key',
                          value='value')
     }
     sc = schedules.OnUpdateSchedule(activation_metrics=activation_metrics)
     self.assertEqual(sc.exec_on_load, False)
     expected_metrics = [
         metrics.Datasource('uri_1'),
         metrics.Datapoint('uri_2'),
         metrics.Anomaly(metrics.Datasource('uri_3')),
         metrics.Tag(metrics.Datasource('uri_4'), key='key', value='value')
     ]
     self.assertEqual(
         sorted(sc.activation_metrics, key=lambda x: x.__hash__()),
         sorted(expected_metrics, key=lambda x: x.__hash__()))
     self.assertEqual(sc.meets(), False)
示例#6
0
 def test_create_Tag_failure_invalid_value(self):
     ''' creating a Tag object should fail if value is not a string with characters [a-zA-Z0-9\-_] '''
     key = 'key'
     values = [
         None, 1, 1.1, ['a', 'list'], {'set'}, {
             'a': 'dict'
         },
         uuid.uuid4()
     ]
     dp = metrics.Datapoint('uri')
     for value in values:
         with self.assertRaises(TypeError) as cm:
             tag = metrics.Tag(dp, key=key, value=value)
         self.assertEqual(str(cm.exception),
                          'value is not a string: ' + str(value))
     values = [
         'not valid uri', '.uri', 'user:uri', 'uri\n', 'uri\r\n', 'uri\t',
         ':uri', '\turi', '\nuri', '\0uri'
     ]
     for value in values:
         with self.assertRaises(TypeError) as cm:
             tag = metrics.Tag(dp, key=key, value=value)
         self.assertEqual(str(cm.exception),
                          'value is not a valid uri level: ' + value)