| 
									
										
										
										
											2017-07-20 22:47:20 +02:00
										 |  |  | from searx.query import RawTextQuery | 
					
						
							|  |  |  | from searx.testing import SearxTestCase | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestQuery(SearxTestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_simple_query(self): | 
					
						
							|  |  |  |         query_text = 'the query' | 
					
						
							|  |  |  |         query = RawTextQuery(query_text, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), query_text) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 1) | 
					
						
							|  |  |  |         self.assertEqual(len(query.languages), 0) | 
					
						
							| 
									
										
										
										
											2017-07-20 22:47:20 +02:00
										 |  |  |         self.assertFalse(query.specific) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_language_code(self): | 
					
						
							|  |  |  |         language = 'es-ES' | 
					
						
							|  |  |  |         query_text = 'the query' | 
					
						
							|  |  |  |         full_query = ':' + language + ' ' + query_text | 
					
						
							|  |  |  |         query = RawTextQuery(full_query, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), full_query) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 3) | 
					
						
							|  |  |  |         self.assertEqual(len(query.languages), 1) | 
					
						
							| 
									
										
										
										
											2017-07-20 22:47:20 +02:00
										 |  |  |         self.assertIn(language, query.languages) | 
					
						
							|  |  |  |         self.assertFalse(query.specific) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_language_name(self): | 
					
						
							|  |  |  |         language = 'english' | 
					
						
							|  |  |  |         query_text = 'the query' | 
					
						
							|  |  |  |         full_query = ':' + language + ' ' + query_text | 
					
						
							|  |  |  |         query = RawTextQuery(full_query, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), full_query) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 3) | 
					
						
							| 
									
										
										
										
											2017-07-20 22:47:20 +02:00
										 |  |  |         self.assertIn('en', query.languages) | 
					
						
							|  |  |  |         self.assertFalse(query.specific) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_unlisted_language_code(self): | 
					
						
							|  |  |  |         language = 'all' | 
					
						
							|  |  |  |         query_text = 'the query' | 
					
						
							|  |  |  |         full_query = ':' + language + ' ' + query_text | 
					
						
							|  |  |  |         query = RawTextQuery(full_query, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), full_query) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 3) | 
					
						
							| 
									
										
										
										
											2017-07-20 22:47:20 +02:00
										 |  |  |         self.assertIn('all', query.languages) | 
					
						
							|  |  |  |         self.assertFalse(query.specific) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_invalid_language_code(self): | 
					
						
							|  |  |  |         language = 'not_a_language' | 
					
						
							|  |  |  |         query_text = 'the query' | 
					
						
							|  |  |  |         full_query = ':' + language + ' ' + query_text | 
					
						
							|  |  |  |         query = RawTextQuery(full_query, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), full_query) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 1) | 
					
						
							|  |  |  |         self.assertEqual(len(query.languages), 0) | 
					
						
							| 
									
										
										
										
											2017-07-20 22:47:20 +02:00
										 |  |  |         self.assertFalse(query.specific) | 
					
						
							| 
									
										
										
										
											2019-08-02 13:50:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_timeout_below100(self): | 
					
						
							|  |  |  |         query_text = '<3 the query' | 
					
						
							|  |  |  |         query = RawTextQuery(query_text, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), query_text) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 3) | 
					
						
							|  |  |  |         self.assertEqual(query.timeout_limit, 3) | 
					
						
							| 
									
										
										
										
											2019-08-02 13:50:51 +02:00
										 |  |  |         self.assertFalse(query.specific) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_timeout_above100(self): | 
					
						
							|  |  |  |         query_text = '<350 the query' | 
					
						
							|  |  |  |         query = RawTextQuery(query_text, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), query_text) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 3) | 
					
						
							|  |  |  |         self.assertEqual(query.timeout_limit, 0.35) | 
					
						
							| 
									
										
										
										
											2019-08-02 13:50:51 +02:00
										 |  |  |         self.assertFalse(query.specific) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_timeout_above1000(self): | 
					
						
							|  |  |  |         query_text = '<3500 the query' | 
					
						
							|  |  |  |         query = RawTextQuery(query_text, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), query_text) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 3) | 
					
						
							|  |  |  |         self.assertEqual(query.timeout_limit, 3.5) | 
					
						
							| 
									
										
										
										
											2019-08-02 13:50:51 +02:00
										 |  |  |         self.assertFalse(query.specific) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_timeout_invalid(self): | 
					
						
							|  |  |  |         # invalid number: it is not bang but it is part of the query | 
					
						
							|  |  |  |         query_text = '<xxx the query' | 
					
						
							|  |  |  |         query = RawTextQuery(query_text, []) | 
					
						
							|  |  |  |         query.parse_query() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-06 17:42:46 +02:00
										 |  |  |         self.assertEqual(query.getFullQuery(), query_text) | 
					
						
							|  |  |  |         self.assertEqual(len(query.query_parts), 1) | 
					
						
							|  |  |  |         self.assertEqual(query.query_parts[0], query_text) | 
					
						
							|  |  |  |         self.assertEqual(query.timeout_limit, None) | 
					
						
							| 
									
										
										
										
											2019-08-02 13:50:51 +02:00
										 |  |  |         self.assertFalse(query.specific) |