2020-09-22 16:55:59 +02:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
from searx.preferences import Preferences
|
|
|
|
from searx.engines import engines
|
|
|
|
|
|
|
|
import searx.search
|
2020-11-02 11:19:53 +01:00
|
|
|
from searx.search import EngineRef
|
2020-09-22 16:55:59 +02:00
|
|
|
from searx.webadapter import validate_engineref_list
|
2021-09-02 16:01:34 +02:00
|
|
|
from tests import SearxTestCase
|
2020-09-22 16:55:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
PRIVATE_ENGINE_NAME = 'general private offline'
|
|
|
|
TEST_ENGINES = [
|
|
|
|
{
|
|
|
|
'name': PRIVATE_ENGINE_NAME,
|
|
|
|
'engine': 'dummy-offline',
|
|
|
|
'categories': 'general',
|
|
|
|
'shortcut': 'do',
|
|
|
|
'timeout': 3.0,
|
2020-12-16 13:41:32 +01:00
|
|
|
'engine_type': 'offline',
|
2020-09-22 16:55:59 +02:00
|
|
|
'tokens': ['my-token'],
|
|
|
|
},
|
|
|
|
]
|
|
|
|
SEARCHQUERY = [EngineRef(PRIVATE_ENGINE_NAME, 'general')]
|
|
|
|
|
|
|
|
|
|
|
|
class ValidateQueryCase(SearxTestCase):
|
|
|
|
@classmethod
|
|
|
|
def setUpClass(cls):
|
2020-12-16 13:41:32 +01:00
|
|
|
searx.search.initialize(TEST_ENGINES)
|
2020-09-22 16:55:59 +02:00
|
|
|
|
|
|
|
def test_query_private_engine_without_token(self):
|
|
|
|
preferences = Preferences(['oscar'], ['general'], engines, [])
|
|
|
|
valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences)
|
|
|
|
self.assertEqual(len(valid), 0)
|
|
|
|
self.assertEqual(len(unknown), 0)
|
|
|
|
self.assertEqual(len(invalid_token), 1)
|
|
|
|
|
|
|
|
def test_query_private_engine_with_incorrect_token(self):
|
|
|
|
preferences_with_tokens = Preferences(['oscar'], ['general'], engines, [])
|
|
|
|
preferences_with_tokens.parse_dict({'tokens': 'bad-token'})
|
|
|
|
valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens)
|
|
|
|
self.assertEqual(len(valid), 0)
|
|
|
|
self.assertEqual(len(unknown), 0)
|
|
|
|
self.assertEqual(len(invalid_token), 1)
|
|
|
|
|
|
|
|
def test_query_private_engine_with_correct_token(self):
|
|
|
|
preferences_with_tokens = Preferences(['oscar'], ['general'], engines, [])
|
|
|
|
preferences_with_tokens.parse_dict({'tokens': 'my-token'})
|
|
|
|
valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens)
|
|
|
|
self.assertEqual(len(valid), 1)
|
|
|
|
self.assertEqual(len(unknown), 0)
|
|
|
|
self.assertEqual(len(invalid_token), 0)
|