summaryrefslogtreecommitdiff
path: root/tests/unit/test_plugin_self_info.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_plugin_self_info.py')
-rw-r--r--tests/unit/test_plugin_self_info.py100
1 files changed, 52 insertions, 48 deletions
diff --git a/tests/unit/test_plugin_self_info.py b/tests/unit/test_plugin_self_info.py
index 1196e908c..701d02c18 100644
--- a/tests/unit/test_plugin_self_info.py
+++ b/tests/unit/test_plugin_self_info.py
@@ -1,65 +1,69 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
-# pylint: disable=missing-module-docstring, invalid-name
+# pylint: disable=missing-module-docstring,disable=missing-class-docstring,invalid-name
-from mock import Mock
from parameterized.parameterized import parameterized
-from searx import (
- plugins,
- limiter,
- botdetection,
-)
+from flask_babel import gettext
+
+import searx.plugins
+import searx.preferences
+import searx.limiter
+import searx.botdetection
+
+from searx.extended_types import sxng_request
+from searx.result_types import Answer
+
from tests import SearxTestCase
-from .test_plugins import get_search_mock
+from .test_plugins import do_post_search
+
+class PluginIPSelfInfo(SearxTestCase):
-class PluginIPSelfInfo(SearxTestCase): # pylint: disable=missing-class-docstring
def setUp(self):
- plugin = plugins.load_and_initialize_plugin('searx.plugins.self_info', False, (None, {}))
- self.store = plugins.PluginStore()
- self.store.register(plugin)
- cfg = limiter.get_cfg()
- botdetection.init(cfg, None)
+ super().setUp()
+
+ self.storage = searx.plugins.PluginStorage()
+ self.storage.register_by_fqn("searx.plugins.self_info.SXNGPlugin")
+ self.storage.init(self.app)
+ self.pref = searx.preferences.Preferences(["simple"], ["general"], {}, self.storage)
+ self.pref.parse_dict({"locale": "en"})
+ cfg = searx.limiter.get_cfg()
+ searx.botdetection.init(cfg, None)
def test_plugin_store_init(self):
- self.assertEqual(1, len(self.store.plugins))
-
- def test_ip_in_answer(self):
- request = Mock()
- request.remote_addr = '127.0.0.1'
- request.headers = {'X-Forwarded-For': '1.2.3.4, 127.0.0.1', 'X-Real-IP': '127.0.0.1'}
- search = get_search_mock(query='ip', pageno=1)
- self.store.call(self.store.plugins, 'post_search', request, search)
- self.assertIn('127.0.0.1', search.result_container.answers["ip"]["answer"])
-
- def test_ip_not_in_answer(self):
- request = Mock()
- request.remote_addr = '127.0.0.1'
- request.headers = {'X-Forwarded-For': '1.2.3.4, 127.0.0.1', 'X-Real-IP': '127.0.0.1'}
- search = get_search_mock(query='ip', pageno=2)
- self.store.call(self.store.plugins, 'post_search', request, search)
- self.assertNotIn('ip', search.result_container.answers)
+ self.assertEqual(1, len(self.storage))
+
+ def test_pageno_1_2(self):
+
+ with self.app.test_request_context():
+ sxng_request.preferences = self.pref
+ sxng_request.remote_addr = "127.0.0.1"
+ sxng_request.headers = {"X-Forwarded-For": "1.2.3.4, 127.0.0.1", "X-Real-IP": "127.0.0.1"} # type: ignore
+ answer = Answer(results=[], answer=gettext("Your IP is: ") + "127.0.0.1")
+
+ search = do_post_search("ip", self.storage, pageno=1)
+ self.assertIn(answer, search.result_container.answers)
+
+ search = do_post_search("ip", self.storage, pageno=2)
+ self.assertEqual(list(search.result_container.answers), [])
@parameterized.expand(
[
- 'user-agent',
- 'What is my User-Agent?',
+ "user-agent",
+ "USER-AgenT lorem ipsum",
]
)
def test_user_agent_in_answer(self, query: str):
- request = Mock(user_agent=Mock(string='Mock'))
- search = get_search_mock(query=query, pageno=1)
- self.store.call(self.store.plugins, 'post_search', request, search)
- self.assertIn('Mock', search.result_container.answers["user-agent"]["answer"])
- @parameterized.expand(
- [
- 'user-agent',
- 'What is my User-Agent?',
- ]
- )
- def test_user_agent_not_in_answer(self, query: str):
- request = Mock(user_agent=Mock(string='Mock'))
- search = get_search_mock(query=query, pageno=2)
- self.store.call(self.store.plugins, 'post_search', request, search)
- self.assertNotIn('user-agent', search.result_container.answers)
+ query = "user-agent"
+
+ with self.app.test_request_context():
+ sxng_request.preferences = self.pref
+ sxng_request.user_agent = "Dummy agent" # type: ignore
+ answer = Answer(results=[], answer=gettext("Your user-agent is: ") + "Dummy agent")
+
+ search = do_post_search(query, self.storage, pageno=1)
+ self.assertIn(answer, search.result_container.answers)
+
+ search = do_post_search(query, self.storage, pageno=2)
+ self.assertEqual(list(search.result_container.answers), [])