on fce2d49 help sign in
searx/tests/unit/test_query.py
106 lines 3.8 kB history raw
1from searx.query import RawTextQuery
2from searx.testing import SearxTestCase
5class TestQuery(SearxTestCase):
7 def test_simple_query(self):
8 query_text = 'the query'
9 query = RawTextQuery(query_text, [])
10 query.parse_query()
12 self.assertEquals(query.getFullQuery(), query_text)
13 self.assertEquals(len(query.query_parts), 1)
14 self.assertEquals(len(query.languages), 0)
15 self.assertFalse(query.specific)
17 def test_language_code(self):
18 language = 'es-ES'
19 query_text = 'the query'
20 full_query = ':' + language + ' ' + query_text
21 query = RawTextQuery(full_query, [])
22 query.parse_query()
24 self.assertEquals(query.getFullQuery(), full_query)
25 self.assertEquals(len(query.query_parts), 3)
26 self.assertEquals(len(query.languages), 1)
27 self.assertIn(language, query.languages)
28 self.assertFalse(query.specific)
30 def test_language_name(self):
31 language = 'english'
32 query_text = 'the query'
33 full_query = ':' + language + ' ' + query_text
34 query = RawTextQuery(full_query, [])
35 query.parse_query()
37 self.assertEquals(query.getFullQuery(), full_query)
38 self.assertEquals(len(query.query_parts), 3)
39 self.assertIn('en', query.languages)
40 self.assertFalse(query.specific)
42 def test_unlisted_language_code(self):
43 language = 'all'
44 query_text = 'the query'
45 full_query = ':' + language + ' ' + query_text
46 query = RawTextQuery(full_query, [])
47 query.parse_query()
49 self.assertEquals(query.getFullQuery(), full_query)
50 self.assertEquals(len(query.query_parts), 3)
51 self.assertIn('all', query.languages)
52 self.assertFalse(query.specific)
54 def test_invalid_language_code(self):
55 language = 'not_a_language'
56 query_text = 'the query'
57 full_query = ':' + language + ' ' + query_text
58 query = RawTextQuery(full_query, [])
59 query.parse_query()
61 self.assertEquals(query.getFullQuery(), full_query)
62 self.assertEquals(len(query.query_parts), 1)
63 self.assertEquals(len(query.languages), 0)
64 self.assertFalse(query.specific)
66 def test_timeout_below100(self):
67 query_text = '<3 the query'
68 query = RawTextQuery(query_text, [])
69 query.parse_query()
71 self.assertEquals(query.getFullQuery(), query_text)
72 self.assertEquals(len(query.query_parts), 3)
73 self.assertEquals(query.timeout_limit, 3)
74 self.assertFalse(query.specific)
76 def test_timeout_above100(self):
77 query_text = '<350 the query'
78 query = RawTextQuery(query_text, [])
79 query.parse_query()
81 self.assertEquals(query.getFullQuery(), query_text)
82 self.assertEquals(len(query.query_parts), 3)
83 self.assertEquals(query.timeout_limit, 0.35)
84 self.assertFalse(query.specific)
86 def test_timeout_above1000(self):
87 query_text = '<3500 the query'
88 query = RawTextQuery(query_text, [])
89 query.parse_query()
91 self.assertEquals(query.getFullQuery(), query_text)
92 self.assertEquals(len(query.query_parts), 3)
93 self.assertEquals(query.timeout_limit, 3.5)
94 self.assertFalse(query.specific)
96 def test_timeout_invalid(self):
97 # invalid number: it is not bang but it is part of the query
98 query_text = '<xxx the query'
99 query = RawTextQuery(query_text, [])
100 query.parse_query()
102 self.assertEquals(query.getFullQuery(), query_text)
103 self.assertEquals(len(query.query_parts), 1)
104 self.assertEquals(query.query_parts[0], query_text)
105 self.assertEquals(query.timeout_limit, None)
106 self.assertFalse(query.specific)