LarsHoliday / tests /test_agent_validation.py
phhttps
feat: enhance scraper reliability, observability and scheduling
5dc68a0
import unittest
import os
import sys
# Add project root to path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from holland_agent import HollandVacationAgent
class TestAgentValidation(unittest.TestCase):
def test_pet_filter_enforcement(self):
"""
Test that the agent filters out any non-pet-friendly deals
if the user requested pet-friendly accommodations.
"""
agent = HollandVacationAgent()
# Mock deals with all required fields so only pet filter decides
mock_deals = [
{
"name": "Dog Friendly Villa",
"location": "Amsterdam",
"source": "booking.com",
"url": "https://example.com/dog-friendly",
"pet_friendly": True,
"price_per_night": 100,
"rating": 4.7,
"reviews": 120,
},
{
"name": "No Pets Apartment",
"location": "Amsterdam",
"source": "airbnb",
"url": "https://example.com/no-pets",
"pet_friendly": False,
"price_per_night": 80,
"rating": 4.4,
"reviews": 90,
},
]
agent.all_deals = mock_deals
validation = agent._validate_deals(pets=1)
self.assertEqual(validation["total_raw"], 2)
self.assertEqual(validation["valid_count"], 1)
self.assertEqual(validation["rejected_count"], 1)
self.assertEqual(validation["rejected_reasons"].get("not_pet_friendly"), 1)
self.assertEqual(len(agent.all_deals), 1)
self.assertEqual(agent.all_deals[0]["name"], "Dog Friendly Villa")
if __name__ == '__main__':
unittest.main()