Skip to content
Snippets Groups Projects
tests.py 1.9 KiB
Newer Older
""" This module tests all our quiz models"""
dominip89's avatar
dominip89 committed

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)