app.bettersight.io/backend/tests/core/test_proxy_service.py

88 lines
3.1 KiB
Python

from core.proxy_service import ProxyService
def test_webshare_requests_config_with_country():
service = ProxyService()
config = service._webshare_requests(country='gb')
assert '-GB-rotate' in config['http']
assert config['http'] == config['https']
def test_webshare_requests_config_without_country():
service = ProxyService()
config = service._webshare_requests()
assert '-rotate' in config['http']
assert '-GB-' not in config['http']
def test_webshare_playwright_config():
service = ProxyService()
config = service._webshare_playwright(country='us')
assert config['server'] == 'http://p.webshare.io:80'
assert config['username'].endswith('-US-rotate')
def test_brightdata_requests_and_playwright_configs():
service = ProxyService()
assert service._brightdata_requests()['http'].startswith('http://')
assert service._brightdata_playwright()['server'] == 'http://brd.superproxy.io:22225'
def test_get_proxy_for_domain_uses_webshare_when_no_override(monkeypatch):
service = ProxyService()
monkeypatch.setattr('core.proxy_service.proxy_repository.get_by_domain', lambda domain: None)
config = service.get_proxy_for_domain('intrepidtravel.com', country='GB')
assert 'p.webshare.io' in config['http']
def test_get_proxy_for_domain_uses_brightdata_when_override_exists(monkeypatch):
service = ProxyService()
monkeypatch.setattr(
'core.proxy_service.proxy_repository.get_by_domain',
lambda domain: {'id': 'o1', 'provider': 'brightdata'}
)
config = service.get_proxy_for_domain('flashpack.com')
assert 'brd.superproxy.io' in config['http']
def test_get_playwright_proxy_for_domain_uses_brightdata_when_override_exists(monkeypatch):
service = ProxyService()
monkeypatch.setattr(
'core.proxy_service.proxy_repository.get_by_domain',
lambda domain: {'id': 'o1', 'provider': 'brightdata'}
)
config = service.get_playwright_proxy_for_domain('flashpack.com')
assert config['server'] == 'http://brd.superproxy.io:22225'
def test_escalate_to_brightdata_creates_new_override(monkeypatch):
service = ProxyService()
monkeypatch.setattr('core.proxy_service.proxy_repository.get_by_domain', lambda domain: None)
created = {}
monkeypatch.setattr('core.proxy_service.proxy_repository.create', lambda data: created.update(data))
service.escalate_to_brightdata('newlyblocked.com')
assert created['domain'] == 'newlyblocked.com'
assert created['provider'] == 'brightdata'
assert created['blocked_count'] == 1
def test_escalate_to_brightdata_increments_existing_override(monkeypatch):
service = ProxyService()
monkeypatch.setattr(
'core.proxy_service.proxy_repository.get_by_domain',
lambda domain: {'id': 'o1', 'blocked_count': 2}
)
updated = {}
monkeypatch.setattr(
'core.proxy_service.proxy_repository.update',
lambda override_id, data: updated.update({'id': override_id, **data})
)
service.escalate_to_brightdata('repeatoffender.com')
assert updated['id'] == 'o1'
assert updated['blocked_count'] == 3
assert updated['provider'] == 'brightdata'