from __future__ import annotations import unittest from iaai_scraper.parsing.parser import VehicleParser class TestVehicleParserUnit(unittest.TestCase): def setUp(self) -> None: self.parser = VehicleParser() def test_parse_dom_key_value_pairs_extracts_known_fields(self) -> None: dom_text = """ Stock #: 45089484 VIN (Status): 1HGCM82633A123456 (OK) Primary Damage: Front End """ result = self.parser._parse_dom_key_value_pairs(dom_text) self.assertEqual(result.get("lot_number"), "45089484") self.assertEqual(result.get("vin"), "1HGCM82633A123456 (OK)") self.assertEqual(result.get("primary_damage"), "Front End") def test_parse_title_for_year_make_model(self) -> None: parsed = self.parser._parse_title_for_year_make_model("2014 TOYOTA CAMRY for sale", "") self.assertEqual(parsed["year"], "2014") self.assertEqual(parsed["make"], "TOYOTA") self.assertEqual(parsed["model"], "CAMRY") def test_extract_image_urls_filters_other_vehicle(self) -> None: vehicle_url = "https://www.iaai.com/VehicleDetail/45089484~US" payloads = [ { "imageUrls": [ "https://vis.iaai.com/resizer?imageKeys=45089484~SID1&width=845&height=633", "https://vis.iaai.com/resizer?imageKeys=99999999~SID2&width=845&height=633", ] } ] urls = self.parser._extract_image_urls(payloads, "", vehicle_url) self.assertEqual(len(urls), 1) self.assertIn("45089484", urls[0]) if __name__ == "__main__": unittest.main()