init CTFd source
This commit is contained in:
59
tests/brackets/test_brackets.py
Normal file
59
tests/brackets/test_brackets.py
Normal file
@@ -0,0 +1,59 @@
|
||||
from CTFd.models import Teams, Users
|
||||
from tests.helpers import (
|
||||
create_ctfd,
|
||||
destroy_ctfd,
|
||||
gen_bracket,
|
||||
login_as_user,
|
||||
register_team,
|
||||
register_user,
|
||||
)
|
||||
|
||||
|
||||
def test_require_bracket_on_register():
|
||||
"""Require users to submit a bracket if there is a bracket configured"""
|
||||
app = create_ctfd()
|
||||
with app.app_context():
|
||||
gen_bracket(app.db)
|
||||
with app.test_client() as client:
|
||||
client.get("/register")
|
||||
with client.session_transaction() as sess:
|
||||
data = {
|
||||
"name": "user",
|
||||
"email": "user@examplectf.com",
|
||||
"password": "password",
|
||||
"nonce": sess.get("nonce"),
|
||||
}
|
||||
client.post("/register", data=data)
|
||||
login_as_user(app, raise_for_error=False)
|
||||
assert Users.query.filter_by(email="user@examplectf.com").count() == 0
|
||||
data["bracket_id"] = 1
|
||||
client.post("/register", data=data)
|
||||
login_as_user(app, raise_for_error=True)
|
||||
assert Users.query.filter_by(email="user@examplectf.com").count() == 1
|
||||
destroy_ctfd(app)
|
||||
|
||||
|
||||
def test_require_team_bracket_on_register():
|
||||
"""Test that brackets are required on team mode"""
|
||||
app = create_ctfd(user_mode="teams")
|
||||
with app.app_context():
|
||||
gen_bracket(app.db, type="teams")
|
||||
register_user(app)
|
||||
with login_as_user(app) as client:
|
||||
register_team(app, raise_for_error=False)
|
||||
|
||||
with client.session_transaction() as sess:
|
||||
data = {
|
||||
"name": "team",
|
||||
"password": "password",
|
||||
"nonce": sess.get("nonce"),
|
||||
}
|
||||
# Test that a team is not created
|
||||
client.post("/teams/new", data=data)
|
||||
assert Teams.query.count() == 0
|
||||
|
||||
# Test that the team is now created
|
||||
data["bracket_id"] = 1
|
||||
client.post("/teams/new", data=data)
|
||||
assert Teams.query.filter_by(id=1).first().bracket_id == 1
|
||||
destroy_ctfd(app)
|
||||
Reference in New Issue
Block a user