test_utils.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import mock
  2. from searx.testing import SearxTestCase
  3. from searx import utils
  4. class TestUtils(SearxTestCase):
  5. def test_gen_useragent(self):
  6. self.assertIsInstance(utils.gen_useragent(), str)
  7. self.assertIsNotNone(utils.gen_useragent())
  8. self.assertTrue(utils.gen_useragent().startswith('Mozilla'))
  9. def test_highlight_content(self):
  10. self.assertEqual(utils.highlight_content(0, None), None)
  11. self.assertEqual(utils.highlight_content(None, None), None)
  12. self.assertEqual(utils.highlight_content('', None), None)
  13. self.assertEqual(utils.highlight_content(False, None), None)
  14. contents = [
  15. '<html></html>'
  16. 'not<'
  17. ]
  18. for content in contents:
  19. self.assertEqual(utils.highlight_content(content, None), content)
  20. content = 'a'
  21. query = 'test'
  22. self.assertEqual(utils.highlight_content(content, query), content)
  23. query = 'a test'
  24. self.assertEqual(utils.highlight_content(content, query), content)
  25. class TestHTMLTextExtractor(SearxTestCase):
  26. def setUp(self):
  27. self.html_text_extractor = utils.HTMLTextExtractor()
  28. def test__init__(self):
  29. self.assertEqual(self.html_text_extractor.result, [])
  30. def test_handle_charref(self):
  31. self.html_text_extractor.handle_charref('xF')
  32. self.assertIn(u'\x0f', self.html_text_extractor.result)
  33. self.html_text_extractor.handle_charref('XF')
  34. self.assertIn(u'\x0f', self.html_text_extractor.result)
  35. self.html_text_extractor.handle_charref('97')
  36. self.assertIn(u'a', self.html_text_extractor.result)
  37. def test_handle_entityref(self):
  38. entity = 'test'
  39. self.html_text_extractor.handle_entityref(entity)
  40. self.assertIn(entity, self.html_text_extractor.result)
  41. class TestUnicodeWriter(SearxTestCase):
  42. def setUp(self):
  43. self.unicode_writer = utils.UnicodeWriter(mock.MagicMock())
  44. def test_write_row(self):
  45. row = [1, 2, 3]
  46. self.assertEqual(self.unicode_writer.writerow(row), None)
  47. def test_write_rows(self):
  48. self.unicode_writer.writerow = mock.MagicMock()
  49. rows = [1, 2, 3]
  50. self.unicode_writer.writerows(rows)
  51. self.assertEqual(self.unicode_writer.writerow.call_count, len(rows))