from django.test import TestCase from datetime import date from clubs.models import Club from wrestlers.models import Wrestler class WrestlerModelTest(TestCase): @classmethod def setUpTestData(cls): cls.club = Club.objects.create(name="Test Club") cls.wrestler = Wrestler.objects.create( first_name="Max", last_name="Mustermann", club=cls.club, group="youth" ) def test_wrestler_creation(self): self.assertEqual(self.wrestler.first_name, "Max") self.assertEqual(self.wrestler.last_name, "Mustermann") self.assertEqual(self.wrestler.group, "youth") self.assertTrue(self.wrestler.is_active) def test_wrestler_str(self): self.assertEqual(str(self.wrestler), "Max Mustermann") def test_wrestler_ordering(self): w2 = Wrestler.objects.create( first_name="Anna", last_name="Schmidt", club=self.club, group="kids" ) wrestlers = list(Wrestler.objects.all()) self.assertEqual(wrestlers[0].last_name, "Mustermann") self.assertEqual(wrestlers[1].last_name, "Schmidt") def test_calculate_age_with_birthdate(self): self.wrestler.date_of_birth = date(2015, 1, 15) self.wrestler.save() age = self.wrestler.calculate_age() self.assertIsNotNone(age) self.assertIsInstance(age, int) def test_calculate_age_without_birthdate(self): self.wrestler.date_of_birth = None self.wrestler.save() self.assertIsNone(self.wrestler.calculate_age()) def test_wrestler_club_relationship(self): self.assertEqual(self.wrestler.club.name, "Test Club") self.assertEqual(self.club.wrestlers.count(), 1) def test_wrestler_default_active(self): new_wrestler = Wrestler.objects.create( first_name="New", last_name="Wrestler", club=self.club, group="kids" ) self.assertTrue(new_wrestler.is_active) def test_wrestler_group_choices(self): self.assertEqual(self.wrestler.group, "youth") self.wrestler.group = "adults" self.wrestler.save() self.assertEqual(self.wrestler.group, "adults")