Add jinja2 filter justify 21/32021/8
authorYujun Zhang <zhang.yujunz@zte.com.cn>
Tue, 28 Mar 2017 10:13:38 +0000 (18:13 +0800)
committerYujun Zhang <zhang.yujunz@zte.com.cn>
Wed, 29 Mar 2017 01:38:30 +0000 (09:38 +0800)
It will be used in report template

Change-Id: I69fd891db5e69b2dec441bd296836e6806461b78
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
qtip/reporter/filters.py [new file with mode: 0644]
tests/unit/reporter/filters_test.py [new file with mode: 0644]

diff --git a/qtip/reporter/filters.py b/qtip/reporter/filters.py
new file mode 100644 (file)
index 0000000..dc46e19
--- /dev/null
@@ -0,0 +1,14 @@
+###############################################################
+# Copyright (c) 2017 ZTE Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+def justify(pair, width=100, padding_with='.'):
+    """align first element along the left margin, second along the right, padding spaces"""
+    n = width - len(pair[0])
+    return '{key}{value:{c}>{n}}'.format(key=pair[0], value=pair[1], c=padding_with, n=n)
diff --git a/tests/unit/reporter/filters_test.py b/tests/unit/reporter/filters_test.py
new file mode 100644 (file)
index 0000000..2ced930
--- /dev/null
@@ -0,0 +1,19 @@
+##############################################################################
+# Copyright (c) 2017 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+from qtip.reporter import filters
+from jinja2 import Environment
+
+
+def test_justify():
+    env = Environment()
+    env.filters['justify'] = filters.justify
+    template = env.from_string('{{ kvpair|justify(width=10) }}')
+    assert template.render(kvpair=('key', 'value')) == 'key..value'