def test_multiple_increments(self): batch_counter = metrics.BatchCounter(self.transport, b"example") batch_counter.increment() self.assertFalse(self.transport.send.called) batch_counter.increment() self.assertEqual(batch_counter.packets[1.0], 2) self.assertFalse(self.transport.send.called)
def test_flush(self): batch_counter = metrics.BatchCounter(self.transport, b"example") batch_counter.increment() batch_counter.increment(3) self.assertEqual(batch_counter.packets[1.0], 4) batch_counter.flush() self.assertEqual(self.transport.send.call_count, 1) self.assertEqual(self.transport.send.call_args, mock.call(b"example:4|c"))
def test_multiple_sample_rates(self): batch_counter = metrics.BatchCounter(self.transport, b"example") batch_counter.increment() batch_counter.increment() batch_counter.increment(sample_rate=0.5) batch_counter.flush() self.assertEqual(len(batch_counter.packets), 2) self.assertEqual(batch_counter.packets[1.0], 2) self.assertEqual(batch_counter.packets[0.5], 1) self.assertEqual(self.transport.send.call_count, 2) expected_call_args = [mock.call(b"example:2|c"), mock.call(b"example:1|c|@0.5")] for expected in expected_call_args: self.assertTrue(expected in self.transport.send.call_args_list)