diff --git a/goatctf/core/models.py b/goatctf/core/models.py index e88e3cf..4ab3190 100644 --- a/goatctf/core/models.py +++ b/goatctf/core/models.py @@ -37,7 +37,7 @@ class Challenge(models.Model): class Team(models.Model): """A team is a collection of players.""" - name = models.CharField(max_length=TEAM_NAME_LENGTH) + name = models.CharField(max_length=TEAM_NAME_LENGTH, unique=True) creator = models.ForeignKey("Player", related_name="created_teams") def __str__(self): diff --git a/goatctf/tests/test_team.py b/goatctf/tests/test_team.py new file mode 100644 index 0000000..8191c46 --- /dev/null +++ b/goatctf/tests/test_team.py @@ -0,0 +1,30 @@ +from django.db.utils import IntegrityError +import pytest + +from core.models import Player, Team + + +@pytest.fixture +def user(): + user = Player() + user.username = 'user' + user.password = '' + user.save() + return user + + +@pytest.mark.django_db +def test_cannot_create_without_creator(user): + team1 = Team(name="Team 1") + with pytest.raises(IntegrityError): + team1.save() + + +@pytest.mark.django_db +def test_team_names_are_unique(user): + team1 = Team(name="Team 1", creator=user) + team1.save() + + team2 = Team(name="Team 1", creator=user) + with pytest.raises(IntegrityError): + team2.save()