add antibot unit tests
This commit is contained in:
@@ -57,6 +57,12 @@ class TestVehicleParserUnit(unittest.TestCase):
|
|||||||
self.assertTrue(hints["has_captcha_text"])
|
self.assertTrue(hints["has_captcha_text"])
|
||||||
self.assertTrue(hints["has_antibot_text"])
|
self.assertTrue(hints["has_antibot_text"])
|
||||||
|
|
||||||
|
def test_access_notes_reflect_antibot_signals(self) -> None:
|
||||||
|
summary = {"vin": "", "image_urls": [], "note": "Incapsula access denied. Verify you are human."}
|
||||||
|
notes = self.parser._build_access_notes(summary, [])
|
||||||
|
self.assertTrue(notes["possible_captcha"])
|
||||||
|
self.assertTrue(notes["possible_antibot"])
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import unittest
|
|||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
from iaai_scraper.core.config import Settings
|
from iaai_scraper.core.config import Settings
|
||||||
|
from iaai_scraper.core.exceptions import AntiBotDetectedError, SiteStructureChangedError
|
||||||
from iaai_scraper.scraper import IAAIScraper
|
from iaai_scraper.scraper import IAAIScraper
|
||||||
from iaai_scraper.storage.schemas import CarRecord
|
from iaai_scraper.storage.schemas import CarRecord
|
||||||
|
|
||||||
@@ -149,6 +150,28 @@ class TestScraperSync(unittest.TestCase):
|
|||||||
self.assertIsNone(scraper.browser)
|
self.assertIsNone(scraper.browser)
|
||||||
self.assertIsNone(scraper.playwright)
|
self.assertIsNone(scraper.playwright)
|
||||||
|
|
||||||
|
def test_guard_raises_on_antibot_signals(self) -> None:
|
||||||
|
with self.assertRaises(AntiBotDetectedError):
|
||||||
|
IAAIScraper._raise_if_blocked_or_incomplete(
|
||||||
|
{
|
||||||
|
"dom_hints": {"has_captcha_text": True, "has_antibot_text": False},
|
||||||
|
"access_notes": {},
|
||||||
|
"vehicle_summary": {},
|
||||||
|
},
|
||||||
|
"https://www.iaai.com/VehicleDetail/999~US",
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_guard_raises_on_empty_vehicle_page(self) -> None:
|
||||||
|
with self.assertRaises(SiteStructureChangedError):
|
||||||
|
IAAIScraper._raise_if_blocked_or_incomplete(
|
||||||
|
{
|
||||||
|
"dom_hints": {"has_captcha_text": False, "has_antibot_text": False},
|
||||||
|
"access_notes": {"possible_captcha": False, "possible_antibot": False},
|
||||||
|
"vehicle_summary": {},
|
||||||
|
},
|
||||||
|
"https://www.iaai.com/VehicleDetail/999~US",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user