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'