diff options
| author | Adam Tauber <asciimoo@gmail.com> | 2015-03-14 22:35:29 +0100 |
|---|---|---|
| committer | Adam Tauber <asciimoo@gmail.com> | 2015-03-14 22:35:29 +0100 |
| commit | f57149f912eece7dab1069e078f6bfe54ffd46e1 (patch) | |
| tree | bc4790cf078d54c9563ce3f3577dfcc447ae643b /searx/tests | |
| parent | bf5d6f56c66feb3cac760f0f30cf4585a2e6134e (diff) | |
[enh] plugin tests
Diffstat (limited to 'searx/tests')
| -rw-r--r-- | searx/tests/test_plugins.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/searx/tests/test_plugins.py b/searx/tests/test_plugins.py new file mode 100644 index 000000000..19a02c7b1 --- /dev/null +++ b/searx/tests/test_plugins.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- + +from searx.testing import SearxTestCase +from searx import plugins +from mock import Mock + + +class PluginStoreTest(SearxTestCase): + + def test_PluginStore_init(self): + store = plugins.PluginStore() + self.assertTrue(isinstance(store.plugins, list) and len(store.plugins) == 0) + + def test_PluginStore_register(self): + store = plugins.PluginStore() + testplugin = plugins.Plugin() + store.register(testplugin) + + self.assertTrue(len(store.plugins) == 1) + + def test_PluginStore_call(self): + store = plugins.PluginStore() + testplugin = plugins.Plugin() + store.register(testplugin) + setattr(testplugin, 'asdf', Mock()) + request = Mock(user_plugins=[]) + store.call('asdf', request, Mock()) + + self.assertFalse(testplugin.asdf.called) + + request.user_plugins.append(testplugin) + store.call('asdf', request, Mock()) + + self.assertTrue(testplugin.asdf.called) + + +class SelfIPTest(SearxTestCase): + + def test_PluginStore_init(self): + store = plugins.PluginStore() + store.register(plugins.self_ip) + + self.assertTrue(len(store.plugins) == 1) + + request = Mock(user_plugins=store.plugins, + remote_addr='127.0.0.1') + request.headers.getlist.return_value = [] + ctx = {'search': Mock(answers=set(), + query='ip')} + store.call('pre_search', request, ctx) + self.assertTrue('127.0.0.1' in ctx['search'].answers) |