def test_basic(self): from celerymanagementapp.segmentize import avg_aggregator fieldname = 'floatval' agg = avg_aggregator(fieldname) # this returns another function qs = TestModel.objects.filter(enumval='A') self.assertAlmostEqual(agg(qs), 5.0) qs = TestModel.objects.filter(enumval='B') self.assertAlmostEqual(agg(qs), 4.0) qs = TestModel.objects.filter(enumval='C') self.assertAlmostEqual(agg(qs), 88.0) qs = TestModel.objects.filter(enumval='D') self.assertEqual(agg(qs), None)
def test_basic(self): from celerymanagementapp.segmentize import make_segments, Segmentizer from celerymanagementapp.segmentize import basic_query_sequence from celerymanagementapp.segmentize import avg_aggregator seq_fieldname = 'enumval' agg_fieldname = 'floatval' labels = ['A','B','C','D'] qs = TestModel.objects.all() segmentizer = Segmentizer( basic_query_sequence(seq_fieldname, labels) ) aggregator = avg_aggregator(agg_fieldname) segs = make_segments(qs, segmentizer, aggregator) self.assertEquals(len(segs), 4) self.assertEquals(segs[0], ('A',5.0)) self.assertEquals(segs[1], ('B',4.0)) self.assertEquals(segs[2], ('C',88.)) self.assertEquals(segs[3], ('D',None))