class PerfDataTest(TestCase): def setUp(self): self.perfdata = PerfData(data_scope='test') def test_put_get_data(self): timewindow = TimeWindow() metric_id = 'test_manager' self.perfdata.remove(metric_id=metric_id, with_meta=True) count = self.perfdata.count(metric_id=metric_id) self.assertEqual(count, 0) tv0 = (int(timewindow.start()), None) tv1 = (int(timewindow.start() + 1), 0) tv2 = (int(timewindow.stop()), 2) tv3 = (int(timewindow.stop() + 1000000), 3) # set values with timestamp without order points = [tv0, tv2, tv1, tv3] meta = {'plop': None} self.perfdata.put( metric_id=metric_id, points=points, meta=meta ) data, _meta = self.perfdata.get( metric_id=metric_id, timewindow=timewindow, with_meta=True ) self.assertEqual(meta, _meta[0][PerfData.META_VALUE]) self.assertEqual([tv0, tv1, tv2], data) # remove 1 data at stop point _timewindow = get_offset_timewindow(timewindow.stop()) self.perfdata.remove( metric_id=metric_id, timewindow=_timewindow ) data, _meta = self.perfdata.get( metric_id=metric_id, timewindow=timewindow, with_meta=True ) self.assertEqual(meta, _meta[0][PerfData.META_VALUE]) self.assertEqual(data, [tv0, tv1]) # get data on timewindow data, _meta = self.perfdata.get( metric_id=metric_id, timewindow=timewindow, with_meta=True ) self.assertEqual(meta, _meta[0][PerfData.META_VALUE]) # get all data data, _meta = self.perfdata.get( metric_id=metric_id, with_meta=True ) self.assertEqual(meta, _meta[0][PerfData.META_VALUE]) self.assertEqual(len(data), 3) # remove all data self.perfdata.remove( metric_id=metric_id, with_meta=True ) data, _meta = self.perfdata.get( metric_id=metric_id, with_meta=True ) self.assertIsNone(_meta) self.assertEqual(len(data), 0)