58 lines
2.2 KiB
Python
58 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test catalog filtering directly via AssetService.
|
|
"""
|
|
import asyncio
|
|
import sys
|
|
sys.path.insert(0, '/app')
|
|
|
|
from app.db.session import async_sessionmaker
|
|
from app.services.asset_service import AssetService
|
|
|
|
async def test():
|
|
async_session = async_sessionmaker()
|
|
async with async_session() as session:
|
|
async with session.begin():
|
|
# Get makes
|
|
makes = await AssetService.get_makes(session)
|
|
print(f"Total makes: {len(makes)}")
|
|
if not makes:
|
|
print("No makes in database")
|
|
return
|
|
test_make = makes[0]
|
|
print(f"Testing with make: {test_make}")
|
|
|
|
# Get all models
|
|
models_all = await AssetService.get_models(session, test_make)
|
|
print(f"All models for {test_make}: {len(models_all)}")
|
|
|
|
# Get filtered by passenger_car
|
|
models_car = await AssetService.get_models(session, test_make, 'passenger_car')
|
|
print(f"Models filtered by 'passenger_car': {len(models_car)}")
|
|
|
|
# Get filtered by motorcycle
|
|
models_moto = await AssetService.get_models(session, test_make, 'motorcycle')
|
|
print(f"Models filtered by 'motorcycle': {len(models_moto)}")
|
|
|
|
# Verify filtering works
|
|
if models_car and len(models_car) <= len(models_all):
|
|
print("✅ PASS: Car filter returns subset or equal")
|
|
else:
|
|
print("⚠ WARNING: Car filter anomaly")
|
|
|
|
# Check if there's any difference
|
|
if models_car != models_all:
|
|
print("✅ PASS: Filtering actually changes results")
|
|
else:
|
|
print("⚠ WARNING: Filtering returns same results (maybe no vehicle_class data)")
|
|
|
|
# Print a few examples
|
|
if models_all:
|
|
print(f"Sample models: {models_all[:3]}")
|
|
if models_car:
|
|
print(f"Sample car models: {models_car[:3]}")
|
|
if models_moto:
|
|
print(f"Sample motorcycle models: {models_moto[:3]}")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(test()) |