@@ -1,157 +0,0 @@
1−from collections import defaultdict
3−from searx.engines import swisscows
4−from searx.testing import SearxTestCase
7−class TestSwisscowsEngine(SearxTestCase):
9− def test_request(self):
10− swisscows.supported_languages = ['de-AT', 'de-DE']
11− swisscows.language_aliases = {}
13− dicto = defaultdict(dict)
15− dicto['language'] = 'de-DE'
16− params = swisscows.request(query, dicto)
17− self.assertTrue('url' in params)
18− self.assertTrue(query in params['url'])
19− self.assertTrue('swisscows.ch' in params['url'])
20− self.assertTrue('uiLanguage=de' in params['url'])
21− self.assertTrue('region=de-DE' in params['url'])
23− dicto['language'] = 'all'
24− params = swisscows.request(query, dicto)
25− self.assertTrue('uiLanguage=browser' in params['url'])
26− self.assertTrue('region=browser' in params['url'])
28− dicto['category'] = 'images'
29− params = swisscows.request(query, dicto)
30− self.assertIn('image', params['url'])
32− def test_response(self):
33− self.assertRaises(AttributeError, swisscows.response, None)
34− self.assertRaises(AttributeError, swisscows.response, [])
35− self.assertRaises(AttributeError, swisscows.response, '')
36− self.assertRaises(AttributeError, swisscows.response, '[]')
38− response = mock.Mock(text=b'<html></html>')
39− self.assertEqual(swisscows.response(response), [])
41− response = mock.Mock(text=b'<html></html>')
42− self.assertEqual(swisscows.response(response), [])
46− App.Dispatcher.dispatch("initialize", {
48− initialData: {"Request":
51− "Query":"This should ",
52− "NormalizedQuery":"This should ",
56− {"Title":"\uE000This should\uE001 be the title",
57− "Description":"\uE000This should\uE001 be the content.",
58− "Url":"http://this.should.be.the.link/",
59− "DisplayUrl":"www.\uE000this.should.be.the\uE001.link",
60− "Id":"782ef287-e439-451c-b380-6ebc14ba033d"},
61− {"Title":"Datei:This should1.svg",
62− "Url":"https://i.swisscows.ch/?link=http%3a%2f%2fts2.mm.This/should1.png",
63− "SourceUrl":"http://de.wikipedia.org/wiki/Datei:This should1.svg",
64− "DisplayUrl":"de.wikipedia.org/wiki/Datei:This should1.svg",
68− "ContentType":"image/jpeg",
70− "Url":"https://i.swisscows.ch/?link=http%3a%2f%2fts2.mm.This/should1.png",
71− "ContentType":"image/jpeg",
75− "Id":"6a97a542-8f65-425f-b7f6-1178c3aba7be"
77− ],"TotalCount":55300,
78− "Query":"This should "
80− "Images":[{"Title":"Datei:This should.svg",
81− "Url":"https://i.swisscows.ch/?link=http%3a%2f%2fts2.mm.This/should.png",
82− "SourceUrl":"http://de.wikipedia.org/wiki/Datei:This should.svg",
83− "DisplayUrl":"de.wikipedia.org/wiki/Datei:This should.svg",
87− "ContentType":"image/png",
88− "Thumbnail":{"Url":"https://i.swisscows.ch/?link=http%3a%2f%2fts2.mm.This/should.png",
89− "ContentType":"image/png",
93− "Id":"ae230fd8-a06a-47d6-99d5-e74766d8143a"}]},
94− environment: "production"
95− }).then(function (options) {
96− $('#Search_Form').on('submit', function (e) {
97− if (!Modernizr.history) return;
100− var $form = $(this),
101− $query = $('#Query'),
102− query = $.trim($query.val()),
103− path = App.Router.makePath($form.attr('action'), null, $form.serializeObject())
106− options.html5history ?
107− ReactRouter.HistoryLocation.push(path) :
108− ReactRouter.RefreshLocation.push(path);
110− else $('#Query').trigger('blur');
116− response = mock.Mock(text=html)
117− results = swisscows.response(response)
118− self.assertEqual(type(results), list)
119− self.assertEqual(len(results), 3)
120− self.assertEqual(results[0]['title'], 'This should be the title')
121− self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/')
122− self.assertEqual(results[0]['content'], 'This should be the content.')
123− self.assertEqual(results[1]['title'], 'Datei:This should1.svg')
124− self.assertEqual(results[1]['url'], 'http://de.wikipedia.org/wiki/Datei:This should1.svg')
125− self.assertEqual(results[1]['img_src'], 'http://ts2.mm.This/should1.png')
126− self.assertEqual(results[1]['template'], 'images.html')
127− self.assertEqual(results[2]['title'], 'Datei:This should.svg')
128− self.assertEqual(results[2]['url'], 'http://de.wikipedia.org/wiki/Datei:This should.svg')
129− self.assertEqual(results[2]['img_src'], 'http://ts2.mm.This/should.png')
130− self.assertEqual(results[2]['template'], 'images.html')
132− def test_fetch_supported_languages(self):
133− html = """<html></html>"""
134− response = mock.Mock(text=html)
135− languages = swisscows._fetch_supported_languages(response)
136− self.assertEqual(type(languages), list)
137− self.assertEqual(len(languages), 0)
141− <div id="regions-popup">
144− <li><a data-search-language="browser"></a></li>
145− <li><a data-search-language="de-CH"></a></li>
146− <li><a data-search-language="fr-CH"></a></li>
152− response = mock.Mock(text=html)
153− languages = swisscows._fetch_supported_languages(response)
154− self.assertEqual(type(languages), list)
155− self.assertEqual(len(languages), 3)
156− self.assertIn('de-CH', languages)
157− self.assertIn('fr-CH', languages)