initial openlane project

This commit is contained in:
qananasikq
2026-04-21 23:01:33 +03:00
parent 55203d33ea
commit cccf6b3916
70 changed files with 4176 additions and 6804 deletions

View File

@@ -0,0 +1,68 @@
from __future__ import annotations
import unittest
from openlane_scraper.scraper import OpenLaneScraper
from openlane_scraper.storage.schemas import ImageRecord
class TestScraperImageHelpers(unittest.TestCase):
def test_build_image_records_supports_image_large_and_image(self) -> None:
payload = [
{
"image": "https://img.cdn/vehicle-medium-1.jpg",
"image_large": "https://img.cdn/vehicle-large-1.jpg",
},
{
"image": "https://img.cdn/vehicle-medium-2.jpg",
"large_resolution_url": "https://img.cdn/vehicle-large-2.jpg",
"low_resolution_url": "https://img.cdn/vehicle-low-2.jpg",
},
]
records = OpenLaneScraper._build_image_records(payload)
self.assertEqual(len(records), 2)
self.assertEqual(records[0].fullres_image, "https://img.cdn/vehicle-large-1.jpg")
self.assertEqual(records[0].preview_image, "https://img.cdn/vehicle-medium-1.jpg")
self.assertEqual(records[1].fullres_image, "https://img.cdn/vehicle-large-2.jpg")
self.assertEqual(records[1].preview_image, "https://img.cdn/vehicle-low-2.jpg")
def test_merge_image_records_keeps_unique_and_reindexes(self) -> None:
existing = [
ImageRecord(
fullres_image="https://img.cdn/1.jpg",
preview_image="https://img.cdn/1_small.jpg",
order_index=10,
),
ImageRecord(
fullres_image="https://img.cdn/2.jpg",
preview_image="https://img.cdn/2_small.jpg",
order_index=11,
),
]
fetched = [
ImageRecord(
fullres_image="https://img.cdn/2.jpg",
preview_image="https://img.cdn/2_small_new.jpg",
order_index=0,
),
ImageRecord(
fullres_image="https://img.cdn/3.jpg",
preview_image="https://img.cdn/3_small.jpg",
order_index=1,
),
]
merged = OpenLaneScraper._merge_image_records(existing, fetched)
self.assertEqual([img.fullres_image for img in merged], [
"https://img.cdn/2.jpg",
"https://img.cdn/3.jpg",
"https://img.cdn/1.jpg",
])
self.assertEqual([img.order_index for img in merged], [0, 1, 2])
if __name__ == "__main__":
unittest.main()