on master help sign in
Cover searx.utils
commit8810273010afd91b0586f57d9c5794e7dd617d10 authorGabor Nagy <mail@aigeruth.hu> dateSat 12 Jul 2014, 15:46 (12 years ago) parente4419a0
3 files changed+92−3
.coveragerc+20 Makefile+3−3 searx/tests/test_utils.py+69
.coveragercnew file+20
@@ -0,0 +1,20 @@
1+[run]
2+branch = True
3+source =
4+ searx/engines
5+ searx/__init__.py
6+ searx/autocomplete.py
7+ searx/https_rewrite.py
8+ searx/languages.py
9+ searx/search.py
10+ searx/testing.py
11+ searx/utils.py
12+ searx/webapp.py
13+
14+[report]
15+show_missing = True
16+exclude_lines =
17+ if __name__ == .__main__.:
18+
19+[html]
20+directory = coverage
Makefile+3−3
@@ -29,9 +29,9 @@ flake8: .installed.cfg
2929 @bin/flake8 ./searx/
3030
3131coverage: .installed.cfg
32− @bin/coverage run --source=./searx/ --branch bin/test
33− @bin/coverage report --show-missing
34− @bin/coverage html --directory ./coverage
32+ @bin/coverage run bin/test
33+ @bin/coverage report
34+ @bin/coverage html
3535
3636production: bin/buildout production.cfg setup.py
3737 bin/buildout -c production.cfg $(options)
searx/tests/test_utils.pynew file+69
@@ -0,0 +1,69 @@
1+import mock
2+from searx.testing import SearxTestCase
3+from searx import utils
4+
5+
6+class TestUtils(SearxTestCase):
7+
8+ def test_gen_useragent(self):
9+ self.assertIsInstance(utils.gen_useragent(), str)
10+ self.assertIsNotNone(utils.gen_useragent())
11+ self.assertTrue(utils.gen_useragent().startswith('Mozilla'))
12+
13+ def test_highlight_content(self):
14+ self.assertEqual(utils.highlight_content(0, None), None)
15+ self.assertEqual(utils.highlight_content(None, None), None)
16+ self.assertEqual(utils.highlight_content('', None), None)
17+ self.assertEqual(utils.highlight_content(False, None), None)
18+
19+ contents = [
20+ '<html></html>'
21+ 'not<'
22+ ]
23+ for content in contents:
24+ self.assertEqual(utils.highlight_content(content, None), content)
25+
26+ content = 'a'
27+ query = 'test'
28+ self.assertEqual(utils.highlight_content(content, query), content)
29+ query = 'a test'
30+ self.assertEqual(utils.highlight_content(content, query), content)
31+
32+
33+class TestHTMLTextExtractor(SearxTestCase):
34+
35+ def setUp(self):
36+ self.html_text_extractor = utils.HTMLTextExtractor()
37+
38+ def test__init__(self):
39+ self.assertEqual(self.html_text_extractor.result, [])
40+
41+ def test_handle_charref(self):
42+ self.html_text_extractor.handle_charref('xF')
43+ self.assertIn(u'\x0f', self.html_text_extractor.result)
44+ self.html_text_extractor.handle_charref('XF')
45+ self.assertIn(u'\x0f', self.html_text_extractor.result)
46+
47+ self.html_text_extractor.handle_charref('97')
48+ self.assertIn(u'a', self.html_text_extractor.result)
49+
50+ def test_handle_entityref(self):
51+ entity = 'test'
52+ self.html_text_extractor.handle_entityref(entity)
53+ self.assertIn(entity, self.html_text_extractor.result)
54+
55+
56+class TestUnicodeWriter(SearxTestCase):
57+
58+ def setUp(self):
59+ self.unicode_writer = utils.UnicodeWriter(mock.MagicMock())
60+
61+ def test_write_row(self):
62+ row = [1, 2, 3]
63+ self.assertEqual(self.unicode_writer.writerow(row), None)
64+
65+ def test_write_rows(self):
66+ self.unicode_writer.writerow = mock.MagicMock()
67+ rows = [1, 2, 3]
68+ self.unicode_writer.writerows(rows)
69+ self.assertEqual(self.unicode_writer.writerow.call_count, len(rows))