2023-11-06 19:41:05 +00:00
|
|
|
import subprocess
|
|
|
|
import time
|
|
|
|
import pytest
|
2023-11-06 21:22:38 +00:00
|
|
|
from harvester.proxy import fetch_list, fetch_all
|
2023-11-06 19:41:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(scope='session', autouse=True)
|
|
|
|
def start_web_server():
|
|
|
|
server_process = subprocess.Popen(['python', '-m', 'http.server', '8888'], cwd='tests/data')
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
yield
|
|
|
|
|
|
|
|
server_process.terminate()
|
|
|
|
|
|
|
|
|
|
|
|
def test_fetch_list():
|
|
|
|
expected = ['127.0.0.1:9000', '127.0.0.1:9001', 'username:pa$$@word@127.0.0.1:9002']
|
2023-11-06 21:22:38 +00:00
|
|
|
result = fetch_list('http://localhost:8888/proxies1.txt')
|
2023-11-06 22:07:23 +00:00
|
|
|
for proxy in expected:
|
|
|
|
assert proxy in result
|
2023-11-06 19:41:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_fetch_list_fail():
|
|
|
|
expected = []
|
2023-11-06 21:22:38 +00:00
|
|
|
result = fetch_list('http://localhost:12345/proxies1.txt')
|
2023-11-06 19:41:05 +00:00
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_fetch_list_only_valid():
|
|
|
|
expected = ['127.0.0.1:9000', '127.0.0.1:9001', 'username:pa$$@word@127.0.0.1:9002']
|
2023-11-06 21:22:38 +00:00
|
|
|
result = fetch_list('http://localhost:8888/proxies1.txt')
|
2023-11-06 22:07:23 +00:00
|
|
|
for proxy in expected:
|
|
|
|
assert proxy in result
|
2023-11-06 21:22:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_fetch_all():
|
|
|
|
expected = ['127.0.0.1:9000', '127.0.0.1:9001', 'username:pa$$@word@127.0.0.1:9002', '127.0.0.1:9999']
|
|
|
|
result = fetch_all(['http://localhost:8888/proxies1.txt', 'http://localhost:8888/proxies2.txt'])
|
|
|
|
for proxy in expected:
|
|
|
|
assert proxy in result
|