diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-09-06 04:12:52 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-09-06 04:12:52 +0000 |
commit | f42dcf1d6578df945fb52fb24703e88de54ad45b (patch) | |
tree | efd58347c05908c103cfdf8a2b3321c158a7e360 /tests/tabular_output/test_tabulate_adapter.py | |
parent | Adding upstream version 2.1.0. (diff) | |
download | cli-helpers-f42dcf1d6578df945fb52fb24703e88de54ad45b.tar.xz cli-helpers-f42dcf1d6578df945fb52fb24703e88de54ad45b.zip |
Adding upstream version 2.2.0.upstream/2.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/tabular_output/test_tabulate_adapter.py')
-rw-r--r-- | tests/tabular_output/test_tabulate_adapter.py | 127 |
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 |