test_answerers.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # SPDX-License-Identifier: AGPL-3.0-or-later
  2. # pylint: disable=missing-module-docstring,disable=missing-class-docstring,invalid-name
  3. from parameterized import parameterized
  4. import searx.plugins
  5. import searx.answerers
  6. import searx.preferences
  7. from searx.extended_types import sxng_request
  8. from tests import SearxTestCase
  9. class AnswererTest(SearxTestCase):
  10. def setUp(self):
  11. super().setUp()
  12. self.storage = searx.plugins.PluginStorage()
  13. engines = {}
  14. self.pref = searx.preferences.Preferences(["simple"], ["general"], engines, self.storage)
  15. self.pref.parse_dict({"locale": "en"})
  16. @parameterized.expand(searx.answerers.STORAGE.answerer_list)
  17. def test_unicode_input(self, answerer_obj: searx.answerers.Answerer):
  18. with self.app.test_request_context():
  19. sxng_request.preferences = self.pref
  20. unicode_payload = "árvíztűrő tükörfúrógép"
  21. for keyword in answerer_obj.keywords:
  22. query = f"{keyword} {unicode_payload}"
  23. self.assertIsInstance(answerer_obj.answer(query), list)