from datetime import timedelta from django.contrib import admin from django.contrib.auth import get_user_model from django.test import TestCase from django.utils import timezone from bookings.models import Reservation from checkins.admin import CheckInAdmin from checkins.models import CheckIn from shows.models import Performance, Show, Venue class CheckInAdminTests(TestCase): def setUp(self): user_model = get_user_model() self.admin_user = user_model.objects.create_superuser( username="admin-checkins", email="admin-checkins@example.com", password="password123", ) self.show = Show.objects.create( title="Open Stage", slug="open-stage-checkins-admin", is_published=True, ) self.venue = Venue.objects.create( name="AzioneLab Theatre", slug="azionelab-theatre-checkins-admin", address="Via Example 1", city="Rome", ) self.performance = Performance.objects.create( show=self.show, venue=self.venue, starts_at=timezone.now() + timedelta(days=7), room_capacity=20, ) self.reservation = Reservation.objects.create( performance=self.performance, name="Maria Rossi", email="maria@example.com", party_size=3, status=Reservation.Status.CONFIRMED, confirmed_at=timezone.now(), ) self.check_in = CheckIn.objects.create( reservation=self.reservation, checked_in_at=timezone.now(), checked_in_by=self.admin_user, source=CheckIn.Source.MANUAL, ) self.model_admin = CheckInAdmin(CheckIn, admin.site) def test_reservation_column_shows_guest_name_only(self): self.assertEqual(self.model_admin.reservation_guest_name(self.check_in), "Maria Rossi")