| 
									
										
										
										
											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): | 
					
						
							|  |  |  |     return {'search': Mock(query=query, | 
					
						
							|  |  |  |                            result_container=Mock(answers=set()), | 
					
						
							|  |  |  |                            **kwargs)} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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()) | 
					
						
							|  |  |  |         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() | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							| 
									
										
										
										
											2015-03-14 22:35:29 +01:00
										 |  |  |         request = Mock(user_plugins=store.plugins, | 
					
						
							|  |  |  |                        remote_addr='127.0.0.1') | 
					
						
							|  |  |  |         request.headers.getlist.return_value = [] | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  |         ctx = get_search_mock(query='ip') | 
					
						
							| 
									
										
										
										
											2015-04-07 16:28:29 +02:00
										 |  |  |         store.call('post_search', request, ctx) | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  |         self.assertTrue('127.0.0.1' in ctx['search'].result_container.answers) | 
					
						
							| 
									
										
										
										
											2015-06-13 17:49:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # User agent test | 
					
						
							|  |  |  |         request = Mock(user_plugins=store.plugins, | 
					
						
							|  |  |  |                        user_agent='Mock') | 
					
						
							|  |  |  |         request.headers.getlist.return_value = [] | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         ctx = get_search_mock(query='user-agent') | 
					
						
							| 
									
										
										
										
											2015-06-13 17:49:33 +02:00
										 |  |  |         store.call('post_search', request, ctx) | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  |         self.assertTrue('Mock' in ctx['search'].result_container.answers) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ctx = get_search_mock(query='user-agent') | 
					
						
							| 
									
										
										
										
											2015-06-13 17:49:33 +02:00
										 |  |  |         store.call('post_search', request, ctx) | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  |         self.assertTrue('Mock' in ctx['search'].result_container.answers) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ctx = get_search_mock(query='What is my User-Agent?') | 
					
						
							| 
									
										
										
										
											2015-06-15 10:22:37 +02:00
										 |  |  |         store.call('post_search', request, ctx) | 
					
						
							| 
									
										
										
										
											2015-10-23 23:31:53 +02:00
										 |  |  |         self.assertTrue('Mock' in ctx['search'].result_container.answers) |