| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from searx.testing import SearxTestCase | 
					
						
							|  |  |  | from searx import plugins | 
					
						
							|  |  |  | from mock import Mock | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  | def get_search_mock(query, **kwargs): | 
					
						
							| 
									
										
										
										
											2016-10-22 14:01:53 +02:00
										 |  |  |     return Mock(search_query=Mock(query=query, **kwargs), | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |                 result_container=Mock(answers=dict())) | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  | 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()) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         request = Mock() | 
					
						
							|  |  |  |         store.call([], 'asdf', request, Mock()) | 
					
						
							| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         self.assertFalse(testplugin.asdf.called) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call([testplugin], 'asdf', request, Mock()) | 
					
						
							| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  |         self.assertTrue(testplugin.asdf.called) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SelfIPTest(SearxTestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_PluginStore_init(self): | 
					
						
							|  |  |  |         store = plugins.PluginStore() | 
					
						
							| 
									
										
										
										
											2015-06-15 13:36:38 +02:00
										 |  |  |         store.register(plugins.self_info) | 
					
						
							| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-15 10:22:37 +02:00
										 |  |  |         self.assertTrue(len(store.plugins) == 1) | 
					
						
							| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 17:49:33 +02:00
										 |  |  |         # IP test | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         request = Mock(remote_addr='127.0.0.1') | 
					
						
							| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  |         request.headers.getlist.return_value = [] | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'ip', pageno=1) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertTrue('127.0.0.1' in search.result_container.answers["ip"]["answer"]) | 
					
						
							| 
									
										
										
										
											2015-06-13 17:49:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'ip', pageno=2) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertFalse('ip' in search.result_container.answers) | 
					
						
							| 
									
										
										
										
											2016-08-27 16:45:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 17:49:33 +02:00
										 |  |  |         # User agent test | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         request = Mock(user_agent='Mock') | 
					
						
							| 
									
										
										
										
											2015-06-13 17:49:33 +02:00
										 |  |  |         request.headers.getlist.return_value = [] | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'user-agent', pageno=1) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertTrue('Mock' in search.result_container.answers["user-agent"]["answer"]) | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'user-agent', pageno=2) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertFalse('user-agent' in search.result_container.answers) | 
					
						
							| 
									
										
										
										
											2016-08-27 16:45:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'user-agent', pageno=1) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertTrue('Mock' in search.result_container.answers["user-agent"]["answer"]) | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'user-agent', pageno=2) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertFalse('user-agent' in search.result_container.answers) | 
					
						
							| 
									
										
										
										
											2016-08-27 16:45:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'What is my User-Agent?', pageno=1) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertTrue('Mock' in search.result_container.answers["user-agent"]["answer"]) | 
					
						
							| 
									
										
										
										
											2016-08-27 16:45:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 18:43:03 +01:00
										 |  |  |         search = get_search_mock(query=b'What is my User-Agent?', pageno=2) | 
					
						
							| 
									
										
										
										
											2017-01-02 12:06:04 +01:00
										 |  |  |         store.call(store.plugins, 'post_search', request, search) | 
					
						
							| 
									
										
										
										
											2020-06-11 10:15:15 +02:00
										 |  |  |         self.assertFalse('user-agent' in search.result_container.answers) |