class TestAggregatedProgressCallback(unittest.TestCase): def setUp(self): self.aggregated_amounts = [] self.threshold = 3 self.aggregated_progress_callback = AggregatedProgressCallback( [self.callback], self.threshold) def callback(self, bytes_transferred): self.aggregated_amounts.append(bytes_transferred) def test_under_threshold(self): one_under_threshold_amount = self.threshold - 1 self.aggregated_progress_callback(one_under_threshold_amount) self.assertEqual(self.aggregated_amounts, []) self.aggregated_progress_callback(1) self.assertEqual(self.aggregated_amounts, [self.threshold]) def test_at_threshold(self): self.aggregated_progress_callback(self.threshold) self.assertEqual(self.aggregated_amounts, [self.threshold]) def test_over_threshold(self): over_threshold_amount = self.threshold + 1 self.aggregated_progress_callback(over_threshold_amount) self.assertEqual(self.aggregated_amounts, [over_threshold_amount]) def test_flush(self): under_threshold_amount = self.threshold - 1 self.aggregated_progress_callback(under_threshold_amount) self.assertEqual(self.aggregated_amounts, []) self.aggregated_progress_callback.flush() self.assertEqual(self.aggregated_amounts, [under_threshold_amount]) def test_flush_with_nothing_to_flush(self): under_threshold_amount = self.threshold - 1 self.aggregated_progress_callback(under_threshold_amount) self.assertEqual(self.aggregated_amounts, []) self.aggregated_progress_callback.flush() self.assertEqual(self.aggregated_amounts, [under_threshold_amount]) # Flushing again should do nothing as it was just flushed self.aggregated_progress_callback.flush() self.assertEqual(self.aggregated_amounts, [under_threshold_amount])
def setUp(self): self.aggregated_amounts = [] self.threshold = 3 self.aggregated_progress_callback = AggregatedProgressCallback( [self.callback], self.threshold)