def get_widgets_by_priority(self): class ComparableWidget(Widget): def __eq__(self, other): return self.__class__ is other.__class__ def __ne__(self, other): return not self.__eq__(other) __hash__ = None class FooWidget(ComparableWidget): priority = 1 class BarWidget(ComparableWidget): priority = 2 class BazWidget(ComparableWidget): priority = 3 widgets = [BarWidget(), FooWidget(), BazWidget()] writer = TerminalWriter(StringIO()) progressbar = ProgressBar(widgets, writer) Assert(progressbar.get_widgets_by_priority()) == [(2, BazWidget()), (0, BarWidget()), (1, FooWidget())]
def update(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer) states = [ '[.###..]', '[..###.]', '[...###]', '[..###.]', '[.###..]', '[###...]', '[.###..]' ] widget = BarWidget() for state in states: Assert(widget.update(progressbar, 8)) == state widget = BarWidget() widget.position = 10 Assert(widget.update(progressbar, 8)) == '[..###.]' Assert(widget.update(progressbar, 8)) == '[.###..]'
def init(self): writer = TerminalWriter(StringIO()) progressbar = ProgressBar([], writer) widget = BarWidget() Assert(widget.init(progressbar, 8)) == '[###...]'