Align car mapping contract

This commit is contained in:
qananasikq
2026-08-18 09:58:00 +03:00
parent e6f6592914
commit 34734d471d
2 changed files with 16 additions and 10 deletions
+8 -8
View File
@@ -246,18 +246,18 @@ class MobileDeMapper:
listing.subtitle, listing.subtitle,
listing.title, listing.title,
), ),
selling_type="CLASSIFIED", selling_type="STOCK",
one_owner=self._is_one_owner(attr.get("pvo") or raw.get("numPreviousOwners")), one_owner=self._is_one_owner(attr.get("pvo") or raw.get("numPreviousOwners")),
new_car=bool(raw.get("isNew") or raw.get("isConditionNew")), new_car=bool(raw.get("isNew") or raw.get("isConditionNew")),
is_hidden=False, is_hidden=False,
origin="MOBILE_DE", origin="MOBILEDE",
origin_url=listing.url, origin_url=listing.url,
origin_id=origin_id, origin_id=origin_id,
is_damaged=is_damaged, is_damaged=is_damaged,
evaluation=self._rating_text(raw.get("priceRating") or raw.get("rating")), evaluation=self._rating_text(raw.get("priceRating") or raw.get("rating")),
non_smoking=True, non_smoking=False,
rental=False, rental=False,
repair_history=is_damaged, repair_history=False,
slug=self._slugify(" ".join(part for part in [title or f"{brand} {model}", str(year) if year is not None else ""] if part)), slug=self._slugify(" ".join(part for part in [title or f"{brand} {model}", str(year) if year is not None else ""] if part)),
last_seen_at=datetime.now(timezone.utc), last_seen_at=datetime.now(timezone.utc),
images=self._images_from_listing(raw), images=self._images_from_listing(raw),
@@ -344,18 +344,18 @@ class MobileDeMapper:
subtitle, subtitle,
short_title, short_title,
), ),
selling_type="CLASSIFIED", selling_type="STOCK",
one_owner=one_owner, one_owner=one_owner,
new_car=bool(detail.get("isNew") or detail.get("isConditionNew")), new_car=bool(detail.get("isNew") or detail.get("isConditionNew")),
is_hidden=False, is_hidden=False,
origin="MOBILE_DE", origin="MOBILEDE",
origin_url=MobileDeClient.build_detail_url(listing_id), origin_url=MobileDeClient.build_detail_url(listing_id),
origin_id=origin_id, origin_id=origin_id,
is_damaged=is_damaged, is_damaged=is_damaged,
evaluation=self._rating_text(detail.get("priceRating") or detail.get("rating")), evaluation=self._rating_text(detail.get("priceRating") or detail.get("rating")),
non_smoking=True, non_smoking=False,
rental=False, rental=False,
repair_history=is_damaged, repair_history=False,
slug=self._slugify(" ".join(part for part in [title or f"{brand} {model}", str(year) if year is not None else ""] if part)), slug=self._slugify(" ".join(part for part in [title or f"{brand} {model}", str(year) if year is not None else ""] if part)),
last_seen_at=datetime.now(timezone.utc), last_seen_at=datetime.now(timezone.utc),
images=self._images_from_listing(detail), images=self._images_from_listing(detail),
+8 -2
View File
@@ -104,7 +104,8 @@ class TestMobileDeMapper(unittest.TestCase):
) )
self.assertEqual(record.origin_id, "mobile.de:456") self.assertEqual(record.origin_id, "mobile.de:456")
self.assertEqual(record.origin, "MOBILE_DE") self.assertEqual(record.origin, "MOBILEDE")
self.assertEqual(record.selling_type, "STOCK")
def test_slug_includes_year_without_duplicate_or_trailing_hyphens(self) -> None: def test_slug_includes_year_without_duplicate_or_trailing_hyphens(self) -> None:
record = self.mapper.listing_to_car_record( record = self.mapper.listing_to_car_record(
@@ -250,7 +251,8 @@ class TestMobileDeMapper(unittest.TestCase):
self.assertTrue(record.one_owner) self.assertTrue(record.one_owner)
self.assertTrue(record.new_car) self.assertTrue(record.new_car)
self.assertTrue(record.is_damaged) self.assertTrue(record.is_damaged)
self.assertTrue(record.repair_history) self.assertFalse(record.repair_history)
self.assertFalse(record.non_smoking)
self.assertEqual(record.evaluation, "GOOD_PRICE") self.assertEqual(record.evaluation, "GOOD_PRICE")
def test_drive_mapping_uses_specific_markers_only(self) -> None: def test_drive_mapping_uses_specific_markers_only(self) -> None:
@@ -409,6 +411,10 @@ class TestMobileDeMapper(unittest.TestCase):
self.assertEqual(record.engine_volume, 2993) self.assertEqual(record.engine_volume, 2993)
self.assertEqual(record.body_type, "SUV") self.assertEqual(record.body_type, "SUV")
self.assertEqual(record.year, 2019) self.assertEqual(record.year, 2019)
self.assertEqual(record.origin, "MOBILEDE")
self.assertEqual(record.selling_type, "STOCK")
self.assertFalse(record.non_smoking)
self.assertFalse(record.repair_history)
def test_drive_prefers_explicit_attr_marker_over_title_noise(self) -> None: def test_drive_prefers_explicit_attr_marker_over_title_noise(self) -> None:
record = self.mapper.listing_to_car_record( record = self.mapper.listing_to_car_record(