@@ -0,0 +1,175 @@
1+from collections import defaultdict
3+from searx.engines import scanr_structures
4+from searx.testing import SearxTestCase
7+class TestScanrStructuresEngine(SearxTestCase):
9+ def test_request(self):
11+ dicto = defaultdict(dict)
13+ params = scanr_structures.request(query, dicto)
14+ self.assertIn('url', params)
15+ self.assertIn(query, params['data'])
16+ self.assertIn('scanr.enseignementsup-recherche.gouv.fr', params['url'])
18+ def test_response(self):
19+ self.assertRaises(AttributeError, scanr_structures.response, None)
20+ self.assertRaises(AttributeError, scanr_structures.response, [])
21+ self.assertRaises(AttributeError, scanr_structures.response, '')
22+ self.assertRaises(AttributeError, scanr_structures.response, '[]')
24+ response = mock.Mock(text='{}')
25+ self.assertEqual(scanr_structures.response(response), [])
27+ response = mock.Mock(text='{"data": []}')
28+ self.assertEqual(scanr_structures.response(response), [])
34+ "query":"test_query",
37+ "sortOrder":"RELEVANCY",
38+ "sortDirection":"ASC",
46+ "label":"Laboratoire d'Informatique de Grenoble",
49+ "address":{"city":"Grenoble","departement":"38"},
50+ "logo":"/static/logos/200711886U.png",
52+ "type":{"code":"UR","label":"Unit\xe9 de recherche"},
57+ "label":"Grenoble INP",
63+ "label":"Universit\xe9 de Grenoble Alpes",
69+ "label":"Centre national de la recherche scientifique",
75+ "label":"Institut national de recherche en informatique et en automatique",
83+ "value":"linguicielles d\xe9velopp\xe9s jusqu'ici par le GETALP\
84+ du <strong>LIG</strong> en tant que prototypes op\xe9rationnels.\
85+\\r\\nDans le contexte"
89+ "value":"<strong>LIG</strong>"
92+ "type":"websiteContents",
93+ "value":"S\xe9lection\\nListe structures\\nD\xe9tail\\n\
94+ Accueil\\n200711886U : <strong>LIG</strong>\
95+ Laboratoire d'Informatique de Grenoble Unit\xe9 de recherche"},
97+ "type":"publications",
98+ "value":"de noms. Nous avons d'abord d\xe9velopp\xe9 LOOV \
99+ (pour <strong>Lig</strong> Overlaid OCR in Vid\xe9o), \
100+ un outil d'extraction des"
106+ "label":"Laboratoire Bordelais de Recherche en Informatique",
108+ "publicEntity":true,
109+ "address":{"city":"Talence","departement":"33"},
110+ "logo":"/static/logos/199511665F.png",
112+ "type":{"code":"UR","label":"Unit\xe9 de recherche"},
117+ "label":"Institut polytechnique de Bordeaux",
123+ "label":"Universit\xe9 de Bordeaux",
129+ "label":"Centre national de la recherche scientifique",
135+ "label":"Institut national de recherche en informatique et en automatique",
142+ "type":"websiteContents",
143+ "value":"Samia Kerdjoudj\\n2016-07-05\\nDouble-exponential\
144+ and <strong>triple</strong>-exponential bounds for\
145+ choosability problems parameterized"
148+ "type":"publications",
149+ "value":"de cam\xe9ras install\xe9es dans les lieux publiques \
150+ a <strong>tripl\xe9</strong> en 2009, passant de 20 000 \
151+ \xe0 60 000. Malgr\xe9 le"
158+ response = mock.Mock(text=json)
159+ results = scanr_structures.response(response)
160+ self.assertEqual(type(results), list)
161+ self.assertEqual(len(results), 2)
162+ self.assertEqual(results[0]['title'], u"Laboratoire d'Informatique de Grenoble")
163+ self.assertEqual(results[0]['url'], 'https://scanr.enseignementsup-recherche.gouv.fr/structure/200711886U')
164+ self.assertEqual(results[0]['content'],
165+ u"linguicielles d\xe9velopp\xe9s jusqu'ici par le GETALP "
166+ u"du LIG en tant que prototypes "
167+ u"op\xe9rationnels. Dans le contexte")
168+ self.assertEqual(results[1]['img_src'],
169+ 'https://scanr.enseignementsup-recherche.gouv.fr//static/logos/199511665F.png')
170+ self.assertEqual(results[1]['content'],
171+ "Samia Kerdjoudj 2016-07-05 Double-exponential and"
172+ " triple-exponential bounds for "
173+ "choosability problems parameterized")
174+ self.assertEqual(results[1]['url'], 'https://scanr.enseignementsup-recherche.gouv.fr/structure/199511665F')
175+ self.assertEqual(results[1]['title'], u"Laboratoire Bordelais de Recherche en Informatique")