summaryrefslogtreecommitdiffstats
path: root/tests/test_block_bar.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_block_bar.py')
-rw-r--r--tests/test_block_bar.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/test_block_bar.py b/tests/test_block_bar.py
new file mode 100644
index 0000000..973b9e8
--- /dev/null
+++ b/tests/test_block_bar.py
@@ -0,0 +1,53 @@
+from rich.bar import Bar
+
+from .render import render
+
+
+expected = [
+ "\x1b[39;49m ▐█████████████████████████ \x1b[0m\n",
+ "\x1b[39;49m ██████████████████████▌ \x1b[0m\n",
+ "\x1b[39;49m \x1b[0m\n",
+]
+
+
+def test_repr():
+ bar = Bar(size=100, begin=11, end=62, width=50)
+ assert repr(bar) == "Bar(100, 11, 62)"
+
+
+def test_render():
+ bar = Bar(size=100, begin=11, end=62, width=50)
+ bar_render = render(bar)
+ assert bar_render == expected[0]
+ bar = Bar(size=100, begin=12, end=57, width=50)
+ bar_render = render(bar)
+ assert bar_render == expected[1]
+ # begin after end
+ bar = Bar(size=100, begin=60, end=40, width=50)
+ bar_render = render(bar)
+ assert bar_render == expected[2]
+
+
+def test_measure():
+ bar = Bar(size=100, begin=11, end=62)
+ measurement = bar.__rich_measure__(None, 120)
+ assert measurement.minimum == 4
+ assert measurement.maximum == 120
+
+
+def test_zero_total():
+ # Shouldn't throw zero division error
+ bar = Bar(size=0, begin=0, end=0)
+ render(bar)
+
+
+if __name__ == "__main__":
+ bar = Bar(size=100, begin=11, end=62, width=50)
+ bar_render = render(bar)
+ print(repr(bar_render))
+ bar = Bar(size=100, begin=12, end=57, width=50)
+ bar_render = render(bar)
+ print(repr(bar_render))
+ bar = Bar(size=100, begin=60, end=40, width=50)
+ bar_render = render(bar)
+ print(repr(bar_render))