def test_advance_with_steps(self): """ ProgressHelper.advance() behaves properly with steps """ progress = ProgressHelper() output = self.get_output_stream() progress.start(output) progress.advance(5) output.get_stream().seek(0) self.assertEqual(self.generate_output(' 5 [----->----------------------]'), output.get_stream().read())
def test_advance_multiple_times(self): """ ProgressHelper.advance() behaves properly when advancing multiple times """ progress = ProgressHelper() output = self.get_output_stream() progress.start(output) progress.advance(3) progress.advance(2) output.get_stream().seek(0) self.assertEqual(self.generate_output(' 3 [--->------------------------]') + self.generate_output(' 5 [----->----------------------]'), output.get_stream().read())
def test_percent(self): """ Percentage should behave properly for ProgressHelper """ progress = ProgressHelper() output = self.get_output_stream() progress.start(output, 50) progress.display() progress.advance() progress.advance() output.get_stream().seek(0) self.assertEqual(self.generate_output(' 0/50 [>---------------------------] 0%') + self.generate_output(' 1/50 [>---------------------------] 2%') + self.generate_output(' 2/50 [=>--------------------------] 4%'), output.get_stream().read())
def test_customizations(self): """ Customizing ProgressHelper should be possible """ progress = ProgressHelper() progress.set_bar_width(10) progress.set_bar_character('_') progress.set_empty_bar_character(' ') progress.set_progress_character('/') progress.set_display_format(' %current%/%max% [%bar%] %percent%%') output = self.get_output_stream() progress.start(output, 10) progress.advance() output.get_stream().seek(0) self.assertEqual(self.generate_output(' 1/10 [_/ ] 10%'), output.get_stream().read())