@@ -0,0 +1,442 @@
1+from collections import defaultdict
3+from searx.engines import flickr_noapi
4+from searx.testing import SearxTestCase
7+class TestFlickrNoapiEngine(SearxTestCase):
9+ def test_build_flickr_url(self):
10+ url = flickr_noapi.build_flickr_url("uid", "pid")
11+ self.assertIn("uid", url)
12+ self.assertIn("pid", url)
14+ def test_request(self):
16+ dicto = defaultdict(dict)
18+ params = flickr_noapi.request(query, dicto)
19+ self.assertIn('url', params)
20+ self.assertIn(query, params['url'])
21+ self.assertIn('flickr.com', params['url'])
23+ def test_response(self):
24+ self.assertRaises(AttributeError, flickr_noapi.response, None)
25+ self.assertRaises(AttributeError, flickr_noapi.response, [])
26+ self.assertRaises(AttributeError, flickr_noapi.response, '')
27+ self.assertRaises(AttributeError, flickr_noapi.response, '[]')
29+ response = mock.Mock(text='"search-photos-models","photos":{},"totalItems":')
30+ self.assertEqual(flickr_noapi.response(response), [])
32+ response = mock.Mock(text='search-photos-models","photos":{"data": []},"totalItems":')
33+ self.assertEqual(flickr_noapi.response(response), [])
36+ "search-photos-models","photos":
40+ "_flickrModelRegistry": "photo-models",
41+ "title": "This is the title",
44+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_c.jpg",
47+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_c.jpg",
51+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_761d32237a_h.jpg",
54+ "url": "//c4.staticflickr.com/8/7246/14001294434_761d32237a_h.jpg",
58+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_f145a2c11a_k.jpg",
61+ "url": "//c4.staticflickr.com/8/7246/14001294434_f145a2c11a_k.jpg",
65+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_b.jpg",
68+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_b.jpg",
72+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777.jpg",
75+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777.jpg",
79+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_n.jpg",
82+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_n.jpg",
86+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_q.jpg",
89+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_q.jpg",
93+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_m.jpg",
96+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_m.jpg",
100+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_s.jpg",
103+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_s.jpg",
107+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_t.jpg",
110+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_t.jpg",
114+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_z.jpg",
117+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_z.jpg",
121+ "canComment": false,
124+ "_flickrModelRegistry": "person-models",
125+ "pathAlias": "klink692",
126+ "username": "Owner",
132+ "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00"
135+ "id": "59729010@N00"
138+ "_flickrModelRegistry": "photo-engagement-models",
139+ "ownerNsid": "59729010@N00",
145+ "description": "Description",
147+ "secret": "410f653777",
148+ "canAddMeta": false,
156+ "fetchedStart": true,
157+ "fetchedEnd": false,
158+ "totalItems": "4386039"
161+ json = json.replace('\r\n', '').replace('\n', '').replace('\r', '')
162+ response = mock.Mock(text=json)
163+ results = flickr_noapi.response(response)
164+ self.assertEqual(type(results), list)
165+ self.assertEqual(len(results), 1)
166+ self.assertEqual(results[0]['title'], 'This is the title')
167+ self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434')
168+ self.assertIn('k.jpg', results[0]['img_src'])
169+ self.assertIn('n.jpg', results[0]['thumbnail_src'])
170+ self.assertIn('Owner', results[0]['content'])
171+ self.assertIn('Description', results[0]['content'])
174+ "search-photos-models","photos":
178+ "_flickrModelRegistry": "photo-models",
179+ "title": "This is the title",
182+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_z.jpg",
185+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_z.jpg",
189+ "canComment": false,
192+ "_flickrModelRegistry": "person-models",
193+ "pathAlias": "klink692",
194+ "username": "Owner",
200+ "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00"
203+ "id": "59729010@N00"
206+ "_flickrModelRegistry": "photo-engagement-models",
207+ "ownerNsid": "59729010@N00",
213+ "description": "Description",
215+ "secret": "410f653777",
216+ "canAddMeta": false,
224+ "fetchedStart": true,
225+ "fetchedEnd": false,
226+ "totalItems": "4386039"
229+ response = mock.Mock(text=json)
230+ results = flickr_noapi.response(response)
231+ self.assertEqual(type(results), list)
232+ self.assertEqual(len(results), 1)
233+ self.assertEqual(results[0]['title'], 'This is the title')
234+ self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434')
235+ self.assertIn('z.jpg', results[0]['img_src'])
236+ self.assertIn('z.jpg', results[0]['thumbnail_src'])
237+ self.assertIn('Owner', results[0]['content'])
238+ self.assertIn('Description', results[0]['content'])
241+ "search-photos-models","photos":
245+ "_flickrModelRegistry": "photo-models",
246+ "title": "This is the title",
249+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_o.jpg",
252+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_o.jpg",
256+ "canComment": false,
259+ "_flickrModelRegistry": "person-models",
260+ "pathAlias": "klink692",
261+ "username": "Owner",
267+ "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00"
270+ "id": "59729010@N00"
273+ "_flickrModelRegistry": "photo-engagement-models",
274+ "ownerNsid": "59729010@N00",
281+ "secret": "410f653777",
282+ "canAddMeta": false,
290+ "fetchedStart": true,
291+ "fetchedEnd": false,
292+ "totalItems": "4386039"
295+ response = mock.Mock(text=json)
296+ results = flickr_noapi.response(response)
297+ self.assertEqual(type(results), list)
298+ self.assertEqual(len(results), 1)
299+ self.assertEqual(results[0]['title'], 'This is the title')
300+ self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434')
301+ self.assertIn('o.jpg', results[0]['img_src'])
302+ self.assertIn('o.jpg', results[0]['thumbnail_src'])
303+ self.assertIn('Owner', results[0]['content'])
306+ "search-photos-models","photos":
310+ "_flickrModelRegistry": "photo-models",
311+ "title": "This is the title",
314+ "canComment": false,
317+ "_flickrModelRegistry": "person-models",
318+ "pathAlias": "klink692",
319+ "username": "Owner",
325+ "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00"
328+ "id": "59729010@N00"
331+ "_flickrModelRegistry": "photo-engagement-models",
332+ "ownerNsid": "59729010@N00",
338+ "description": "Description",
340+ "secret": "410f653777",
341+ "canAddMeta": false,
349+ "fetchedStart": true,
350+ "fetchedEnd": false,
351+ "totalItems": "4386039"
354+ response = mock.Mock(text=json)
355+ results = flickr_noapi.response(response)
356+ self.assertEqual(type(results), list)
357+ self.assertEqual(len(results), 0)
360+ "search-photos-models","photos":
363+ "fetchedStart": true,
364+ "fetchedEnd": false,
365+ "totalItems": "4386039"
368+ response = mock.Mock(text=json)
369+ results = flickr_noapi.response(response)
370+ self.assertEqual(type(results), list)
371+ self.assertEqual(len(results), 0)
374+ "search-photos-models","photos":
378+ "_flickrModelRegistry": "photo-models",
379+ "title": "This is the title",
382+ "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_o.jpg",
385+ "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_o.jpg",
389+ "canComment": false,
392+ "_flickrModelRegistry": "person-models",
393+ "pathAlias": "klink692",
394+ "username": "Owner",
400+ "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00"
405+ "_flickrModelRegistry": "photo-engagement-models",
406+ "ownerNsid": "59729010@N00",
412+ "description": "Description",
414+ "secret": "410f653777",
415+ "canAddMeta": false,
423+ "fetchedStart": true,
424+ "fetchedEnd": false,
425+ "totalItems": "4386039"
428+ response = mock.Mock(text=json)
429+ results = flickr_noapi.response(response)
430+ self.assertEqual(type(results), list)
431+ self.assertEqual(len(results), 0)
435+ {"id":200,"name":"Artist Name",
436+ "link":"http:\/\/www.flickr.com\/artist\/1217","type":"artist"}
439+ response = mock.Mock(text=json)
440+ results = flickr_noapi.response(response)
441+ self.assertEqual(type(results), list)
442+ self.assertEqual(len(results), 0)