@@ -0,0 +1,317 @@
1+from collections import defaultdict
3+from searx.engines import qwant
4+from searx.testing import SearxTestCase
7+class TestQwantEngine(SearxTestCase):
9+ def test_request(self):
11+ dicto = defaultdict(dict)
13+ dicto['language'] = 'fr_FR'
14+ qwant.categories = ['']
15+ params = qwant.request(query, dicto)
16+ self.assertIn('url', params)
17+ self.assertIn(query, params['url'])
18+ self.assertIn('web', params['url'])
19+ self.assertIn('qwant.com', params['url'])
20+ self.assertIn('fr_fr', params['url'])
22+ dicto['language'] = 'all'
23+ qwant.categories = ['news']
24+ params = qwant.request(query, dicto)
25+ self.assertFalse('fr' in params['url'])
26+ self.assertIn('news', params['url'])
28+ def test_response(self):
29+ self.assertRaises(AttributeError, qwant.response, None)
30+ self.assertRaises(AttributeError, qwant.response, [])
31+ self.assertRaises(AttributeError, qwant.response, '')
32+ self.assertRaises(AttributeError, qwant.response, '[]')
34+ response = mock.Mock(text='{}')
35+ self.assertEqual(qwant.response(response), [])
37+ response = mock.Mock(text='{"data": {}}')
38+ self.assertEqual(qwant.response(response), [])
54+ "url": "http://www.url.xyz",
56+ "desc": "Description",
58+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
59+ "favicon": "https://s.qwant.com/fav.ico"
65+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
66+ "created": 1433092754,
67+ "expiration": 259200,
74+ response = mock.Mock(text=json)
75+ qwant.categories = ['general']
76+ results = qwant.response(response)
77+ self.assertEqual(type(results), list)
78+ self.assertEqual(len(results), 1)
79+ self.assertEqual(results[0]['title'], 'Title')
80+ self.assertEqual(results[0]['url'], 'http://www.url.xyz')
81+ self.assertEqual(results[0]['content'], 'Description')
97+ "url": "http://www.url.xyz",
99+ "media": "http://image.jpg",
101+ "thumbnail": "http://thumbnail.jpg",
103+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
104+ "favicon": "https://s.qwant.com/fav.ico"
110+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
111+ "created": 1433092754,
112+ "expiration": 259200,
119+ response = mock.Mock(text=json)
120+ qwant.categories = ['images']
121+ results = qwant.response(response)
122+ self.assertEqual(type(results), list)
123+ self.assertEqual(len(results), 1)
124+ self.assertEqual(results[0]['title'], 'Title')
125+ self.assertEqual(results[0]['url'], 'http://www.url.xyz')
126+ self.assertEqual(results[0]['content'], '')
127+ self.assertEqual(results[0]['thumbnail_src'], 'http://thumbnail.jpg')
128+ self.assertEqual(results[0]['img_src'], 'http://image.jpg')
132+ "status": "success",
144+ "url": "http://www.url.xyz",
146+ "desc": "Description",
148+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
149+ "favicon": "https://s.qwant.com/fav.ico"
155+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
156+ "created": 1433092754,
157+ "expiration": 259200,
164+ response = mock.Mock(text=json)
165+ qwant.categories = ['news']
166+ results = qwant.response(response)
167+ self.assertEqual(type(results), list)
168+ self.assertEqual(len(results), 1)
169+ self.assertEqual(results[0]['title'], 'Title')
170+ self.assertEqual(results[0]['url'], 'http://www.url.xyz')
171+ self.assertEqual(results[0]['content'], 'Description')
172+ self.assertIn('publishedDate', results[0])
176+ "status": "success",
188+ "url": "http://www.url.xyz",
190+ "desc": "Description",
192+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
193+ "favicon": "https://s.qwant.com/fav.ico"
199+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
200+ "created": 1433092754,
201+ "expiration": 259200,
208+ response = mock.Mock(text=json)
209+ qwant.categories = ['social media']
210+ results = qwant.response(response)
211+ self.assertEqual(type(results), list)
212+ self.assertEqual(len(results), 1)
213+ self.assertEqual(results[0]['title'], 'Title')
214+ self.assertEqual(results[0]['url'], 'http://www.url.xyz')
215+ self.assertEqual(results[0]['content'], 'Description')
216+ self.assertIn('publishedDate', results[0])
220+ "status": "success",
232+ "url": "http://www.url.xyz",
234+ "desc": "Description",
236+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
237+ "favicon": "https://s.qwant.com/fav.ico"
243+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
244+ "created": 1433092754,
245+ "expiration": 259200,
252+ response = mock.Mock(text=json)
253+ qwant.categories = ['']
254+ results = qwant.response(response)
255+ self.assertEqual(type(results), list)
256+ self.assertEqual(len(results), 0)
260+ "status": "success",
271+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
272+ "created": 1433092754,
273+ "expiration": 259200,
280+ response = mock.Mock(text=json)
281+ results = qwant.response(response)
282+ self.assertEqual(type(results), list)
283+ self.assertEqual(len(results), 0)
287+ "status": "success",
295+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
296+ "created": 1433092754,
297+ "expiration": 259200,
304+ response = mock.Mock(text=json)
305+ results = qwant.response(response)
306+ self.assertEqual(type(results), list)
307+ self.assertEqual(len(results), 0)
314+ response = mock.Mock(text=json)
315+ results = qwant.response(response)
316+ self.assertEqual(type(results), list)
317+ self.assertEqual(len(results), 0)