Exemplo n.º 1
0
    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().decode()
        )
Exemplo n.º 2
0
    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().decode(),
        )
Exemplo n.º 3
0
    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().decode())
Exemplo n.º 4
0
    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().decode())
Exemplo n.º 5
0
    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().decode(),
        )
Exemplo n.º 6
0
    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().decode())
Exemplo n.º 7
0
    def test_colored_bar(self):
        """
        Colored progressbar
        """
        progress = ProgressHelper()
        output = self.get_output_stream(decorated=True)
        progress.set_bar_character("<comment>=</comment>")
        progress.start(output, 50)
        progress.display()
        progress.advance()
        progress.advance()
        progress.advance()
        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 [\x1b[33m=\x1b[0m>--------------------------]   4%")
            + self.generate_output("  3/50 [\x1b[33m=\x1b[0m>--------------------------]   6%")
            + self.generate_output("  4/50 [\x1b[33m=\x1b[0m\x1b[33m=\x1b[0m>-------------------------]   8%")
            + self.generate_output("  5/50 [\x1b[33m=\x1b[0m\x1b[33m=\x1b[0m>-------------------------]  10%"),
            output.get_stream().read().decode(),
        )
Exemplo n.º 8
0
    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().decode())
Exemplo n.º 9
0
    def test_colored_bar(self):
        """
        Colored progressbar
        """
        progress = ProgressHelper()
        output = self.get_output_stream(decorated=True)
        progress.set_bar_character('<comment>=</comment>')
        progress.start(output, 50)
        progress.display()
        progress.advance()
        progress.advance()
        progress.advance()
        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 [\x1b[33m=\x1b[0m>--------------------------]   4%') +
            self.generate_output(
                '  3/50 [\x1b[33m=\x1b[0m>--------------------------]   6%') +
            self.generate_output(
                '  4/50 [\x1b[33m=\x1b[0m\x1b[33m=\x1b[0m>-------------------------]   8%'
            ) + self.generate_output(
                '  5/50 [\x1b[33m=\x1b[0m\x1b[33m=\x1b[0m>-------------------------]  10%'
            ),
            output.get_stream().read().decode())
Exemplo n.º 10
0
    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().decode())