예제 #1
0
    def test_simple_archive(self):
        count = 10

        self.r.hset(self.counter, self.start_time-1, count)
        TimeSeries.archive_cat_counts(self.r, self.cat_id, self.start_time)
        self.assertRaises(KeyError, self.r.hget, self.counter, self.start_time-1)

        ts = self.r.zrange("ts_%s" % self.cat_id, 0, -1, withscores=True)
        self.assertEqual(len(ts), 1)
        self.assertEqual(ts_to_hits(ts[0]), 10)
예제 #2
0
    def test_archive_skip(self):
        """Test that the archive method skips new entries"""

        self.r.hset(self.counter, self.start_time-1, 1)
        self.r.hset(self.counter, self.start_time+1, 2)
        TimeSeries.archive_cat_counts(self.r, self.cat_id, self.start_time)

        self.assertRaises(KeyError, self.r.hget, self.counter, self.start_time-1)
        self.assertTrue(self.r.hget(self.counter, self.start_time+1))

        ts = self.r.zrange("ts_%s" % self.cat_id, 0, -1, withscores=True)
        self.assertEqual(len(ts), 1)
        self.assertEqual(ts_to_hits(ts[0]), 1)
예제 #3
0
    def test_multiple_archive(self):
        for step in [1,2]:
            self.r.hset(self.counter, self.start_time-step, 1)

        TimeSeries.archive_cat_counts(self.r, self.cat_id, self.start_time)

        for step in [1, 2]:
            self.assertRaises(
                KeyError, self.r.hget, self.counter, self.start_time-step)

        ts = self.r.zrange("ts_%s" % self.cat_id, 0, -1, withscores=True)
        self.assertEqual(len(ts), 2)
        for record in ts:
            self.assertEqual(ts_to_hits(record), 1)