소스 검색

Cover searx.utils

Gabor Nagy 10 년 전
부모
커밋
8810273010
3개의 변경된 파일92개의 추가작업 그리고 3개의 파일을 삭제
  1. 20
    0
      .coveragerc
  2. 3
    3
      Makefile
  3. 69
    0
      searx/tests/test_utils.py

+ 20
- 0
.coveragerc 파일 보기

@@ -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

+ 3
- 3
Makefile 파일 보기

@@ -29,9 +29,9 @@ flake8: .installed.cfg
29 29
 	@bin/flake8 ./searx/
30 30
 
31 31
 coverage: .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
35 35
 
36 36
 production: bin/buildout production.cfg setup.py
37 37
 	bin/buildout -c production.cfg $(options)

+ 69
- 0
searx/tests/test_utils.py 파일 보기

@@ -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))