Add "Auto-detected" as a language.

When the user choose "Auto-detected", the choice remains on the following queries.
The detected language is displayed.

For example "Auto-detected (en)":
* the next query language is going to be auto detected
* for the current query, the detected language is English.

This replace the autodetect_search_language plugin.
This commit is contained in:
Alexandre Flament 2022-12-16 20:28:57 +00:00
parent 54389a29fe
commit 6748e8e2d5
14 changed files with 143 additions and 115 deletions

View file

@ -91,6 +91,17 @@ class TestLanguageParser(SearxTestCase):
self.assertIn('all', query.languages)
self.assertFalse(query.specific)
def test_auto_language_code(self):
language = 'auto'
query_text = 'una consulta'
full_query = ':' + language + ' ' + query_text
query = RawTextQuery(full_query, [])
self.assertEqual(query.getFullQuery(), full_query)
self.assertEqual(len(query.query_parts), 1)
self.assertIn('auto', query.languages)
self.assertFalse(query.specific)
def test_invalid_language_code(self):
language = 'not_a_language'
query_text = 'the query'

View file

@ -1,5 +1,7 @@
# -*- coding: utf-8 -*-
from copy import copy
import searx.search
from searx.search import SearchQuery, EngineRef
from searx import settings
@ -34,6 +36,11 @@ class SearchQueryTestCase(SearxTestCase):
self.assertEqual(s, s)
self.assertNotEqual(s, t)
def test_copy(self):
s = SearchQuery('test', [EngineRef('bing', 'general')], 'all', 0, 1, None, None, None)
t = copy(s)
self.assertEqual(s, t)
class SearchTestCase(SearxTestCase):
@classmethod