def test_create_Sample_success_datapoint(self): ''' creating a Sample should succeed for a datapoint metric ''' m = metrics.Datapoint('uri') t = TimeUUID() value = 1 s = metrics.Sample(metric=m, t=t, value=value) self.assertEqual(s.t, t) self.assertEqual(s.metric, m) self.assertEqual(s.value, decimal.Decimal(value))
def test_create_Sample_success_datasource(self): ''' creating a Sample should succeed for a datasource metric ''' m = metrics.Datasource('uri') t = TimeUUID() value = 'something' s = metrics.Sample(metric=m, t=t, value=value) self.assertEqual(s.t, t) self.assertEqual(s.metric, m) self.assertEqual(s.value, value)
def test_create_Sample_failure_invalid_value_for_datapoint(self): ''' creating a Sample object should fail if we pass an invalid value for a datasource sample ''' met = metrics.Datapoint('uri') t = TimeUUID() values = [ None, 'string', ('a', 'tuple'), ['a', 'list'], {'set'}, { 'a': 'dict' }, uuid.uuid4() ] for value in values: with self.assertRaises(TypeError) as cm: s = metrics.Sample(metric=met, t=t, value=value) self.assertEqual(str(cm.exception), 'value not a number')
def test_create_Sample_failure_non_Metric_obj(self): ''' creating a Sample object should fail if we pass a non Metric object ''' mets = [ None, 1, 1.1, 'string', ('a', 'tuple'), ['a', 'list'], {'set'}, { 'a': 'dict' }, uuid.uuid4() ] t = TimeUUID() value = 5 for m in mets: with self.assertRaises(TypeError) as cm: s = metrics.Sample(metric=m, t=t, value=value) self.assertEqual(str(cm.exception), 'Invalid metric parameter')
def test_create_Sample_failure_invalid_t(self): ''' creating a Sample object should fail if we pass an invalid t ''' mets = [metrics.Datasource('uri'), metrics.Datapoint('uri')] ts = [ None, 1, 1.1, 'string', ('a', 'tuple'), ['a', 'list'], {'set'}, { 'a': 'dict' }, uuid.uuid4() ] value = 5 for m in mets: for t in ts: with self.assertRaises(TypeError) as cm: s = metrics.Sample(metric=m, t=t, value=value) self.assertEqual(str(cm.exception), 'value is not a valid TimeUUID: ' + str(t))