diff --git a/unisportomat/quiz/models.py b/unisportomat/quiz/models.py
index e81a365a656586612724e686dca11a476df99bcc..84b3574c319b3cbd54ce74025f06a9b1dc8be876 100644
--- a/unisportomat/quiz/models.py
+++ b/unisportomat/quiz/models.py
@@ -1,16 +1,30 @@
+""" Model definitions for the quiz """
+
 from django.core.validators import MaxValueValidator, MinValueValidator
 from django.db import models
 
 
 class CriterionRating(models.Model):
+    """
+    This is the relation between Sport and Criterion.
+    You can use it to add a rating for a specific criterion to a sport.
+    To see it's usage check Sport.rate() and Sport.get_rating()
+    """
+
     rating = models.IntegerField(
-        validators=[MaxValueValidator(10), MinValueValidator(0)] # validation on user level (not db level)
+        validators=[MaxValueValidator(10), MinValueValidator(0)]
     )
     criterion = models.ForeignKey("Criterion", on_delete=models.CASCADE)
     sport = models.ForeignKey("Sport", on_delete=models.CASCADE)
 
 
 class Sport(models.Model):
+    """
+    Defines a Sport with name, url that leads to the booking page.
+    A sport includes ratings for all criterions.
+    (e.g. How much it corresponds to the criterion "Martial Arts")
+    """
+
     name = models.TextField()
     url = models.URLField()
     criteria_ratings = models.ManyToManyField("Criterion", through="CriterionRating")
@@ -19,13 +33,20 @@ class Sport(models.Model):
         return self.name
 
     def rate(self, criterion, rating):
-        rating = CriterionRating(sport=self, criterion=criterion, rating=10)
+        """Defines how much (rating) the sport meets the given criterion"""
+        rating = CriterionRating(sport=self, criterion=criterion, rating=rating)
         rating.save()
 
     def get_rating(self, criterion):
+        """Returns how much the sport meets the given criterion"""
         criterion_rating = CriterionRating.objects.get(sport=self, criterion=criterion)
         return criterion_rating.rating
 
 
 class Criterion(models.Model):
+    """
+    Defines a Sport property that is used a a criterion for our quiz.
+    (e.g. Individual or Team sport)
+    """
+
     name = models.TextField()
diff --git a/unisportomat/quiz/tests.py b/unisportomat/quiz/tests.py
index 5700962719460b6d30fe198818405e5b46073212..05790a71c7bdb2038a4915c51791c08400499945 100644
--- a/unisportomat/quiz/tests.py
+++ b/unisportomat/quiz/tests.py
@@ -1,48 +1,60 @@
-from django.test import TestCase
+""" 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.url = "https://www.buchsys.de/fu-berlin/angebote/aktueller_zeitraum/_HIIT_" \
+                   "-_High_Intensity_Interval_Training___HOME.html "
 
-        self.testSport = Sport(
+        self.test_sport = Sport(
             name=self.name,
             url=self.url,
         )
 
-        self.testSport.save()
+        self.test_sport.save()
 
     def test_sport_can_be_created(self):
-        self.assertEquals(self.testSport.name, self.name)
-        self.assertEquals(self.testSport.url, self.url)
+        """ 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.url = "https://www.buchsys.de/fu-berlin/angebote/aktueller_zeitraum/_HIIT_" \
+                   "-_High_Intensity_Interval_Training___HOME.html "
 
-        self.testSport = Sport(
+        self.test_sport = Sport(
             name=self.name,
             url=self.url,
         )
 
-        self.testSport.save()
+        self.test_sport.save()
 
         self.criterion = Criterion(name="Einzelsport")
         self.criterion.save()
 
     def test_can_rate_criterion_for_sport(self):
-        self.testSport.rate(self.criterion, 10)
-        self.assertEquals(self.testSport.criteria_ratings.first(), self.criterion)
-        self.assertEquals(self.testSport.get_rating(self.criterion), 10)
+        """ 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"
-        test_criterion = Criterion(name=name)
-        self.assertEquals(test_criterion.name, name)
+        Criterion(name=name).save()
+        test_criterion=Criterion.objects.first()
+        self.assertEqual(test_criterion.name, name)