on 3f4cc21 help sign in
searx/tests/unit/test_plugins.py
90 lines 3.2 kB history raw
1# -*- coding: utf-8 -*-
3from searx.testing import SearxTestCase
4from searx import plugins
5from mock import Mock
8def get_search_mock(query, **kwargs):
9 return {'search': Mock(query=query,
10 result_container=Mock(answers=set()),
11 **kwargs)}
14class PluginStoreTest(SearxTestCase):
16 def test_PluginStore_init(self):
17 store = plugins.PluginStore()
18 self.assertTrue(isinstance(store.plugins, list) and len(store.plugins) == 0)
20 def test_PluginStore_register(self):
21 store = plugins.PluginStore()
22 testplugin = plugins.Plugin()
23 store.register(testplugin)
25 self.assertTrue(len(store.plugins) == 1)
27 def test_PluginStore_call(self):
28 store = plugins.PluginStore()
29 testplugin = plugins.Plugin()
30 store.register(testplugin)
31 setattr(testplugin, 'asdf', Mock())
32 request = Mock(user_plugins=[])
33 store.call('asdf', request, Mock())
35 self.assertFalse(testplugin.asdf.called)
37 request.user_plugins.append(testplugin)
38 store.call('asdf', request, Mock())
40 self.assertTrue(testplugin.asdf.called)
43class SelfIPTest(SearxTestCase):
45 def test_PluginStore_init(self):
46 store = plugins.PluginStore()
47 store.register(plugins.self_info)
49 self.assertTrue(len(store.plugins) == 1)
51 # IP test
52 request = Mock(user_plugins=store.plugins,
53 remote_addr='127.0.0.1')
54 request.headers.getlist.return_value = []
55 ctx = get_search_mock(query='ip', pageno=1)
56 store.call('post_search', request, ctx)
57 self.assertTrue('127.0.0.1' in ctx['search'].result_container.answers)
59 ctx = get_search_mock(query='ip', pageno=2)
60 store.call('post_search', request, ctx)
61 self.assertFalse('127.0.0.1' in ctx['search'].result_container.answers)
63 # User agent test
64 request = Mock(user_plugins=store.plugins,
65 user_agent='Mock')
66 request.headers.getlist.return_value = []
68 ctx = get_search_mock(query='user-agent', pageno=1)
69 store.call('post_search', request, ctx)
70 self.assertTrue('Mock' in ctx['search'].result_container.answers)
72 ctx = get_search_mock(query='user-agent', pageno=2)
73 store.call('post_search', request, ctx)
74 self.assertFalse('Mock' in ctx['search'].result_container.answers)
76 ctx = get_search_mock(query='user-agent', pageno=1)
77 store.call('post_search', request, ctx)
78 self.assertTrue('Mock' in ctx['search'].result_container.answers)
80 ctx = get_search_mock(query='user-agent', pageno=2)
81 store.call('post_search', request, ctx)
82 self.assertFalse('Mock' in ctx['search'].result_container.answers)
84 ctx = get_search_mock(query='What is my User-Agent?', pageno=1)
85 store.call('post_search', request, ctx)
86 self.assertTrue('Mock' in ctx['search'].result_container.answers)
88 ctx = get_search_mock(query='What is my User-Agent?', pageno=2)
89 store.call('post_search', request, ctx)
90 self.assertFalse('Mock' in ctx['search'].result_container.answers)