test_poolrequests.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from searx.testing import SearxTestCase
  2. from searx.poolrequests import get_proxy_cycles, get_proxies
  3. CONFIG = {'http': ['http://localhost:9090', 'http://localhost:9092'],
  4. 'https': ['http://localhost:9091', 'http://localhost:9093']}
  5. class TestProxy(SearxTestCase):
  6. def test_noconfig(self):
  7. cycles = get_proxy_cycles(None)
  8. self.assertIsNone(cycles)
  9. cycles = get_proxy_cycles(False)
  10. self.assertIsNone(cycles)
  11. def test_oldconfig(self):
  12. config = {
  13. 'http': 'http://localhost:9090',
  14. 'https': 'http://localhost:9091',
  15. }
  16. cycles = get_proxy_cycles(config)
  17. self.assertEqual(next(cycles['http']), 'http://localhost:9090')
  18. self.assertEqual(next(cycles['http']), 'http://localhost:9090')
  19. self.assertEqual(next(cycles['https']), 'http://localhost:9091')
  20. self.assertEqual(next(cycles['https']), 'http://localhost:9091')
  21. def test_one_proxy(self):
  22. config = {
  23. 'http': ['http://localhost:9090'],
  24. 'https': ['http://localhost:9091'],
  25. }
  26. cycles = get_proxy_cycles(config)
  27. self.assertEqual(next(cycles['http']), 'http://localhost:9090')
  28. self.assertEqual(next(cycles['http']), 'http://localhost:9090')
  29. self.assertEqual(next(cycles['https']), 'http://localhost:9091')
  30. self.assertEqual(next(cycles['https']), 'http://localhost:9091')
  31. def test_multiple_proxies(self):
  32. cycles = get_proxy_cycles(CONFIG)
  33. self.assertEqual(next(cycles['http']), 'http://localhost:9090')
  34. self.assertEqual(next(cycles['http']), 'http://localhost:9092')
  35. self.assertEqual(next(cycles['http']), 'http://localhost:9090')
  36. self.assertEqual(next(cycles['https']), 'http://localhost:9091')
  37. self.assertEqual(next(cycles['https']), 'http://localhost:9093')
  38. self.assertEqual(next(cycles['https']), 'http://localhost:9091')
  39. def test_getproxies_none(self):
  40. self.assertIsNone(get_proxies(None))
  41. def test_getproxies_config(self):
  42. cycles = get_proxy_cycles(CONFIG)
  43. self.assertEqual(get_proxies(cycles), {
  44. 'http': 'http://localhost:9090',
  45. 'https': 'http://localhost:9091'
  46. })
  47. self.assertEqual(get_proxies(cycles), {
  48. 'http': 'http://localhost:9092',
  49. 'https': 'http://localhost:9093'
  50. })