From 2a29e16d25ae19d9216b959f177cdcd71c43511e Mon Sep 17 00:00:00 2001 From: Grant Lanham Date: Sun, 29 Sep 2024 20:56:59 -0400 Subject: [feat] implement mariadb engine --- tests/unit/test_engine_mariadb_server.py | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 tests/unit/test_engine_mariadb_server.py (limited to 'tests/unit/test_engine_mariadb_server.py') diff --git a/tests/unit/test_engine_mariadb_server.py b/tests/unit/test_engine_mariadb_server.py new file mode 100644 index 000000000..423132e34 --- /dev/null +++ b/tests/unit/test_engine_mariadb_server.py @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +# pylint: disable=missing-module-docstring + +from unittest.mock import MagicMock, Mock +from searx.engines import load_engines, mariadb_server +from tests import SearxTestCase + + +class MariadbServerTests(SearxTestCase): # pylint: disable=missing-class-docstring + def setUp(self): + load_engines( + [ + { + 'name': 'mariadb server', + 'engine': 'mariadb_server', + 'shortcut': 'mdb', + 'timeout': 9.0, + 'disabled': True, + } + ] + ) + + def tearDown(self): + load_engines([]) + + def test_init_no_query_str_raises(self): + self.assertRaises(ValueError, lambda: mariadb_server.init({})) + + def test_init_non_select_raises(self): + self.assertRaises(ValueError, lambda: mariadb_server.init({'query_str': 'foobar'})) + + def test_search_returns_results(self): + test_string = 'FOOBAR' + cursor_mock = MagicMock() + with cursor_mock as setup: # pylint: disable=not-context-manager + setup.__iter__ = Mock(return_value=iter([{test_string, 1}])) + setup.description = [[test_string]] + conn_mock = Mock() + conn_mock.cursor.return_value = cursor_mock + mariadb_server._connection = conn_mock # pylint: disable=protected-access + results = mariadb_server.search(test_string, {'pageno': 1}) + self.assertEqual(1, len(results)) + self.assertIn(test_string, results[0]) + self.assertEqual(mariadb_server.result_template, results[0]['template']) -- cgit v1.2.3