test_engine_mariadb_server.py 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. # SPDX-License-Identifier: AGPL-3.0-or-later
  2. # pylint: disable=missing-module-docstring,disable=missing-class-docstring,invalid-name
  3. from unittest.mock import MagicMock, Mock
  4. from searx.engines import mariadb_server
  5. from tests import SearxTestCase
  6. class MariadbServerTests(SearxTestCase):
  7. def test_init_no_query_str_raises(self):
  8. self.assertRaises(ValueError, lambda: mariadb_server.init({}))
  9. def test_init_non_select_raises(self):
  10. self.assertRaises(ValueError, lambda: mariadb_server.init({'query_str': 'foobar'}))
  11. def test_search_returns_results(self):
  12. test_string = 'FOOBAR'
  13. cursor_mock = MagicMock()
  14. with cursor_mock as setup: # pylint: disable=not-context-manager
  15. setup.__iter__ = Mock(return_value=iter([{test_string, 1}]))
  16. setup.description = [[test_string]]
  17. conn_mock = Mock()
  18. conn_mock.cursor.return_value = cursor_mock
  19. mariadb_server._connection = conn_mock # pylint: disable=protected-access
  20. results = mariadb_server.search(test_string, {'pageno': 1})
  21. self.assertEqual(1, len(results))
  22. self.assertIn(test_string, results[0])
  23. self.assertEqual(mariadb_server.result_template, results[0]['template'])