1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/searx_ynh.git synced 2024-09-03 20:16:30 +02:00
searx_ynh/sources/tests/engines/test_flickr_noapi.py
2015-02-16 19:07:27 +01:00

442 lines
16 KiB
Python

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)