""" This module tests all our quiz models""" from django.test import TestCase from .models import Sport, Criterion class SportModelTest(TestCase): """Tests the sport model""" def setUp(self): self.name = "HIIT" self.url = "https://www.buchsys.de/fu-berlin/angebote/aktueller_zeitraum/_HIIT_" \ "-_High_Intensity_Interval_Training___HOME.html " self.test_sport = Sport( name=self.name, url=self.url, ) self.test_sport.save() def test_sport_can_be_created(self): """ New sport is written to the database """ test_sport = Sport.objects.first() self.assertEqual(test_sport.name, self.name) self.assertEqual(test_sport.url, self.url) class CriterionRatingTest(TestCase): """Tests the Relation between Sport and Criterion""" def setUp(self): self.name = "HIIT" self.url = "https://www.buchsys.de/fu-berlin/angebote/aktueller_zeitraum/_HIIT_" \ "-_High_Intensity_Interval_Training___HOME.html " self.test_sport = Sport( name=self.name, url=self.url, ) self.test_sport.save() self.criterion = Criterion(name="Einzelsport") self.criterion.save() def test_can_rate_criterion_for_sport(self): """ A rating for a specific criterion can be added to a sport """ self.test_sport.rate(self.criterion, 10) self.assertEqual(self.test_sport.criteria_ratings.first(), self.criterion) self.assertEqual(self.test_sport.get_rating(self.criterion), 10) class CriterionModelTest(TestCase): """Tests the Criterion model""" def test_criterion_can_be_created(self): """New criterion is saved to the db""" name = "Einzelsport" Criterion(name=name).save() test_criterion=Criterion.objects.first() self.assertEqual(test_criterion.name, name)