Files

23 lines
1.2 KiB
Python
Raw Permalink Normal View History

from datetime import datetime, timezone
from django.test import SimpleTestCase
from rest_framework.test import APIClient
from .recommendations import build_bass_plan
class RecommendationEngineTests(SimpleTestCase):
def test_plan_is_explainable_and_actionable(self):
plan = build_bass_plan(datetime(2026, 9, 5, 11, tzinfo=timezone.utc))
self.assertGreaterEqual(plan["bite_score"], 80)
self.assertEqual(plan["primary_pattern"]["name"], "Wind-blown points")
self.assertEqual(len(plan["evidence"]), 4)
self.assertIn("spinnerbait", plan["tackle"]["lure"])
class DemoPlanApiTests(SimpleTestCase):
def setUp(self): self.client = APIClient()
def test_demo_plan_requires_no_account(self):
response = self.client.post("/api/demo/plan/", {"starts_at": "2026-09-05T06:30:00-05:00"}, format="json")
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["trip"]["water_body"], "Lake Eufaula")
self.assertIn("professor_finn", response.data["plan"])
def test_invalid_date_is_clear(self):
self.assertEqual(self.client.post("/api/demo/plan/", {"starts_at": "Saturday morning"}, format="json").status_code, 400)