2020-04-19 14:23:53 +00:00
|
|
|
import io
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
from rich.console import Console
|
|
|
|
from rich.rule import Rule
|
|
|
|
from rich.text import Text
|
|
|
|
|
|
|
|
|
|
|
|
def test_rule():
|
2020-06-20 17:29:01 +00:00
|
|
|
console = Console(
|
2021-03-01 19:42:00 +00:00
|
|
|
width=16,
|
|
|
|
file=io.StringIO(),
|
|
|
|
force_terminal=True,
|
|
|
|
legacy_windows=False,
|
|
|
|
_environ={},
|
2020-06-20 17:29:01 +00:00
|
|
|
)
|
2020-08-05 08:50:15 +00:00
|
|
|
console.print(Rule())
|
|
|
|
console.print(Rule("foo"))
|
2020-04-19 14:23:53 +00:00
|
|
|
console.rule(Text("foo", style="bold"))
|
|
|
|
console.rule("foobarbazeggfoobarbazegg")
|
2020-08-05 08:50:15 +00:00
|
|
|
expected = "\x1b[92m────────────────\x1b[0m\n"
|
2020-08-08 02:39:14 +00:00
|
|
|
expected += "\x1b[92m───── \x1b[0mfoo\x1b[92m ──────\x1b[0m\n"
|
2020-08-08 02:39:35 +00:00
|
|
|
expected += "\x1b[92m───── \x1b[0m\x1b[1mfoo\x1b[0m\x1b[92m ──────\x1b[0m\n"
|
2020-08-05 08:50:15 +00:00
|
|
|
expected += "\x1b[92m─ \x1b[0mfoobarbazeg…\x1b[92m ─\x1b[0m\n"
|
|
|
|
|
2020-07-27 16:21:03 +00:00
|
|
|
result = console.file.getvalue()
|
|
|
|
assert result == expected
|
2020-04-19 14:23:53 +00:00
|
|
|
|
|
|
|
|
2020-12-03 17:17:24 +00:00
|
|
|
def test_rule_error():
|
2021-03-01 19:42:00 +00:00
|
|
|
console = Console(width=16, file=io.StringIO(), legacy_windows=False, _environ={})
|
2020-12-03 17:17:24 +00:00
|
|
|
with pytest.raises(ValueError):
|
|
|
|
console.rule("foo", align="foo")
|
|
|
|
|
|
|
|
|
|
|
|
def test_rule_align():
|
2021-03-01 19:42:00 +00:00
|
|
|
console = Console(width=16, file=io.StringIO(), legacy_windows=False, _environ={})
|
2020-12-03 17:17:24 +00:00
|
|
|
console.rule("foo")
|
|
|
|
console.rule("foo", align="left")
|
|
|
|
console.rule("foo", align="center")
|
|
|
|
console.rule("foo", align="right")
|
|
|
|
console.rule()
|
|
|
|
result = console.file.getvalue()
|
|
|
|
print(repr(result))
|
|
|
|
expected = "───── foo ──────\nfoo ────────────\n───── foo ──────\n──────────── foo\n────────────────\n"
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
2020-08-07 01:04:19 +00:00
|
|
|
def test_rule_cjk():
|
|
|
|
console = Console(
|
|
|
|
width=16,
|
|
|
|
file=io.StringIO(),
|
|
|
|
force_terminal=True,
|
|
|
|
color_system=None,
|
|
|
|
legacy_windows=False,
|
2021-03-01 19:42:00 +00:00
|
|
|
_environ={},
|
2020-08-07 01:04:19 +00:00
|
|
|
)
|
|
|
|
console.rule("欢迎!")
|
|
|
|
expected = "──── 欢迎! ────\n"
|
|
|
|
assert console.file.getvalue() == expected
|
2020-08-05 09:38:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_characters():
|
2020-06-10 11:55:04 +00:00
|
|
|
console = Console(
|
2020-06-20 17:29:01 +00:00
|
|
|
width=16,
|
|
|
|
file=io.StringIO(),
|
|
|
|
force_terminal=True,
|
|
|
|
color_system=None,
|
2020-06-20 17:39:00 +00:00
|
|
|
legacy_windows=False,
|
2021-03-01 19:42:00 +00:00
|
|
|
_environ={},
|
2020-06-10 11:55:04 +00:00
|
|
|
)
|
2020-08-05 09:38:02 +00:00
|
|
|
console.rule(characters="+*")
|
|
|
|
console.rule("foo", characters="+*")
|
2020-08-05 12:31:57 +00:00
|
|
|
console.print(Rule(characters=".,"))
|
2020-08-05 09:38:02 +00:00
|
|
|
expected = "+*+*+*+*+*+*+*+*\n"
|
2020-08-08 02:39:14 +00:00
|
|
|
expected += "+*+*+ foo +*+*+*\n"
|
2020-08-05 12:31:57 +00:00
|
|
|
expected += ".,.,.,.,.,.,.,.,\n"
|
2020-06-10 11:55:04 +00:00
|
|
|
assert console.file.getvalue() == expected
|
|
|
|
|
|
|
|
|
2020-04-19 14:23:53 +00:00
|
|
|
def test_repr():
|
|
|
|
rule = Rule("foo")
|
|
|
|
assert isinstance(repr(rule), str)
|
|
|
|
|
|
|
|
|
|
|
|
def test_error():
|
|
|
|
with pytest.raises(ValueError):
|
2020-08-05 04:44:53 +00:00
|
|
|
Rule(characters="")
|