diff options
author | Amjith Ramanujam <amjith.r@gmail.com> | 2017-03-06 19:20:34 -0800 |
---|---|---|
committer | Amjith Ramanujam <amjith.r@gmail.com> | 2017-03-06 19:20:34 -0800 |
commit | 7f009c630f33021898d74a664702eecac6e799f4 (patch) | |
tree | 18a32cf5b5d5c9f06e9d5c61df64ad1ce3739af1 | |
parent | 6e38853c99a6b01513dc4595e5103e848a09e63d (diff) |
Add support for unicode chars in expanded mode.
-rw-r--r-- | pgcli/packages/expanded.py | 5 | ||||
-rw-r--r-- | tests/test_expanded.py | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/pgcli/packages/expanded.py b/pgcli/packages/expanded.py index 5f7afe43..e0e0245b 100644 --- a/pgcli/packages/expanded.py +++ b/pgcli/packages/expanded.py @@ -1,4 +1,5 @@ from .tabulate import _text_type +from ..encodingutils import utf8tounicode def pad(field, total, char=u" "): return field + (char * (total - len(field))) @@ -13,14 +14,14 @@ def expanded_table(rows, headers, missingval=""): header_len += 2 for row in rows: - row_len = max([len(_text_type(x)) for x in row]) + row_len = max([len(_text_type(utf8tounicode(x))) for x in row]) row_result = [] if row_len > max_row_len: max_row_len = row_len for header, value in zip(padded_headers, row): value = missingval if value is None else value - row_result.append((u"%s" % header) + " " + (u"%s" % value).strip()) + row_result.append((u"%s" % header) + " " + (u"%s" % utf8tounicode(value)).strip()) results.append('\n'.join(row_result)) diff --git a/tests/test_expanded.py b/tests/test_expanded.py index e1b61a1d..57ef2128 100644 --- a/tests/test_expanded.py +++ b/tests/test_expanded.py @@ -1,3 +1,4 @@ +# coding=UTF-8 from pgcli.packages.expanded import expanded_table def test_expanded_table_renders(): @@ -11,3 +12,12 @@ name | world age | 456 """ assert expected == expanded_table(input, ["name", "age"]) + +def test_unicode_expanded_table(): + input = [(u'ö', 123)] + + expected = u"""-[ RECORD 0 ]------------------------- +name | ö +age | 123 +""" + assert expected == expanded_table(input, ["name", "age"]) |