#!/usr/bin/env python3
"""
Teszt szkript az R0 spider számára.
Csak egy járművet dolgoz fel, majd leáll.
"""

import asyncio
import logging
import sys
import os

# Add the backend to the path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))

from app.workers.vehicle.ultimatespecs.vehicle_ultimate_r0_spider import UltimateSpecsSpider

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s [TEST-R0] %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S'
)
logger = logging.getLogger("TEST-R0")

class TestSpider(UltimateSpecsSpider):
    """Teszt spider, amely csak egy iterációt fut."""
    
    async def run_test(self):
        """Run a single test iteration."""
        logger.info("Teszt spider indítása...")
        
        try:
            await self.init_browser()
            
            # Process just one vehicle
            processed = await self.process_single_vehicle()
            
            if processed:
                logger.info("Teszt sikeres - egy jármű feldolgozva")
            else:
                logger.info("Teszt sikeres - nincs feldolgozandó jármű")
                
        except Exception as e:
            logger.error(f"Teszt hiba: {e}")
            import traceback
            traceback.print_exc()
            return False
        finally:
            await self.close_browser()
            
        return True

async def main():
    """Main test function."""
    spider = TestSpider()
    
    try:
        success = await spider.run_test()
        if success:
            print("\n✅ TESZT SIKERES")
            sys.exit(0)
        else:
            print("\n❌ TESZT SIKERTELEN")
            sys.exit(1)
    except KeyboardInterrupt:
        print("\n⏹️ Teszt megszakítva")
        sys.exit(0)
    except Exception as e:
        print(f"\n💥 Váratlan hiba: {e}")
        import traceback
        traceback.print_exc()
        sys.exit(1)

if __name__ == "__main__":
    asyncio.run(main())