summaryrefslogtreecommitdiffstats
path: root/tests/tabular_output/test_tabulate_adapter.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/tabular_output/test_tabulate_adapter.py127
1 files changed, 72 insertions, 55 deletions
diff --git a/tests/tabular_output/test_tabulate_adapter.py b/tests/tabular_output/test_tabulate_adapter.py
index e0dd5a8..6e7c7db 100644
--- a/tests/tabular_output/test_tabulate_adapter.py
+++ b/tests/tabular_output/test_tabulate_adapter.py
@@ -16,35 +16,53 @@ if HAS_PYGMENTS:
def test_tabulate_wrapper():
"""Test the *output_formatter.tabulate_wrapper()* function."""
- data = [['abc', 1], ['d', 456]]
- headers = ['letters', 'number']
- output = tabulate_adapter.adapter(iter(data), headers, table_format='psql')
- assert "\n".join(output) == dedent('''\
- +-----------+----------+
- | letters | number |
- |-----------+----------|
- | abc | 1 |
- | d | 456 |
- +-----------+----------+''')
-
- data = [['{1,2,3}', '{{1,2},{3,4}}', '{å,魚,текст}'], ['{}', '<null>', '{<null>}']]
- headers = ['bigint_array', 'nested_numeric_array', '配列']
- output = tabulate_adapter.adapter(iter(data), headers, table_format='psql')
- assert "\n".join(output) == dedent('''\
- +----------------+------------------------+--------------+
- | bigint_array | nested_numeric_array | 配列 |
- |----------------+------------------------+--------------|
- | {1,2,3} | {{1,2},{3,4}} | {å,魚,текст} |
- | {} | <null> | {<null>} |
- +----------------+------------------------+--------------+''')
+ data = [["abc", 1], ["d", 456]]
+ headers = ["letters", "number"]
+ output = tabulate_adapter.adapter(iter(data), headers, table_format="psql")
+ assert "\n".join(output) == dedent(
+ """\
+ +---------+--------+
+ | letters | number |
+ |---------+--------|
+ | abc | 1 |
+ | d | 456 |
+ +---------+--------+"""
+ )
+
+ data = [["abc", 1], ["d", 456]]
+ headers = ["letters", "number"]
+ output = tabulate_adapter.adapter(iter(data), headers, table_format="psql_unicode")
+ assert "\n".join(output) == dedent(
+ """\
+ ┌─────────┬────────┐
+ │ letters │ number │
+ ├─────────┼────────┤
+ │ abc │ 1 │
+ │ d │ 456 │
+ └─────────┴────────┘"""
+ )
+
+ data = [["{1,2,3}", "{{1,2},{3,4}}", "{å,魚,текст}"], ["{}", "<null>", "{<null>}"]]
+ headers = ["bigint_array", "nested_numeric_array", "配列"]
+ output = tabulate_adapter.adapter(iter(data), headers, table_format="psql")
+ assert "\n".join(output) == dedent(
+ """\
+ +--------------+----------------------+--------------+
+ | bigint_array | nested_numeric_array | 配列 |
+ |--------------+----------------------+--------------|
+ | {1,2,3} | {{1,2},{3,4}} | {å,魚,текст} |
+ | {} | <null> | {<null>} |
+ +--------------+----------------------+--------------+"""
+ )
def test_markup_format():
"""Test that markup formats do not have number align or string align."""
- data = [['abc', 1], ['d', 456]]
- headers = ['letters', 'number']
- output = tabulate_adapter.adapter(iter(data), headers, table_format='mediawiki')
- assert "\n".join(output) == dedent('''\
+ data = [["abc", 1], ["d", 456]]
+ headers = ["letters", "number"]
+ output = tabulate_adapter.adapter(iter(data), headers, table_format="mediawiki")
+ assert "\n".join(output) == dedent(
+ """\
{| class="wikitable" style="text-align: left;"
|+ <!-- caption -->
|-
@@ -53,44 +71,43 @@ def test_markup_format():
| abc || 1
|-
| d || 456
- |}''')
+ |}"""
+ )
-@pytest.mark.skipif(not HAS_PYGMENTS, reason='requires the Pygments library')
+@pytest.mark.skipif(not HAS_PYGMENTS, reason="requires the Pygments library")
def test_style_output_table():
"""Test that *style_output_table()* styles the output table."""
class CliStyle(Style):
default_style = ""
styles = {
- Token.Output.TableSeparator: 'ansibrightred',
+ Token.Output.TableSeparator: "ansibrightred",
}
- headers = ['h1', 'h2']
- data = [['观音', '2'], ['Ποσειδῶν', 'b']]
- style_output_table = tabulate_adapter.style_output_table('psql')
+
+ headers = ["h1", "h2"]
+ data = [["观音", "2"], ["Ποσειδῶν", "b"]]
+ style_output_table = tabulate_adapter.style_output_table("psql")
style_output_table(data, headers, style=CliStyle)
- output = tabulate_adapter.adapter(iter(data), headers, table_format='psql')
-
- assert "\n".join(output) == dedent('''\
- \x1b[91m+\x1b[39m''' + (
- ('\x1b[91m-\x1b[39m' * 10) +
- '\x1b[91m+\x1b[39m' +
- ('\x1b[91m-\x1b[39m' * 6)) +
- '''\x1b[91m+\x1b[39m
- \x1b[91m|\x1b[39m h1 \x1b[91m|\x1b[39m''' +
- ''' h2 \x1b[91m|\x1b[39m
- ''' + '\x1b[91m|\x1b[39m' + (
- ('\x1b[91m-\x1b[39m' * 10) +
- '\x1b[91m+\x1b[39m' +
- ('\x1b[91m-\x1b[39m' * 6)) +
- '''\x1b[91m|\x1b[39m
- \x1b[91m|\x1b[39m 观音 \x1b[91m|\x1b[39m''' +
- ''' 2 \x1b[91m|\x1b[39m
- \x1b[91m|\x1b[39m Ποσειδῶν \x1b[91m|\x1b[39m''' +
- ''' b \x1b[91m|\x1b[39m
- ''' + '\x1b[91m+\x1b[39m' + (
- ('\x1b[91m-\x1b[39m' * 10) +
- '\x1b[91m+\x1b[39m' +
- ('\x1b[91m-\x1b[39m' * 6)) +
- '\x1b[91m+\x1b[39m')
+ output = tabulate_adapter.adapter(iter(data), headers, table_format="psql")
+ PLUS = "\x1b[91m+\x1b[39m"
+ MINUS = "\x1b[91m-\x1b[39m"
+ PIPE = "\x1b[91m|\x1b[39m"
+
+ expected = (
+ dedent(
+ """\
+ +----------+----+
+ | h1 | h2 |
+ |----------+----|
+ | 观音 | 2 |
+ | Ποσειδῶν | b |
+ +----------+----+"""
+ )
+ .replace("+", PLUS)
+ .replace("-", MINUS)
+ .replace("|", PIPE)
+ )
+
+ assert "\n".join(output) == expected