66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | # -*- coding: utf-8 -*- | ||
|  | import mock | ||
|  | from searx.testing import SearxTestCase | ||
|  | from searx import webutils | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestWebUtils(SearxTestCase): | ||
|  | 
 | ||
|  |     def test_prettify_url(self): | ||
|  |         data = (('https://searx.me/', 'https://searx.me/'), | ||
|  |                 ('https://searx.me/ű', 'https://searx.me/ű'), | ||
|  |                 ('https://searx.me/' + (100 * 'a'), 'https://searx.me/[...]aaaaaaaaaaaaaaaaa'), | ||
|  |                 ('https://searx.me/' + (100 * 'ű'), 'https://searx.me/[...]űűűűűűűűűűűűűűűűű')) | ||
|  | 
 | ||
|  |         for test_url, expected in data: | ||
|  |             self.assertEqual(webutils.prettify_url(test_url, max_length=32), expected) | ||
|  | 
 | ||
|  |     def test_highlight_content(self): | ||
|  |         self.assertEqual(webutils.highlight_content(0, None), None) | ||
|  |         self.assertEqual(webutils.highlight_content(None, None), None) | ||
|  |         self.assertEqual(webutils.highlight_content('', None), None) | ||
|  |         self.assertEqual(webutils.highlight_content(False, None), None) | ||
|  | 
 | ||
|  |         contents = [ | ||
|  |             '<html></html>' | ||
|  |             'not<' | ||
|  |         ] | ||
|  |         for content in contents: | ||
|  |             self.assertEqual(webutils.highlight_content(content, None), content) | ||
|  | 
 | ||
|  |         content = 'a' | ||
|  |         query = 'test' | ||
|  |         self.assertEqual(webutils.highlight_content(content, query), content) | ||
|  |         query = 'a test' | ||
|  |         self.assertEqual(webutils.highlight_content(content, query), content) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestUnicodeWriter(SearxTestCase): | ||
|  | 
 | ||
|  |     def setUp(self): | ||
|  |         self.unicode_writer = webutils.UnicodeWriter(mock.MagicMock()) | ||
|  | 
 | ||
|  |     def test_write_row(self): | ||
|  |         row = [1, 2, 3] | ||
|  |         self.assertEqual(self.unicode_writer.writerow(row), None) | ||
|  | 
 | ||
|  |     def test_write_rows(self): | ||
|  |         self.unicode_writer.writerow = mock.MagicMock() | ||
|  |         rows = [1, 2, 3] | ||
|  |         self.unicode_writer.writerows(rows) | ||
|  |         self.assertEqual(self.unicode_writer.writerow.call_count, len(rows)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestNewHmac(SearxTestCase): | ||
|  | 
 | ||
|  |     def test_bytes(self): | ||
|  |         for secret_key in ['secret', b'secret', 1]: | ||
|  |             if secret_key == 1: | ||
|  |                 with self.assertRaises(TypeError): | ||
|  |                     webutils.new_hmac(secret_key, b'http://example.com') | ||
|  |                 continue | ||
|  |             res = webutils.new_hmac(secret_key, b'http://example.com') | ||
|  |             self.assertEqual( | ||
|  |                 res, | ||
|  |                 '23e2baa2404012a5cc8e4a18b4aabf0dde4cb9b56f679ddc0fd6d7c24339d819') |