def update(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer, maxsteps=20) widget = PercentageWidget() widget.init(progressbar, writer.get_width()) for i in xrange(5, 96, 5): progressbar.step += 1 result = widget.update(progressbar, writer.get_width()) Assert(result) == '%i%%' % i
def update(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer, maxsteps=20) widget = StepWidget() widget.init(progressbar, writer.get_width()) for i in xrange(1, 21): progressbar.step += 1 result = widget.update(progressbar, writer.get_width()) Assert(len(result)) == widget.size_hint(progressbar) Assert(result) == '%i of 20' % i
def test_text_widget(): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer) widget = TextWidget('foobar') assert widget.provides_size_hint Assert(widget.size_hint(progressbar)) == len('foobar') Assert(widget.init(progressbar, writer.get_width())) == 'foobar' Assert(widget.update(progressbar, writer.get_width())) == 'foobar' Assert(widget.finish(progressbar, writer.get_width())) == 'foobar' Assert(repr(widget)) == "TextWidget('foobar')"
def test_hint_widget(): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer) widget = HintWidget('foo') assert not widget.provides_size_hint Assert(widget.init(progressbar, writer.get_width())) == 'foo' Assert(widget.update(progressbar, writer.get_width(), hint='bar')) == 'bar' Assert(widget.update(progressbar, writer.get_width(), hint='baz')) == 'baz' Assert(widget.finish(progressbar, writer.get_width(), hint='spam')) == 'spam' Assert(repr(widget)) == "HintWidget('foo')" widget.finish(progressbar, writer.get_width()) == u''
def get_width(self): with Assert.not_raising(Exception): self.writer.get_width() writer = TerminalWriter(sys.__stdout__) Assert(writer.get_width()) == writer.get_dimensions()[1] writer = TerminalWriter(StringIO()) os.environ['COLUMNS'] = '50' Assert(writer.get_width()) == 50 del os.environ['COLUMNS'] Assert(writer.get_width()) == TerminalWriter.default_width default_width = TerminalWriter.default_width Assert(writer.get_width(default_width + 1)) == default_width + 1
def update(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer) widget = Widget() with Assert.raises(NotImplementedError) as exc: widget.update(progressbar, writer.get_width()) Assert(exc.args[0]) == 'Widget.update'
def finish(self): class MyWidget(Widget): update_called = False def update(self, writer, remaining_width, **kwargs): self.update_called = True writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer) widget = MyWidget() widget.finish(progressbar, writer.get_width()) assert widget.update_called
def init(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer, maxsteps=20) widget = StepWidget() Assert(widget.init(progressbar, writer.get_width())) == '0 of 20' Assert(widget.size_hint(progressbar)) == 7 with Assert.raises(ValueError): StepWidget('foo') with Assert.not_raising(ValueError): StepWidget('bytes')
def get_usable_width(self): writer = TerminalWriter(StringIO(), prefix='spam') Assert(writer.get_usable_width()) == writer.get_width() - len('spam') writer.indent() Assert(writer.get_usable_width()) == writer.get_width() - 8
def finish(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer, maxsteps=20) widget = StepWidget() progressbar.step = progressbar.maxsteps Assert(widget.finish(progressbar, writer.get_width())) == '20 of 20'
def finish(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer, maxsteps=100) widget = PercentageWidget() widget.init(progressbar, writer.get_width()) Assert(widget.finish(progressbar, writer.get_width())) == '100%'