Flickr Noapi unit test
This commit is contained in:
		
							parent
							
								
									8cf2ee5721
								
							
						
					
					
						commit
						c6535dd65e
					
				| @ -17,7 +17,7 @@ import re | ||||
| categories = ['images'] | ||||
| 
 | ||||
| url = 'https://secure.flickr.com/' | ||||
| search_url = url+'search/?{query}&page={page}' | ||||
| search_url = url + 'search/?{query}&page={page}' | ||||
| photo_url = 'https://www.flickr.com/photos/{userid}/{photoid}' | ||||
| regex = re.compile(r"\"search-photos-models\",\"photos\":(.*}),\"totalItems\":", re.DOTALL) | ||||
| image_sizes = ('o', 'k', 'h', 'b', 'c', 'z', 'n', 'm', 't', 'q', 's') | ||||
|  | ||||
							
								
								
									
										442
									
								
								searx/tests/engines/test_flickr_noapi.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										442
									
								
								searx/tests/engines/test_flickr_noapi.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,442 @@ | ||||
| from collections import defaultdict | ||||
| import mock | ||||
| from searx.engines import flickr_noapi | ||||
| from searx.testing import SearxTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestFlickrNoapiEngine(SearxTestCase): | ||||
| 
 | ||||
|     def test_build_flickr_url(self): | ||||
|         url = flickr_noapi.build_flickr_url("uid", "pid") | ||||
|         self.assertIn("uid", url) | ||||
|         self.assertIn("pid", url) | ||||
| 
 | ||||
|     def test_request(self): | ||||
|         query = 'test_query' | ||||
|         dicto = defaultdict(dict) | ||||
|         dicto['pageno'] = 1 | ||||
|         params = flickr_noapi.request(query, dicto) | ||||
|         self.assertIn('url', params) | ||||
|         self.assertIn(query, params['url']) | ||||
|         self.assertIn('flickr.com', params['url']) | ||||
| 
 | ||||
|     def test_response(self): | ||||
|         self.assertRaises(AttributeError, flickr_noapi.response, None) | ||||
|         self.assertRaises(AttributeError, flickr_noapi.response, []) | ||||
|         self.assertRaises(AttributeError, flickr_noapi.response, '') | ||||
|         self.assertRaises(AttributeError, flickr_noapi.response, '[]') | ||||
| 
 | ||||
|         response = mock.Mock(text='"search-photos-models","photos":{},"totalItems":') | ||||
|         self.assertEqual(flickr_noapi.response(response), []) | ||||
| 
 | ||||
|         response = mock.Mock(text='search-photos-models","photos":{"data": []},"totalItems":') | ||||
|         self.assertEqual(flickr_noapi.response(response), []) | ||||
| 
 | ||||
|         json = """ | ||||
|         "search-photos-models","photos": | ||||
|         { | ||||
|           "_data": [ | ||||
|             { | ||||
|               "_flickrModelRegistry": "photo-models", | ||||
|               "title": "This is the title", | ||||
|               "sizes": { | ||||
|                 "c": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_c.jpg", | ||||
|                   "width": 541, | ||||
|                   "height": 800, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_c.jpg", | ||||
|                   "key": "c" | ||||
|                 }, | ||||
|                 "h": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_761d32237a_h.jpg", | ||||
|                   "width": 1081, | ||||
|                   "height": 1600, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_761d32237a_h.jpg", | ||||
|                   "key": "h" | ||||
|                 }, | ||||
|                 "k": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_f145a2c11a_k.jpg", | ||||
|                   "width": 1383, | ||||
|                   "height": 2048, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_f145a2c11a_k.jpg", | ||||
|                   "key": "k" | ||||
|                 }, | ||||
|                 "l": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_b.jpg", | ||||
|                   "width": 692, | ||||
|                   "height": 1024, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_b.jpg", | ||||
|                   "key": "l" | ||||
|                 }, | ||||
|                 "m": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777.jpg", | ||||
|                   "width": 338, | ||||
|                   "height": 500, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777.jpg", | ||||
|                   "key": "m" | ||||
|                 }, | ||||
|                 "n": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_n.jpg", | ||||
|                   "width": 216, | ||||
|                   "height": 320, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_n.jpg", | ||||
|                   "key": "n" | ||||
|                 }, | ||||
|                 "q": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_q.jpg", | ||||
|                   "width": 150, | ||||
|                   "height": 150, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_q.jpg", | ||||
|                   "key": "q" | ||||
|                 }, | ||||
|                 "s": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_m.jpg", | ||||
|                   "width": 162, | ||||
|                   "height": 240, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_m.jpg", | ||||
|                   "key": "s" | ||||
|                 }, | ||||
|                 "sq": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_s.jpg", | ||||
|                   "width": 75, | ||||
|                   "height": 75, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_s.jpg", | ||||
|                   "key": "sq" | ||||
|                 }, | ||||
|                 "t": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_t.jpg", | ||||
|                   "width": 68, | ||||
|                   "height": 100, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_t.jpg", | ||||
|                   "key": "t" | ||||
|                 }, | ||||
|                 "z": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_z.jpg", | ||||
|                   "width": 433, | ||||
|                   "height": 640, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_z.jpg", | ||||
|                   "key": "z" | ||||
|                 } | ||||
|               }, | ||||
|               "canComment": false, | ||||
|               "rotation": 0, | ||||
|               "owner": { | ||||
|                 "_flickrModelRegistry": "person-models", | ||||
|                 "pathAlias": "klink692", | ||||
|                 "username": "Owner", | ||||
|                 "buddyicon": { | ||||
|                   "retina": null, | ||||
|                   "large": null, | ||||
|                   "medium": null, | ||||
|                   "small": null, | ||||
|                   "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00" | ||||
|                 }, | ||||
|                 "isPro": true, | ||||
|                 "id": "59729010@N00" | ||||
|               }, | ||||
|               "engagement": { | ||||
|                 "_flickrModelRegistry": "photo-engagement-models", | ||||
|                 "ownerNsid": "59729010@N00", | ||||
|                 "faveCount": 21, | ||||
|                 "commentCount": 14, | ||||
|                 "viewCount": 10160, | ||||
|                 "id": "14001294434" | ||||
|               }, | ||||
|               "description": "Description", | ||||
|               "isHD": false, | ||||
|               "secret": "410f653777", | ||||
|               "canAddMeta": false, | ||||
|               "license": 0, | ||||
|               "oWidth": 1803, | ||||
|               "oHeight": 2669, | ||||
|               "safetyLevel": 0, | ||||
|               "id": "14001294434" | ||||
|             } | ||||
|           ], | ||||
|           "fetchedStart": true, | ||||
|           "fetchedEnd": false, | ||||
|           "totalItems": "4386039" | ||||
|         },"totalItems": | ||||
|         """ | ||||
|         json = json.replace('\r\n', '').replace('\n', '').replace('\r', '') | ||||
|         response = mock.Mock(text=json) | ||||
|         results = flickr_noapi.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 1) | ||||
|         self.assertEqual(results[0]['title'], 'This is the title') | ||||
|         self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434') | ||||
|         self.assertIn('k.jpg', results[0]['img_src']) | ||||
|         self.assertIn('n.jpg', results[0]['thumbnail_src']) | ||||
|         self.assertIn('Owner', results[0]['content']) | ||||
|         self.assertIn('Description', results[0]['content']) | ||||
| 
 | ||||
|         json = """ | ||||
|         "search-photos-models","photos": | ||||
|         { | ||||
|           "_data": [ | ||||
|             { | ||||
|               "_flickrModelRegistry": "photo-models", | ||||
|               "title": "This is the title", | ||||
|               "sizes": { | ||||
|                 "z": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_z.jpg", | ||||
|                   "width": 433, | ||||
|                   "height": 640, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_z.jpg", | ||||
|                   "key": "z" | ||||
|                 } | ||||
|               }, | ||||
|               "canComment": false, | ||||
|               "rotation": 0, | ||||
|               "owner": { | ||||
|                 "_flickrModelRegistry": "person-models", | ||||
|                 "pathAlias": "klink692", | ||||
|                 "username": "Owner", | ||||
|                 "buddyicon": { | ||||
|                   "retina": null, | ||||
|                   "large": null, | ||||
|                   "medium": null, | ||||
|                   "small": null, | ||||
|                   "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00" | ||||
|                 }, | ||||
|                 "isPro": true, | ||||
|                 "id": "59729010@N00" | ||||
|               }, | ||||
|               "engagement": { | ||||
|                 "_flickrModelRegistry": "photo-engagement-models", | ||||
|                 "ownerNsid": "59729010@N00", | ||||
|                 "faveCount": 21, | ||||
|                 "commentCount": 14, | ||||
|                 "viewCount": 10160, | ||||
|                 "id": "14001294434" | ||||
|               }, | ||||
|               "description": "Description", | ||||
|               "isHD": false, | ||||
|               "secret": "410f653777", | ||||
|               "canAddMeta": false, | ||||
|               "license": 0, | ||||
|               "oWidth": 1803, | ||||
|               "oHeight": 2669, | ||||
|               "safetyLevel": 0, | ||||
|               "id": "14001294434" | ||||
|             } | ||||
|           ], | ||||
|           "fetchedStart": true, | ||||
|           "fetchedEnd": false, | ||||
|           "totalItems": "4386039" | ||||
|         },"totalItems": | ||||
|         """ | ||||
|         response = mock.Mock(text=json) | ||||
|         results = flickr_noapi.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 1) | ||||
|         self.assertEqual(results[0]['title'], 'This is the title') | ||||
|         self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434') | ||||
|         self.assertIn('z.jpg', results[0]['img_src']) | ||||
|         self.assertIn('z.jpg', results[0]['thumbnail_src']) | ||||
|         self.assertIn('Owner', results[0]['content']) | ||||
|         self.assertIn('Description', results[0]['content']) | ||||
| 
 | ||||
|         json = """ | ||||
|         "search-photos-models","photos": | ||||
|         { | ||||
|           "_data": [ | ||||
|             { | ||||
|               "_flickrModelRegistry": "photo-models", | ||||
|               "title": "This is the title", | ||||
|               "sizes": { | ||||
|                 "o": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_o.jpg", | ||||
|                   "width": 433, | ||||
|                   "height": 640, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_o.jpg", | ||||
|                   "key": "o" | ||||
|                 } | ||||
|               }, | ||||
|               "canComment": false, | ||||
|               "rotation": 0, | ||||
|               "owner": { | ||||
|                 "_flickrModelRegistry": "person-models", | ||||
|                 "pathAlias": "klink692", | ||||
|                 "username": "Owner", | ||||
|                 "buddyicon": { | ||||
|                   "retina": null, | ||||
|                   "large": null, | ||||
|                   "medium": null, | ||||
|                   "small": null, | ||||
|                   "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00" | ||||
|                 }, | ||||
|                 "isPro": true, | ||||
|                 "id": "59729010@N00" | ||||
|               }, | ||||
|               "engagement": { | ||||
|                 "_flickrModelRegistry": "photo-engagement-models", | ||||
|                 "ownerNsid": "59729010@N00", | ||||
|                 "faveCount": 21, | ||||
|                 "commentCount": 14, | ||||
|                 "viewCount": 10160, | ||||
|                 "id": "14001294434" | ||||
|               }, | ||||
|               "isHD": false, | ||||
|               "secret": "410f653777", | ||||
|               "canAddMeta": false, | ||||
|               "license": 0, | ||||
|               "oWidth": 1803, | ||||
|               "oHeight": 2669, | ||||
|               "safetyLevel": 0, | ||||
|               "id": "14001294434" | ||||
|             } | ||||
|           ], | ||||
|           "fetchedStart": true, | ||||
|           "fetchedEnd": false, | ||||
|           "totalItems": "4386039" | ||||
|         },"totalItems": | ||||
|         """ | ||||
|         response = mock.Mock(text=json) | ||||
|         results = flickr_noapi.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 1) | ||||
|         self.assertEqual(results[0]['title'], 'This is the title') | ||||
|         self.assertEqual(results[0]['url'], 'https://www.flickr.com/photos/59729010@N00/14001294434') | ||||
|         self.assertIn('o.jpg', results[0]['img_src']) | ||||
|         self.assertIn('o.jpg', results[0]['thumbnail_src']) | ||||
|         self.assertIn('Owner', results[0]['content']) | ||||
| 
 | ||||
|         json = """ | ||||
|         "search-photos-models","photos": | ||||
|         { | ||||
|           "_data": [ | ||||
|             { | ||||
|               "_flickrModelRegistry": "photo-models", | ||||
|               "title": "This is the title", | ||||
|               "sizes": { | ||||
|               }, | ||||
|               "canComment": false, | ||||
|               "rotation": 0, | ||||
|               "owner": { | ||||
|                 "_flickrModelRegistry": "person-models", | ||||
|                 "pathAlias": "klink692", | ||||
|                 "username": "Owner", | ||||
|                 "buddyicon": { | ||||
|                   "retina": null, | ||||
|                   "large": null, | ||||
|                   "medium": null, | ||||
|                   "small": null, | ||||
|                   "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00" | ||||
|                 }, | ||||
|                 "isPro": true, | ||||
|                 "id": "59729010@N00" | ||||
|               }, | ||||
|               "engagement": { | ||||
|                 "_flickrModelRegistry": "photo-engagement-models", | ||||
|                 "ownerNsid": "59729010@N00", | ||||
|                 "faveCount": 21, | ||||
|                 "commentCount": 14, | ||||
|                 "viewCount": 10160, | ||||
|                 "id": "14001294434" | ||||
|               }, | ||||
|               "description": "Description", | ||||
|               "isHD": false, | ||||
|               "secret": "410f653777", | ||||
|               "canAddMeta": false, | ||||
|               "license": 0, | ||||
|               "oWidth": 1803, | ||||
|               "oHeight": 2669, | ||||
|               "safetyLevel": 0, | ||||
|               "id": "14001294434" | ||||
|             } | ||||
|           ], | ||||
|           "fetchedStart": true, | ||||
|           "fetchedEnd": false, | ||||
|           "totalItems": "4386039" | ||||
|         },"totalItems": | ||||
|         """ | ||||
|         response = mock.Mock(text=json) | ||||
|         results = flickr_noapi.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 0) | ||||
| 
 | ||||
|         json = """ | ||||
|         "search-photos-models","photos": | ||||
|         { | ||||
|           "_data": [null], | ||||
|           "fetchedStart": true, | ||||
|           "fetchedEnd": false, | ||||
|           "totalItems": "4386039" | ||||
|         },"totalItems": | ||||
|         """ | ||||
|         response = mock.Mock(text=json) | ||||
|         results = flickr_noapi.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 0) | ||||
| 
 | ||||
|         json = """ | ||||
|         "search-photos-models","photos": | ||||
|         { | ||||
|           "_data": [ | ||||
|             { | ||||
|               "_flickrModelRegistry": "photo-models", | ||||
|               "title": "This is the title", | ||||
|               "sizes": { | ||||
|                 "o": { | ||||
|                   "displayUrl": "//farm8.staticflickr.com/7246/14001294434_410f653777_o.jpg", | ||||
|                   "width": 433, | ||||
|                   "height": 640, | ||||
|                   "url": "//c4.staticflickr.com/8/7246/14001294434_410f653777_o.jpg", | ||||
|                   "key": "o" | ||||
|                 } | ||||
|               }, | ||||
|               "canComment": false, | ||||
|               "rotation": 0, | ||||
|               "owner": { | ||||
|                 "_flickrModelRegistry": "person-models", | ||||
|                 "pathAlias": "klink692", | ||||
|                 "username": "Owner", | ||||
|                 "buddyicon": { | ||||
|                   "retina": null, | ||||
|                   "large": null, | ||||
|                   "medium": null, | ||||
|                   "small": null, | ||||
|                   "default": "//c1.staticflickr.com/9/8108/buddyicons/59729010@N00.jpg?1361642376#59729010@N00" | ||||
|                 }, | ||||
|                 "isPro": true | ||||
|               }, | ||||
|               "engagement": { | ||||
|                 "_flickrModelRegistry": "photo-engagement-models", | ||||
|                 "ownerNsid": "59729010@N00", | ||||
|                 "faveCount": 21, | ||||
|                 "commentCount": 14, | ||||
|                 "viewCount": 10160, | ||||
|                 "id": "14001294434" | ||||
|               }, | ||||
|               "description": "Description", | ||||
|               "isHD": false, | ||||
|               "secret": "410f653777", | ||||
|               "canAddMeta": false, | ||||
|               "license": 0, | ||||
|               "oWidth": 1803, | ||||
|               "oHeight": 2669, | ||||
|               "safetyLevel": 0, | ||||
|               "id": "14001294434" | ||||
|             } | ||||
|           ], | ||||
|           "fetchedStart": true, | ||||
|           "fetchedEnd": false, | ||||
|           "totalItems": "4386039" | ||||
|         },"totalItems": | ||||
|         """ | ||||
|         response = mock.Mock(text=json) | ||||
|         results = flickr_noapi.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 0) | ||||
| 
 | ||||
|         json = """ | ||||
|         {"toto":[ | ||||
|             {"id":200,"name":"Artist Name", | ||||
|             "link":"http:\/\/www.flickr.com\/artist\/1217","type":"artist"} | ||||
|         ]} | ||||
|         """ | ||||
|         response = mock.Mock(text=json) | ||||
|         results = flickr_noapi.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 0) | ||||
| @ -8,6 +8,7 @@ from searx.tests.engines.test_deviantart import *  # noqa | ||||
| from searx.tests.engines.test_digg import *  # noqa | ||||
| from searx.tests.engines.test_dummy import *  # noqa | ||||
| from searx.tests.engines.test_flickr import *  # noqa | ||||
| from searx.tests.engines.test_flickr_noapi import *  # noqa | ||||
| from searx.tests.engines.test_github import *  # noqa | ||||
| from searx.tests.engines.test_google_images import *  # noqa | ||||
| from searx.tests.engines.test_google_news import *  # noqa | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user