mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-04 03:27:06 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# 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'])
 |