示例#1
0
 def test_timeout_query_above_max(self):
     settings['outgoing']['max_request_timeout'] = 10.0
     search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')],
                                'en-US', SAFESEARCH, PAGENO, None, 15.0)
     search = searx.search.Search(search_query)
     search.search()
     self.assertEqual(search.actual_timeout, 10.0)
示例#2
0
 def test_timeout_query_above_max(self):
     searx.search.max_request_timeout = 10.0
     search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}],
                                            ['general'], 'en-US', SAFESEARCH, PAGENO, None, 15.0,
                                            preferences=Preferences(['oscar'], ['general'], engines, []))
     search = searx.search.Search(search_query)
     search.search()
     self.assertEqual(search.actual_timeout, 10.0)
示例#3
0
 def test_timeout_query_below_max(self):
     searx.search.max_request_timeout = 10.0
     search_query = SearchQuery('test',
                                [EngineRef(PUBLIC_ENGINE_NAME, 'general')],
                                'en-US', SAFESEARCH, PAGENO, None, 5.0)
     search = searx.search.Search(search_query)
     search.search()
     self.assertEqual(search.actual_timeout, 5.0)
示例#4
0
 def test_timeout_simple(self):
     searx.search.max_request_timeout = None
     search_query = SearchQuery('test',
                                [EngineRef(PUBLIC_ENGINE_NAME, 'general')],
                                ['general'], 'en-US', SAFESEARCH, PAGENO,
                                None, None)
     search = searx.search.Search(search_query)
     search.search()
     self.assertEqual(search.actual_timeout, 3.0)
示例#5
0
 def test_timeout_query_above_max(self):
     searx.search.max_request_timeout = 10.0
     search_query = searx.query.SearchQuery('test', [{
         'category': 'general',
         'name': 'general dummy'
     }], ['general'], 'en-US', 0, 1, None, 15.0)
     search = searx.search.Search(search_query)
     search.search()
     self.assertEquals(search.actual_timeout, 10.0)
示例#6
0
 def test_timeout_simple(self):
     searx.search.max_request_timeout = None
     search_query = searx.query.SearchQuery('test', [{
         'category': 'general',
         'name': 'general dummy'
     }], ['general'], 'en-US', 0, 1, None, None)
     search = searx.search.Search(search_query)
     search.search()
     self.assertEquals(search.actual_timeout, 3.0)
示例#7
0
 def test_query_private_engine_without_token(self):
     search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}],
                                            ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0,
                                            preferences=Preferences(['oscar'], ['general'], engines, []))
     search = searx.search.Search(search_query)
     results = search.search()
     self.assertEqual(results.results_length(), 0)
示例#8
0
 def test_query_private_engine_with_correct_token(self):
     preferences_with_tokens = Preferences(['oscar'], ['general'], engines, [])
     preferences_with_tokens.parse_dict({'tokens': 'my-token'})
     search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}],
                                            ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0,
                                            preferences=preferences_with_tokens)
     search = searx.search.Search(search_query)
     results = search.search()
     self.assertEqual(results.results_length(), 1)
示例#9
0
    def test_external_bang(self):
        search_query = SearchQuery('yes yes',
                                   [EngineRef(PUBLIC_ENGINE_NAME, 'general')],
                                   'en-US', SAFESEARCH, PAGENO, None, None,
                                   external_bang="yt")
        search = searx.search.Search(search_query)
        results = search.search()
        # For checking if the user redirected with the youtube external bang
        self.assertTrue(results.redirect_url is not None)

        search_query = SearchQuery('youtube never gonna give you up',
                                   [EngineRef(PUBLIC_ENGINE_NAME, 'general')],
                                   'en-US', SAFESEARCH, PAGENO, None, None)

        search = searx.search.Search(search_query)
        results = search.search()
        # This should not redirect
        self.assertTrue(results.redirect_url is None)
示例#10
0
    def test_external_bang(self):
        search_query = searx.query.SearchQuery('yes yes',
                                               [{
                                                   'category': 'general',
                                                   'name': PUBLIC_ENGINE_NAME
                                               }], ['general'],
                                               'en-US',
                                               SAFESEARCH,
                                               PAGENO,
                                               None,
                                               None,
                                               preferences=Preferences(
                                                   ['oscar'],
                                                   ['general'],
                                                   engines,
                                                   [],
                                               ),
                                               external_bang="yt")
        search = searx.search.Search(search_query)
        results = search.search()
        # For checking if the user redirected with the youtube external bang
        self.assertTrue(results.redirect_url is not None)

        search_query = searx.query.SearchQuery(
            'youtube never gonna give you up',
            [{
                'category': 'general',
                'name': PUBLIC_ENGINE_NAME
            }],
            ['general'],
            'en-US',
            SAFESEARCH,
            PAGENO,
            None,
            None,
            preferences=Preferences(['oscar'], ['general'], engines, []),
        )

        search = searx.search.Search(search_query)
        results = search.search()
        # This should not redirect
        self.assertTrue(results.redirect_url is None)
示例#11
0
args = parser.parse_args()

# search results for the query
form = {
    "q":args.query,
    "categories":args.category.decode('utf-8'),
    "pageno":str(args.pageno),
    "language":args.lang,
    "time_range":args.timerange
}
preferences = searx.preferences.Preferences(['oscar'], searx.engines.categories.keys(), searx.engines.engines, [])
preferences.key_value_settings['safesearch'].parse(args.safesearch)

search_query = searx.search.get_search_query_from_webapp(preferences, form)
search = searx.search.Search(search_query)
result_container = search.search()

# output
from datetime import datetime

def no_parsed_url(results):
    for result in results:
        del result['parsed_url']
    return results

def json_serial(obj):
    """JSON serializer for objects not serializable by default json code"""
    if isinstance(obj, datetime):
        serial = obj.isoformat()
        return serial
    raise TypeError ("Type not serializable")
示例#12
0
args = parser.parse_args()

# search results for the query
form = {
    "q":args.query,
    "categories":args.category.decode('utf-8'),
    "pageno":str(args.pageno),
    "language":args.lang,
    "time_range":args.timerange
}
preferences = searx.preferences.Preferences(['oscar'], searx.engines.categories.keys(), searx.engines.engines, [])
preferences.key_value_settings['safesearch'].parse(args.safesearch)

search_query = searx.search.get_search_query_from_webapp(preferences, form)
search = searx.search.Search(search_query)
result_container = search.search()

# output
from datetime import datetime

def no_parsed_url(results):
    for result in results:
        del result['parsed_url']
    return results

def json_serial(obj):
    """JSON serializer for objects not serializable by default json code"""
    if isinstance(obj, datetime):
        serial = obj.isoformat()
        return serial
    raise TypeError ("Type not serializable")