commit: 7580852bda660471f8968b4f14cdf44dad73249f
parent: da13c3b5f9b7f0a8691df4f53e817ac2116025b2
Author: Adam Tauber <asciimoo@gmail.com>
Date: Mon, 7 Sep 2015 19:22:01 +0200
[enh] test utils.prettify_url
Diffstat:
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/searx/tests/test_utils.py b/searx/tests/test_utils.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
import mock
from searx.testing import SearxTestCase
from searx import utils
@@ -51,6 +52,15 @@ class TestUtils(SearxTestCase):
self.assertIsNotNone(utils.html_to_text(html))
self.assertEqual(utils.html_to_text(html), "Test text")
+ def test_prettify_url(self):
+ data = (('https://searx.me/', 'https://searx.me/'),
+ (u'https://searx.me/ű', u'https://searx.me/ű'),
+ ('https://searx.me/' + (100 * 'a'), 'https://searx.me/[...]aaaaaaaaaaaaaaaaa'),
+ (u'https://searx.me/' + (100 * u'ű'), u'https://searx.me/[...]űűűűűűűűűűűűűűűűű'))
+
+ for test_url, expected in data:
+ self.assertEqual(utils.prettify_url(test_url, max_length=32), expected)
+
class TestHTMLTextExtractor(SearxTestCase):
diff --git a/searx/utils.py b/searx/utils.py
@@ -222,9 +222,10 @@ def dict_subset(d, properties):
return result
-def prettify_url(url):
- if len(url) > 74:
- return u'{0}[...]{1}'.format(url[:35], url[-35:])
+def prettify_url(url, max_length=74):
+ if len(url) > max_length:
+ chunk_len = max_length / 2 + 1
+ return u'{0}[...]{1}'.format(url[:chunk_len], url[-chunk_len:])
else:
return url