summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmjith Ramanujam <amjith.r@gmail.com>2017-03-06 19:20:34 -0800
committerAmjith Ramanujam <amjith.r@gmail.com>2017-03-06 19:20:34 -0800
commit7f009c630f33021898d74a664702eecac6e799f4 (patch)
tree18a32cf5b5d5c9f06e9d5c61df64ad1ce3739af1
parent6e38853c99a6b01513dc4595e5103e848a09e63d (diff)
Add support for unicode chars in expanded mode.
-rw-r--r--pgcli/packages/expanded.py5
-rw-r--r--tests/test_expanded.py10
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"])