mirror of
https://github.com/Without-Proper-Instructions/GoatCTF
synced 2025-10-08 07:40:46 +00:00
[Fix #21] Require unique team names
This commit is contained in:
parent
d75ec164e0
commit
9a6de60a00
@ -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):
|
||||
|
30
goatctf/tests/test_team.py
Normal file
30
goatctf/tests/test_team.py
Normal file
@ -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()
|
Loading…
x
Reference in New Issue
Block a user