mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-17 14:04:20 +01:00
Switch default testing/development domain name to examplectf.com (#1807)
* Use `examplectf.com` as testing/development domain instead of `ctfd.io`
This commit is contained in:
@@ -131,7 +131,7 @@ class ServerConfig(object):
|
|||||||
|
|
||||||
# === EMAIL ===
|
# === EMAIL ===
|
||||||
MAILFROM_ADDR: str = config_ini["email"]["MAILFROM_ADDR"] \
|
MAILFROM_ADDR: str = config_ini["email"]["MAILFROM_ADDR"] \
|
||||||
or "noreply@ctfd.io"
|
or "noreply@examplectf.com"
|
||||||
|
|
||||||
MAIL_SERVER: str = empty_str_cast(config_ini["email"]["MAIL_SERVER"])
|
MAIL_SERVER: str = empty_str_cast(config_ini["email"]["MAIL_SERVER"])
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ def test_reset():
|
|||||||
|
|
||||||
for x in range(10):
|
for x in range(10):
|
||||||
user = base_user + str(x)
|
user = base_user + str(x)
|
||||||
user_email = user + "@ctfd.io"
|
user_email = user + "@examplectf.com"
|
||||||
user_obj = gen_user(app.db, name=user, email=user_email)
|
user_obj = gen_user(app.db, name=user, email=user_email)
|
||||||
gen_award(app.db, user_id=user_obj.id)
|
gen_award(app.db, user_id=user_obj.id)
|
||||||
gen_solve(app.db, user_id=user_obj.id, challenge_id=random.randint(1, 10))
|
gen_solve(app.db, user_id=user_obj.id, challenge_id=random.randint(1, 10))
|
||||||
@@ -153,10 +153,12 @@ def test_reset_team_mode():
|
|||||||
|
|
||||||
for x in range(10):
|
for x in range(10):
|
||||||
user = base_user + str(x)
|
user = base_user + str(x)
|
||||||
user_email = user + "@ctfd.io"
|
user_email = user + "@examplectf.com"
|
||||||
user_obj = gen_user(app.db, name=user, email=user_email)
|
user_obj = gen_user(app.db, name=user, email=user_email)
|
||||||
team_obj = gen_team(
|
team_obj = gen_team(
|
||||||
app.db, name=base_team + str(x), email=base_team + str(x) + "@ctfd.io"
|
app.db,
|
||||||
|
name=base_team + str(x),
|
||||||
|
email=base_team + str(x) + "@examplectf.com",
|
||||||
)
|
)
|
||||||
team_obj.members.append(user_obj)
|
team_obj.members.append(user_obj)
|
||||||
team_obj.captain_id = user_obj.id
|
team_obj.captain_id = user_obj.id
|
||||||
|
|||||||
@@ -14,16 +14,16 @@ def test_admin_user_ip_search():
|
|||||||
"""Can an admin search user IPs"""
|
"""Can an admin search user IPs"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
u1 = gen_user(app.db, name="user1", email="user1@ctfd.io")
|
u1 = gen_user(app.db, name="user1", email="user1@examplectf.com")
|
||||||
gen_tracking(app.db, user_id=u1.id, ip="1.1.1.1")
|
gen_tracking(app.db, user_id=u1.id, ip="1.1.1.1")
|
||||||
|
|
||||||
u2 = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
u2 = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
gen_tracking(app.db, user_id=u2.id, ip="2.2.2.2")
|
gen_tracking(app.db, user_id=u2.id, ip="2.2.2.2")
|
||||||
|
|
||||||
u3 = gen_user(app.db, name="user3", email="user3@ctfd.io")
|
u3 = gen_user(app.db, name="user3", email="user3@examplectf.com")
|
||||||
gen_tracking(app.db, user_id=u3.id, ip="3.3.3.3")
|
gen_tracking(app.db, user_id=u3.id, ip="3.3.3.3")
|
||||||
|
|
||||||
u4 = gen_user(app.db, name="user4", email="user4@ctfd.io")
|
u4 = gen_user(app.db, name="user4", email="user4@examplectf.com")
|
||||||
gen_tracking(app.db, user_id=u4.id, ip="3.3.3.3")
|
gen_tracking(app.db, user_id=u4.id, ip="3.3.3.3")
|
||||||
gen_tracking(app.db, user_id=u4.id, ip="4.4.4.4")
|
gen_tracking(app.db, user_id=u4.id, ip="4.4.4.4")
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ def test_user_token_access():
|
|||||||
assert r.status_code == 403
|
assert r.status_code == 403
|
||||||
|
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
user = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
user = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
expiration = datetime.datetime.utcnow() + datetime.timedelta(days=-1)
|
expiration = datetime.datetime.utcnow() + datetime.timedelta(days=-1)
|
||||||
token = generate_user_token(user, expiration=expiration)
|
token = generate_user_token(user, expiration=expiration)
|
||||||
headers = {"Authorization": "token " + token.value}
|
headers = {"Authorization": "token " + token.value}
|
||||||
@@ -67,12 +67,12 @@ def test_user_token_access():
|
|||||||
assert r.status_code == 401
|
assert r.status_code == 401
|
||||||
|
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
user = gen_user(app.db, name="user1", email="user1@ctfd.io")
|
user = gen_user(app.db, name="user1", email="user1@examplectf.com")
|
||||||
token = generate_user_token(user, expiration=None)
|
token = generate_user_token(user, expiration=None)
|
||||||
headers = {"Authorization": "token " + token.value}
|
headers = {"Authorization": "token " + token.value}
|
||||||
r = client.get("/api/v1/users/me", headers=headers, json="")
|
r = client.get("/api/v1/users/me", headers=headers, json="")
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert resp["data"]["email"] == "user1@ctfd.io"
|
assert resp["data"]["email"] == "user1@examplectf.com"
|
||||||
assert resp["data"]["name"] == "user1"
|
assert resp["data"]["name"] == "user1"
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ def test_api_statistics_score_distribution():
|
|||||||
|
|
||||||
# Add user data
|
# Add user data
|
||||||
register_user(app)
|
register_user(app)
|
||||||
user = Users.query.filter_by(email="user@ctfd.io").first()
|
user = Users.query.filter_by(email="user@examplectf.com").first()
|
||||||
simulate_user_activity(app.db, user=user)
|
simulate_user_activity(app.db, user=user)
|
||||||
|
|
||||||
# Test again
|
# Test again
|
||||||
|
|||||||
@@ -94,8 +94,8 @@ def test_api_admin_can_change_captain():
|
|||||||
"""Can admins/captains change captains for teams"""
|
"""Can admins/captains change captains for teams"""
|
||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
user1 = gen_user(app.db, name="user1", email="user1@ctfd.io") # ID 2
|
user1 = gen_user(app.db, name="user1", email="user1@examplectf.com") # ID 2
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io") # ID 3
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com") # ID 3
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
team.members.append(user1)
|
team.members.append(user1)
|
||||||
team.members.append(user2)
|
team.members.append(user2)
|
||||||
@@ -128,8 +128,8 @@ def test_api_users_can_change_captain_on_self_team():
|
|||||||
"""Can admins/captains change captains for their own team"""
|
"""Can admins/captains change captains for their own team"""
|
||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
user1 = gen_user(app.db, name="user1", email="user1@ctfd.io") # ID 2
|
user1 = gen_user(app.db, name="user1", email="user1@examplectf.com") # ID 2
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io") # ID 3
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com") # ID 3
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
team.members.append(user1)
|
team.members.append(user1)
|
||||||
team.members.append(user2)
|
team.members.append(user2)
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ def test_api_challenges_get_verified_emails():
|
|||||||
gen_user(
|
gen_user(
|
||||||
app.db,
|
app.db,
|
||||||
name="user_name",
|
name="user_name",
|
||||||
email="verified_user@ctfd.io",
|
email="verified_user@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
verified=True,
|
verified=True,
|
||||||
)
|
)
|
||||||
@@ -294,7 +294,7 @@ def test_api_challenge_get_verified_emails():
|
|||||||
gen_user(
|
gen_user(
|
||||||
app.db,
|
app.db,
|
||||||
name="user_name",
|
name="user_name",
|
||||||
email="verified_user@ctfd.io",
|
email="verified_user@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
verified=True,
|
verified=True,
|
||||||
)
|
)
|
||||||
@@ -558,8 +558,8 @@ def test_api_challenge_get_solves_ctf_frozen():
|
|||||||
"""Test users can only see challenge solves that happened before freeze time"""
|
"""Test users can only see challenge solves that happened before freeze time"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
|
|
||||||
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
||||||
set_config("freeze", "1507262400")
|
set_config("freeze", "1507262400")
|
||||||
@@ -657,7 +657,7 @@ def test_api_challenge_get_solves_verified_emails():
|
|||||||
gen_user(
|
gen_user(
|
||||||
app.db,
|
app.db,
|
||||||
name="user_name",
|
name="user_name",
|
||||||
email="verified_user@ctfd.io",
|
email="verified_user@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
verified=True,
|
verified=True,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ def test_api_self_fields_permissions():
|
|||||||
with client.session_transaction() as sess:
|
with client.session_transaction() as sess:
|
||||||
data = {
|
data = {
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"nonce": sess.get("nonce"),
|
"nonce": sess.get("nonce"),
|
||||||
"fields[1]": "CustomValue1",
|
"fields[1]": "CustomValue1",
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ def test_scoreboard_is_cached():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
# create user1
|
# create user1
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
|
|
||||||
# create challenge
|
# create challenge
|
||||||
chal = gen_challenge(app.db, value=100)
|
chal = gen_challenge(app.db, value=100)
|
||||||
|
|||||||
@@ -134,10 +134,10 @@ def test_api_teams_post_admin_duplicate():
|
|||||||
r = client.post(
|
r = client.post(
|
||||||
"/api/v1/teams",
|
"/api/v1/teams",
|
||||||
json={
|
json={
|
||||||
"website": "https://ctfd.io",
|
"website": "https://examplectf.com",
|
||||||
"name": "team1",
|
"name": "team1",
|
||||||
"country": "TW",
|
"country": "TW",
|
||||||
"email": "team1@ctfd.io",
|
"email": "team1@examplectf.com",
|
||||||
"affiliation": "team",
|
"affiliation": "team",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
},
|
},
|
||||||
@@ -152,10 +152,10 @@ def test_api_teams_post_admin_duplicate():
|
|||||||
r = client.post(
|
r = client.post(
|
||||||
"/api/v1/teams",
|
"/api/v1/teams",
|
||||||
json={
|
json={
|
||||||
"website": "https://ctfd.io",
|
"website": "https://examplectf.com",
|
||||||
"name": "new_team",
|
"name": "new_team",
|
||||||
"country": "TW",
|
"country": "TW",
|
||||||
"email": "team@ctfd.io",
|
"email": "team@examplectf.com",
|
||||||
"affiliation": "team",
|
"affiliation": "team",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
},
|
},
|
||||||
@@ -244,7 +244,7 @@ def test_api_team_patch_admin():
|
|||||||
"/api/v1/teams/1",
|
"/api/v1/teams/1",
|
||||||
json={
|
json={
|
||||||
"name": "team_name",
|
"name": "team_name",
|
||||||
"email": "team@ctfd.io",
|
"email": "team@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"affiliation": "changed",
|
"affiliation": "changed",
|
||||||
},
|
},
|
||||||
@@ -328,8 +328,8 @@ def test_api_team_patch_me_logged_in_user():
|
|||||||
"""Can a user patch /api/v1/teams/me if logged in as a regular user"""
|
"""Can a user patch /api/v1/teams/me if logged in as a regular user"""
|
||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
user1 = gen_user(app.db, name="user1", email="user1@ctfd.io")
|
user1 = gen_user(app.db, name="user1", email="user1@examplectf.com")
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
team.members.append(user1)
|
team.members.append(user1)
|
||||||
team.members.append(user2)
|
team.members.append(user2)
|
||||||
@@ -441,7 +441,9 @@ def test_api_team_get_solves_after_freze_time():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app)
|
register_user(app)
|
||||||
team = gen_team(app.db, name="team1", email="team1@ctfd.io", member_count=1)
|
team = gen_team(
|
||||||
|
app.db, name="team1", email="team1@examplectf.com", member_count=1
|
||||||
|
)
|
||||||
|
|
||||||
team_member = team.members[0]
|
team_member = team.members[0]
|
||||||
tm_name = team_member.name
|
tm_name = team_member.name
|
||||||
@@ -521,7 +523,9 @@ def test_api_team_get_fails_after_freze_time():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app)
|
register_user(app)
|
||||||
team = gen_team(app.db, name="team1", email="team1@ctfd.io", member_count=1)
|
team = gen_team(
|
||||||
|
app.db, name="team1", email="team1@examplectf.com", member_count=1
|
||||||
|
)
|
||||||
|
|
||||||
team_member = team.members[0]
|
team_member = team.members[0]
|
||||||
tm_name = team_member.name
|
tm_name = team_member.name
|
||||||
@@ -598,7 +602,9 @@ def test_api_team_get_awards_after_freze_time():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app)
|
register_user(app)
|
||||||
team = gen_team(app.db, name="team1", email="team1@ctfd.io", member_count=1)
|
team = gen_team(
|
||||||
|
app.db, name="team1", email="team1@examplectf.com", member_count=1
|
||||||
|
)
|
||||||
|
|
||||||
team_member = team.members[0]
|
team_member = team.members[0]
|
||||||
tm_name = team_member.name
|
tm_name = team_member.name
|
||||||
@@ -634,9 +640,9 @@ def test_api_team_patch_password():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
user1 = gen_user(
|
user1 = gen_user(
|
||||||
app.db, name="user1", email="user1@ctfd.io", password="captain"
|
app.db, name="user1", email="user1@examplectf.com", password="captain"
|
||||||
) # ID 2
|
) # ID 2
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io") # ID 3
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com") # ID 3
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
team.members.append(user1)
|
team.members.append(user1)
|
||||||
team.members.append(user2)
|
team.members.append(user2)
|
||||||
@@ -704,7 +710,7 @@ def test_api_team_captain_disbanding():
|
|||||||
team.members.append(user)
|
team.members.append(user)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
team.captain_id = 2
|
team.captain_id = 2
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
team.members.append(user2)
|
team.members.append(user2)
|
||||||
app.db.session.commit()
|
app.db.session.commit()
|
||||||
with login_as_user(app, name="user2") as client:
|
with login_as_user(app, name="user2") as client:
|
||||||
@@ -754,7 +760,7 @@ def test_api_team_captain_disbanding_only_inactive_teams():
|
|||||||
team.members.append(user)
|
team.members.append(user)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
team.captain_id = 2
|
team.captain_id = 2
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
team.members.append(user2)
|
team.members.append(user2)
|
||||||
app.db.session.commit()
|
app.db.session.commit()
|
||||||
|
|
||||||
@@ -775,8 +781,8 @@ def test_api_team_captain_disbanding_only_inactive_teams():
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
user = gen_user(app.db, name="user3", email="user3@ctfd.io")
|
user = gen_user(app.db, name="user3", email="user3@examplectf.com")
|
||||||
team = gen_team(app.db, name="team2", email="team2@ctfd.io")
|
team = gen_team(app.db, name="team2", email="team2@examplectf.com")
|
||||||
print(user.id)
|
print(user.id)
|
||||||
team.members.append(user)
|
team.members.append(user)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
@@ -795,12 +801,12 @@ def test_api_accessing_hidden_banned_users():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app)
|
register_user(app)
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
register_user(app, name="visible_user", email="visible_user@ctfd.io")
|
register_user(app, name="visible_user", email="visible_user@examplectf.com")
|
||||||
|
|
||||||
user = Users.query.filter_by(id=2).first()
|
user = Users.query.filter_by(id=2).first()
|
||||||
team = gen_team(
|
team = gen_team(
|
||||||
app.db, name="hidden_team", email="hidden_team@ctfd.io", hidden=True
|
app.db, name="hidden_team", email="hidden_team@examplectf.com", hidden=True
|
||||||
)
|
)
|
||||||
team.members.append(user)
|
team.members.append(user)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
@@ -808,7 +814,7 @@ def test_api_accessing_hidden_banned_users():
|
|||||||
|
|
||||||
user = Users.query.filter_by(id=3).first()
|
user = Users.query.filter_by(id=3).first()
|
||||||
team = gen_team(
|
team = gen_team(
|
||||||
app.db, name="banned_team", email="banned_team@ctfd.io", banned=True
|
app.db, name="banned_team", email="banned_team@examplectf.com", banned=True
|
||||||
)
|
)
|
||||||
team.members.append(user)
|
team.members.append(user)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
@@ -865,7 +871,7 @@ def test_api_user_without_team_challenge_interaction():
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Create a user with a team
|
# Create a user with a team
|
||||||
user = gen_user(app.db, email="user_name@ctfd.io")
|
user = gen_user(app.db, email="user_name@examplectf.com")
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
team.members.append(user)
|
team.members.append(user)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ def test_api_tag_list_get():
|
|||||||
user = gen_user(app.db, name="user")
|
user = gen_user(app.db, name="user")
|
||||||
generate_user_token(user)
|
generate_user_token(user)
|
||||||
|
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
generate_user_token(user2)
|
generate_user_token(user2)
|
||||||
generate_user_token(user2)
|
generate_user_token(user2)
|
||||||
with login_as_user(app) as client:
|
with login_as_user(app) as client:
|
||||||
@@ -78,7 +78,7 @@ def test_api_tag_detail_get():
|
|||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert sorted(resp["data"].keys()) == sorted(TokenSchema().views["admin"])
|
assert sorted(resp["data"].keys()) == sorted(TokenSchema().views["admin"])
|
||||||
|
|
||||||
gen_user(app.db, name="user2", email="user2@ctfd.io")
|
gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
with login_as_user(app, "user2") as client:
|
with login_as_user(app, "user2") as client:
|
||||||
r = client.get("/api/v1/tokens/1", json="")
|
r = client.get("/api/v1/tokens/1", json="")
|
||||||
assert r.status_code == 404
|
assert r.status_code == 404
|
||||||
@@ -114,7 +114,7 @@ def test_api_token_delete():
|
|||||||
token = generate_user_token(first_user)
|
token = generate_user_token(first_user)
|
||||||
token_id = token.id
|
token_id = token.id
|
||||||
# Second user
|
# Second user
|
||||||
second_user = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
second_user = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
username2 = second_user.name
|
username2 = second_user.name
|
||||||
with login_as_user(app, username2) as client:
|
with login_as_user(app, username2) as client:
|
||||||
r = client.delete("/api/v1/tokens/" + str(token_id), json="")
|
r = client.delete("/api/v1/tokens/" + str(token_id), json="")
|
||||||
|
|||||||
@@ -144,7 +144,11 @@ def test_api_users_post_admin_duplicate_information():
|
|||||||
# Duplicate email
|
# Duplicate email
|
||||||
r = client.post(
|
r = client.post(
|
||||||
"/api/v1/users",
|
"/api/v1/users",
|
||||||
json={"name": "user2", "email": "user@ctfd.io", "password": "password"},
|
json={
|
||||||
|
"name": "user2",
|
||||||
|
"email": "user@examplectf.com",
|
||||||
|
"password": "password",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
@@ -155,7 +159,11 @@ def test_api_users_post_admin_duplicate_information():
|
|||||||
# Duplicate user
|
# Duplicate user
|
||||||
r = client.post(
|
r = client.post(
|
||||||
"/api/v1/users",
|
"/api/v1/users",
|
||||||
json={"name": "user", "email": "user2@ctfd.io", "password": "password"},
|
json={
|
||||||
|
"name": "user",
|
||||||
|
"email": "user2@examplectf.com",
|
||||||
|
"password": "password",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
@@ -169,13 +177,21 @@ def test_api_users_patch_admin_duplicate_information():
|
|||||||
"""Can an admin modify a user with duplicate information"""
|
"""Can an admin modify a user with duplicate information"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io", password="password")
|
register_user(
|
||||||
register_user(app, name="user2", email="user2@ctfd.io", password="password")
|
app, name="user1", email="user1@examplectf.com", password="password"
|
||||||
|
)
|
||||||
|
register_user(
|
||||||
|
app, name="user2", email="user2@examplectf.com", password="password"
|
||||||
|
)
|
||||||
with login_as_user(app, "admin") as client:
|
with login_as_user(app, "admin") as client:
|
||||||
# Duplicate name
|
# Duplicate name
|
||||||
r = client.patch(
|
r = client.patch(
|
||||||
"/api/v1/users/1",
|
"/api/v1/users/1",
|
||||||
json={"name": "user2", "email": "user@ctfd.io", "password": "password"},
|
json={
|
||||||
|
"name": "user2",
|
||||||
|
"email": "user@examplectf.com",
|
||||||
|
"password": "password",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
@@ -185,7 +201,11 @@ def test_api_users_patch_admin_duplicate_information():
|
|||||||
# Duplicate email
|
# Duplicate email
|
||||||
r = client.patch(
|
r = client.patch(
|
||||||
"/api/v1/users/1",
|
"/api/v1/users/1",
|
||||||
json={"name": "user", "email": "user2@ctfd.io", "password": "password"},
|
json={
|
||||||
|
"name": "user",
|
||||||
|
"email": "user2@examplectf.com",
|
||||||
|
"password": "password",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
@@ -199,13 +219,21 @@ def test_api_users_patch_duplicate_information():
|
|||||||
"""Can a user modify their information to another user's"""
|
"""Can a user modify their information to another user's"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io", password="password")
|
register_user(
|
||||||
register_user(app, name="user2", email="user2@ctfd.io", password="password")
|
app, name="user1", email="user1@examplectf.com", password="password"
|
||||||
|
)
|
||||||
|
register_user(
|
||||||
|
app, name="user2", email="user2@examplectf.com", password="password"
|
||||||
|
)
|
||||||
with login_as_user(app, "user1") as client:
|
with login_as_user(app, "user1") as client:
|
||||||
# Duplicate email
|
# Duplicate email
|
||||||
r = client.patch(
|
r = client.patch(
|
||||||
"/api/v1/users/me",
|
"/api/v1/users/me",
|
||||||
json={"name": "user1", "email": "user2@ctfd.io", "confirm": "password"},
|
json={
|
||||||
|
"name": "user1",
|
||||||
|
"email": "user2@examplectf.com",
|
||||||
|
"confirm": "password",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
@@ -215,7 +243,11 @@ def test_api_users_patch_duplicate_information():
|
|||||||
# Duplicate user
|
# Duplicate user
|
||||||
r = client.patch(
|
r = client.patch(
|
||||||
"/api/v1/users/me",
|
"/api/v1/users/me",
|
||||||
json={"name": "user2", "email": "user1@ctfd.io", "confirm": "password"},
|
json={
|
||||||
|
"name": "user2",
|
||||||
|
"email": "user1@examplectf.com",
|
||||||
|
"confirm": "password",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
resp = r.get_json()
|
resp = r.get_json()
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
@@ -301,7 +333,7 @@ def test_api_user_patch_admin():
|
|||||||
"/api/v1/users/2",
|
"/api/v1/users/2",
|
||||||
json={
|
json={
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
"verified": True,
|
"verified": True,
|
||||||
@@ -381,7 +413,7 @@ def test_api_user_patch_me_logged_in():
|
|||||||
"/api/v1/users/me",
|
"/api/v1/users/me",
|
||||||
json={
|
json={
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"confirm": "password",
|
"confirm": "password",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
@@ -401,7 +433,7 @@ def test_api_admin_user_patch_me_logged_in():
|
|||||||
"/api/v1/users/me",
|
"/api/v1/users/me",
|
||||||
json={
|
json={
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"confirm": "password",
|
"confirm": "password",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
@@ -412,7 +444,7 @@ def test_api_admin_user_patch_me_logged_in():
|
|||||||
|
|
||||||
user = Users.query.filter_by(id=1).first()
|
user = Users.query.filter_by(id=1).first()
|
||||||
assert user.name == "user"
|
assert user.name == "user"
|
||||||
assert user.email == "user@ctfd.io"
|
assert user.email == "user@examplectf.com"
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|
||||||
|
|
||||||
@@ -571,8 +603,8 @@ def test_api_user_get_solves_after_freze_time():
|
|||||||
"""Can a user get /api/v1/users/<user_id>/solves after freeze time"""
|
"""Can a user get /api/v1/users/<user_id>/solves after freeze time"""
|
||||||
app = create_ctfd(user_mode="users")
|
app = create_ctfd(user_mode="users")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
|
|
||||||
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
||||||
set_config("freeze", "1507262400")
|
set_config("freeze", "1507262400")
|
||||||
@@ -646,8 +678,8 @@ def test_api_user_get_fails_after_freze_time():
|
|||||||
"""Can a user get /api/v1/users/<user_id>/fails after freeze time"""
|
"""Can a user get /api/v1/users/<user_id>/fails after freeze time"""
|
||||||
app = create_ctfd(user_mode="users")
|
app = create_ctfd(user_mode="users")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
|
|
||||||
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
||||||
set_config("freeze", "1507262400")
|
set_config("freeze", "1507262400")
|
||||||
@@ -718,8 +750,8 @@ def test_api_user_get_awards_after_freze_time():
|
|||||||
"""Can a user get /api/v1/users/<user_id>/awards after freeze time"""
|
"""Can a user get /api/v1/users/<user_id>/awards after freeze time"""
|
||||||
app = create_ctfd(user_mode="users")
|
app = create_ctfd(user_mode="users")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
|
|
||||||
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
# Friday, October 6, 2017 12:00:00 AM GMT-04:00 DST
|
||||||
set_config("freeze", "1507262400")
|
set_config("freeze", "1507262400")
|
||||||
@@ -757,8 +789,10 @@ def test_api_accessing_hidden_users():
|
|||||||
"""Hidden users should not be visible to normal users, only to admins"""
|
"""Hidden users should not be visible to normal users, only to admins"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="visible_user", email="visible_user@ctfd.io")
|
register_user(app, name="visible_user", email="visible_user@examplectf.com")
|
||||||
register_user(app, name="hidden_user", email="hidden_user@ctfd.io") # ID 3
|
register_user(
|
||||||
|
app, name="hidden_user", email="hidden_user@examplectf.com"
|
||||||
|
) # ID 3
|
||||||
user = Users.query.filter_by(name="hidden_user").first()
|
user = Users.query.filter_by(name="hidden_user").first()
|
||||||
user.hidden = True
|
user.hidden = True
|
||||||
app.db.session.commit()
|
app.db.session.commit()
|
||||||
@@ -788,8 +822,10 @@ def test_api_accessing_banned_users():
|
|||||||
"""Banned users should not be visible to normal users, only to admins"""
|
"""Banned users should not be visible to normal users, only to admins"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="visible_user", email="visible_user@ctfd.io")
|
register_user(app, name="visible_user", email="visible_user@examplectf.com")
|
||||||
register_user(app, name="banned_user", email="banned_user@ctfd.io") # ID 3
|
register_user(
|
||||||
|
app, name="banned_user", email="banned_user@examplectf.com"
|
||||||
|
) # ID 3
|
||||||
user = Users.query.filter_by(name="banned_user").first()
|
user = Users.query.filter_by(name="banned_user").first()
|
||||||
user.banned = True
|
user.banned = True
|
||||||
app.db.session.commit()
|
app.db.session.commit()
|
||||||
@@ -866,8 +902,8 @@ def test_api_user_get_schema():
|
|||||||
"""Can a user get /api/v1/users/<user_id> doesn't return unnecessary data"""
|
"""Can a user get /api/v1/users/<user_id> doesn't return unnecessary data"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io") # ID 2
|
register_user(app, name="user1", email="user1@examplectf.com") # ID 2
|
||||||
register_user(app, name="user2", email="user2@ctfd.io") # ID 3
|
register_user(app, name="user2", email="user2@examplectf.com") # ID 3
|
||||||
|
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
r = client.get("/api/v1/users/3")
|
r = client.get("/api/v1/users/3")
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ def test_api_challenge_list_verified_emails():
|
|||||||
gen_user(
|
gen_user(
|
||||||
app.db,
|
app.db,
|
||||||
name="user_name",
|
name="user_name",
|
||||||
email="verified_user@ctfd.io",
|
email="verified_user@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
verified=True,
|
verified=True,
|
||||||
)
|
)
|
||||||
@@ -209,7 +209,7 @@ def test_api_challenge_verified_emails():
|
|||||||
gen_user(
|
gen_user(
|
||||||
app.db,
|
app.db,
|
||||||
name="user_name",
|
name="user_name",
|
||||||
email="verified_user@ctfd.io",
|
email="verified_user@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
verified=True,
|
verified=True,
|
||||||
)
|
)
|
||||||
@@ -333,7 +333,7 @@ def test_api_challenge_solves_verified_emails():
|
|||||||
gen_user(
|
gen_user(
|
||||||
app.db,
|
app.db,
|
||||||
name="user_name",
|
name="user_name",
|
||||||
email="verified_user@ctfd.io",
|
email="verified_user@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
verified=True,
|
verified=True,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ def test_users_dont_prevent_other_users_from_unlocking_hints():
|
|||||||
chal = gen_challenge(app.db)
|
chal = gen_challenge(app.db)
|
||||||
gen_hint(app.db, chal.id, content="This is a hint", cost=1, type="standard")
|
gen_hint(app.db, chal.id, content="This is a hint", cost=1, type="standard")
|
||||||
register_user(app)
|
register_user(app)
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
|
|
||||||
# Give users points with an award
|
# Give users points with an award
|
||||||
gen_award(app.db, user_id=2)
|
gen_award(app.db, user_id=2)
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ def test_dynamic_challenge_loses_value_properly():
|
|||||||
|
|
||||||
for i, team_id in enumerate(range(2, 26)):
|
for i, team_id in enumerate(range(2, 26)):
|
||||||
name = "user{}".format(team_id)
|
name = "user{}".format(team_id)
|
||||||
email = "user{}@ctfd.io".format(team_id)
|
email = "user{}@examplectf.com".format(team_id)
|
||||||
# We need to bypass rate-limiting so gen_user instead of register_user
|
# We need to bypass rate-limiting so gen_user instead of register_user
|
||||||
user = gen_user(app.db, name=name, email=email)
|
user = gen_user(app.db, name=name, email=email)
|
||||||
user_id = user.id
|
user_id = user.id
|
||||||
@@ -295,7 +295,7 @@ def test_dynamic_challenge_value_isnt_affected_by_hidden_users():
|
|||||||
# Make solves as hidden users. Also should not affect value
|
# Make solves as hidden users. Also should not affect value
|
||||||
for i, team_id in enumerate(range(2, 26)):
|
for i, team_id in enumerate(range(2, 26)):
|
||||||
name = "user{}".format(team_id)
|
name = "user{}".format(team_id)
|
||||||
email = "user{}@ctfd.io".format(team_id)
|
email = "user{}@examplectf.com".format(team_id)
|
||||||
# We need to bypass rate-limiting so gen_user instead of register_user
|
# We need to bypass rate-limiting so gen_user instead of register_user
|
||||||
user = gen_user(app.db, name=name, email=email)
|
user = gen_user(app.db, name=name, email=email)
|
||||||
user.hidden = True
|
user.hidden = True
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ def create_ctfd(
|
|||||||
ctf_name="CTFd",
|
ctf_name="CTFd",
|
||||||
ctf_description="CTF description",
|
ctf_description="CTF description",
|
||||||
name="admin",
|
name="admin",
|
||||||
email="admin@ctfd.io",
|
email="admin@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
user_mode="users",
|
user_mode="users",
|
||||||
setup=True,
|
setup=True,
|
||||||
@@ -105,7 +105,7 @@ def setup_ctfd(
|
|||||||
ctf_name="CTFd",
|
ctf_name="CTFd",
|
||||||
ctf_description="CTF description",
|
ctf_description="CTF description",
|
||||||
name="admin",
|
name="admin",
|
||||||
email="admin@ctfd.io",
|
email="admin@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
user_mode="users",
|
user_mode="users",
|
||||||
):
|
):
|
||||||
@@ -134,7 +134,11 @@ def destroy_ctfd(app):
|
|||||||
|
|
||||||
|
|
||||||
def register_user(
|
def register_user(
|
||||||
app, name="user", email="user@ctfd.io", password="password", raise_for_error=True
|
app,
|
||||||
|
name="user",
|
||||||
|
email="user@examplectf.com",
|
||||||
|
password="password",
|
||||||
|
raise_for_error=True,
|
||||||
):
|
):
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
@@ -185,7 +189,7 @@ def login_with_mlc(
|
|||||||
app,
|
app,
|
||||||
name="user",
|
name="user",
|
||||||
scope="profile%20team",
|
scope="profile%20team",
|
||||||
email="user@ctfd.io",
|
email="user@examplectf.com",
|
||||||
oauth_id=1337,
|
oauth_id=1337,
|
||||||
team_name="TestTeam",
|
team_name="TestTeam",
|
||||||
team_oauth_id=1234,
|
team_oauth_id=1234,
|
||||||
@@ -315,7 +319,9 @@ def gen_flag(db, challenge_id, content="flag", type="static", data=None, **kwarg
|
|||||||
return flag
|
return flag
|
||||||
|
|
||||||
|
|
||||||
def gen_user(db, name="user_name", email="user@ctfd.io", password="password", **kwargs):
|
def gen_user(
|
||||||
|
db, name="user_name", email="user@examplectf.com", password="password", **kwargs
|
||||||
|
):
|
||||||
user = Users(name=name, email=email, password=password, **kwargs)
|
user = Users(name=name, email=email, password=password, **kwargs)
|
||||||
db.session.add(user)
|
db.session.add(user)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
@@ -325,7 +331,7 @@ def gen_user(db, name="user_name", email="user@ctfd.io", password="password", **
|
|||||||
def gen_team(
|
def gen_team(
|
||||||
db,
|
db,
|
||||||
name="team_name",
|
name="team_name",
|
||||||
email="team@ctfd.io",
|
email="team@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
member_count=4,
|
member_count=4,
|
||||||
**kwargs
|
**kwargs
|
||||||
@@ -333,7 +339,7 @@ def gen_team(
|
|||||||
team = Teams(name=name, email=email, password=password, **kwargs)
|
team = Teams(name=name, email=email, password=password, **kwargs)
|
||||||
for i in range(member_count):
|
for i in range(member_count):
|
||||||
name = "user-{}-{}".format(random_string(), str(i))
|
name = "user-{}-{}".format(random_string(), str(i))
|
||||||
user = gen_user(db, name=name, email=name + "@ctfd.io", team_id=team.id)
|
user = gen_user(db, name=name, email=name + "@examplectf.com", team_id=team.id)
|
||||||
if i == 0:
|
if i == 0:
|
||||||
team.captain_id = user.id
|
team.captain_id = user.id
|
||||||
team.members.append(user)
|
team.members.append(user)
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ def test_oauth_configured_flow():
|
|||||||
|
|
||||||
# Users should be able to register now
|
# Users should be able to register now
|
||||||
assert Users.query.count() == 2
|
assert Users.query.count() == 2
|
||||||
user = Users.query.filter_by(email="user@ctfd.io").first()
|
user = Users.query.filter_by(email="user@examplectf.com").first()
|
||||||
assert user.oauth_id == 1337
|
assert user.oauth_id == 1337
|
||||||
assert user.team_id == 1
|
assert user.team_id == 1
|
||||||
|
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ def test_teams_join_when_already_on_team():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
gen_user(app.db, name="user")
|
gen_user(app.db, name="user")
|
||||||
gen_team(app.db, email="team1@ctfd.io", name="team1")
|
gen_team(app.db, email="team1@examplectf.com", name="team1")
|
||||||
gen_team(app.db, email="team2@ctfd.io", name="team2")
|
gen_team(app.db, email="team2@examplectf.com", name="team2")
|
||||||
with login_as_user(app) as client:
|
with login_as_user(app) as client:
|
||||||
r = client.get("/teams/join")
|
r = client.get("/teams/join")
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ def test_challenge_team_submit():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
user = gen_user(app.db)
|
user = gen_user(app.db)
|
||||||
second_user = gen_user(app.db, name="user", email="second@ctfd.io")
|
second_user = gen_user(app.db, name="user", email="second@examplectf.com")
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
second_user.team_id = team.id
|
second_user.team_id = team.id
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ from tests.helpers import (
|
|||||||
|
|
||||||
|
|
||||||
def setup_app(app):
|
def setup_app(app):
|
||||||
user1 = gen_user(app.db, name="user1", email="user1@ctfd.io")
|
user1 = gen_user(app.db, name="user1", email="user1@examplectf.com")
|
||||||
team1 = gen_team(app.db, name="team1", email="team1@ctfd.io")
|
team1 = gen_team(app.db, name="team1", email="team1@examplectf.com")
|
||||||
user1.team_id = team1.id
|
user1.team_id = team1.id
|
||||||
team1.members.append(user1)
|
team1.members.append(user1)
|
||||||
team1.hidden = True
|
team1.hidden = True
|
||||||
|
|
||||||
user2 = gen_user(app.db, name="user2", email="user2@ctfd.io")
|
user2 = gen_user(app.db, name="user2", email="user2@examplectf.com")
|
||||||
team2 = gen_team(app.db, name="team2", email="team2@ctfd.io")
|
team2 = gen_team(app.db, name="team2", email="team2@examplectf.com")
|
||||||
user2.team_id = team2.id
|
user2.team_id = team2.id
|
||||||
team2.members.append(user2)
|
team2.members.append(user2)
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ def test_hint_team_unlock():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
user = gen_user(app.db)
|
user = gen_user(app.db)
|
||||||
second_user = gen_user(app.db, name="user", email="second@ctfd.io")
|
second_user = gen_user(app.db, name="user", email="second@examplectf.com")
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
second_user.team_id = team.id
|
second_user.team_id = team.id
|
||||||
@@ -75,7 +75,7 @@ def test_hint_team_unlocking_without_points():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
user = gen_user(app.db)
|
user = gen_user(app.db)
|
||||||
second_user = gen_user(app.db, name="user", email="second@ctfd.io")
|
second_user = gen_user(app.db, name="user", email="second@examplectf.com")
|
||||||
team = gen_team(app.db)
|
team = gen_team(app.db)
|
||||||
user.team_id = team.id
|
user.team_id = team.id
|
||||||
second_user.team_id = team.id
|
second_user.team_id = team.id
|
||||||
@@ -106,8 +106,8 @@ def test_teams_dont_prevent_other_teams_from_unlocking_hints():
|
|||||||
chal = gen_challenge(app.db)
|
chal = gen_challenge(app.db)
|
||||||
gen_hint(app.db, chal.id, content="This is a hint", cost=1, type="standard")
|
gen_hint(app.db, chal.id, content="This is a hint", cost=1, type="standard")
|
||||||
|
|
||||||
team1 = gen_team(app.db, name="team1", email="team1@ctfd.io")
|
team1 = gen_team(app.db, name="team1", email="team1@examplectf.com")
|
||||||
team2 = gen_team(app.db, name="team2", email="team2@ctfd.io")
|
team2 = gen_team(app.db, name="team2", email="team2@examplectf.com")
|
||||||
|
|
||||||
# Give users points with an award
|
# Give users points with an award
|
||||||
gen_award(app.db, user_id=team1.captain_id)
|
gen_award(app.db, user_id=team1.captain_id)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from tests.helpers import create_ctfd, destroy_ctfd, gen_team, gen_user, login_a
|
|||||||
def test_team_invite_codes():
|
def test_team_invite_codes():
|
||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
team1 = gen_team(app.db, name="team1", email="team1@ctfd.io")
|
team1 = gen_team(app.db, name="team1", email="team1@examplectf.com")
|
||||||
with freeze_time("2017-10-7 00:00:00"):
|
with freeze_time("2017-10-7 00:00:00"):
|
||||||
invite_code = team1.get_invite_code()
|
invite_code = team1.get_invite_code()
|
||||||
team = Teams.load_invite_code(invite_code)
|
team = Teams.load_invite_code(invite_code)
|
||||||
@@ -45,7 +45,7 @@ def test_team_invite_codes():
|
|||||||
def test_api_user_facing_invite_tokens():
|
def test_api_user_facing_invite_tokens():
|
||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
team1 = gen_team(app.db, name="team1", email="team1@ctfd.io")
|
team1 = gen_team(app.db, name="team1", email="team1@examplectf.com")
|
||||||
user = team1.captain
|
user = team1.captain
|
||||||
with login_as_user(app, name=user.name) as captain:
|
with login_as_user(app, name=user.name) as captain:
|
||||||
r = captain.post("/api/v1/teams/me/members", json="")
|
r = captain.post("/api/v1/teams/me/members", json="")
|
||||||
@@ -67,7 +67,7 @@ def test_api_user_facing_invite_tokens():
|
|||||||
|
|
||||||
# Test team size limits
|
# Test team size limits
|
||||||
set_config("team_size", 1)
|
set_config("team_size", 1)
|
||||||
new_user2 = gen_user(app.db, name="new_user2", email="new_user2@ctfd.io")
|
new_user2 = gen_user(app.db, name="new_user2", email="new_user2@examplectf.com")
|
||||||
with login_as_user(app, name=new_user2.name) as user:
|
with login_as_user(app, name=new_user2.name) as user:
|
||||||
url = f"/teams/invite?code={invite_code}"
|
url = f"/teams/invite?code={invite_code}"
|
||||||
user.get(url)
|
user.get(url)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ def test_accessing_hidden_teams():
|
|||||||
app = create_ctfd(user_mode="teams")
|
app = create_ctfd(user_mode="teams")
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app)
|
register_user(app)
|
||||||
register_user(app, name="visible_user", email="visible_user@ctfd.io")
|
register_user(app, name="visible_user", email="visible_user@examplectf.com")
|
||||||
with login_as_user(app, name="visible_user") as client:
|
with login_as_user(app, name="visible_user") as client:
|
||||||
user = Users.query.filter_by(id=2).first()
|
user = Users.query.filter_by(id=2).first()
|
||||||
team = gen_team(app.db, name="visible_team", hidden=True)
|
team = gen_team(app.db, name="visible_team", hidden=True)
|
||||||
|
|||||||
@@ -78,12 +78,12 @@ def test_register_plugin_script():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_plugin_script("/fake/script/path.js")
|
register_plugin_script("/fake/script/path.js")
|
||||||
register_plugin_script("http://ctfd.io/fake/script/path.js")
|
register_plugin_script("http://examplectf.com/fake/script/path.js")
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
r = client.get("/")
|
r = client.get("/")
|
||||||
output = r.get_data(as_text=True)
|
output = r.get_data(as_text=True)
|
||||||
assert "/fake/script/path.js" in output
|
assert "/fake/script/path.js" in output
|
||||||
assert "http://ctfd.io/fake/script/path.js" in output
|
assert "http://examplectf.com/fake/script/path.js" in output
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|
||||||
|
|
||||||
@@ -92,12 +92,12 @@ def test_register_plugin_stylesheet():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_plugin_script("/fake/stylesheet/path.css")
|
register_plugin_script("/fake/stylesheet/path.css")
|
||||||
register_plugin_script("http://ctfd.io/fake/stylesheet/path.css")
|
register_plugin_script("http://examplectf.com/fake/stylesheet/path.css")
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
r = client.get("/")
|
r = client.get("/")
|
||||||
output = r.get_data(as_text=True)
|
output = r.get_data(as_text=True)
|
||||||
assert "/fake/stylesheet/path.css" in output
|
assert "/fake/stylesheet/path.css" in output
|
||||||
assert "http://ctfd.io/fake/stylesheet/path.css" in output
|
assert "http://examplectf.com/fake/stylesheet/path.css" in output
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|
||||||
|
|
||||||
@@ -106,12 +106,12 @@ def test_register_admin_plugin_script():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_admin_plugin_script("/fake/script/path.js")
|
register_admin_plugin_script("/fake/script/path.js")
|
||||||
register_admin_plugin_script("http://ctfd.io/fake/script/path.js")
|
register_admin_plugin_script("http://examplectf.com/fake/script/path.js")
|
||||||
with login_as_user(app, name="admin") as client:
|
with login_as_user(app, name="admin") as client:
|
||||||
r = client.get("/admin/statistics")
|
r = client.get("/admin/statistics")
|
||||||
output = r.get_data(as_text=True)
|
output = r.get_data(as_text=True)
|
||||||
assert "/fake/script/path.js" in output
|
assert "/fake/script/path.js" in output
|
||||||
assert "http://ctfd.io/fake/script/path.js" in output
|
assert "http://examplectf.com/fake/script/path.js" in output
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|
||||||
|
|
||||||
@@ -120,12 +120,14 @@ def test_register_admin_plugin_stylesheet():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_admin_plugin_stylesheet("/fake/stylesheet/path.css")
|
register_admin_plugin_stylesheet("/fake/stylesheet/path.css")
|
||||||
register_admin_plugin_stylesheet("http://ctfd.io/fake/stylesheet/path.css")
|
register_admin_plugin_stylesheet(
|
||||||
|
"http://examplectf.com/fake/stylesheet/path.css"
|
||||||
|
)
|
||||||
with login_as_user(app, name="admin") as client:
|
with login_as_user(app, name="admin") as client:
|
||||||
r = client.get("/admin/statistics")
|
r = client.get("/admin/statistics")
|
||||||
output = r.get_data(as_text=True)
|
output = r.get_data(as_text=True)
|
||||||
assert "/fake/stylesheet/path.css" in output
|
assert "/fake/stylesheet/path.css" in output
|
||||||
assert "http://ctfd.io/fake/stylesheet/path.css" in output
|
assert "http://examplectf.com/fake/stylesheet/path.css" in output
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ def test_that_ctfd_can_be_deployed_in_subdir():
|
|||||||
"ctf_name": "CTFd",
|
"ctf_name": "CTFd",
|
||||||
"ctf_description": "CTF description",
|
"ctf_description": "CTF description",
|
||||||
"name": "admin",
|
"name": "admin",
|
||||||
"email": "admin@ctfd.io",
|
"email": "admin@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"user_mode": "users",
|
"user_mode": "users",
|
||||||
"nonce": sess.get("nonce"),
|
"nonce": sess.get("nonce"),
|
||||||
|
|||||||
@@ -39,21 +39,21 @@ def test_register_duplicate_username():
|
|||||||
register_user(
|
register_user(
|
||||||
app,
|
app,
|
||||||
name="user1",
|
name="user1",
|
||||||
email="user1@ctfd.io",
|
email="user1@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
raise_for_error=False,
|
raise_for_error=False,
|
||||||
)
|
)
|
||||||
register_user(
|
register_user(
|
||||||
app,
|
app,
|
||||||
name="user1",
|
name="user1",
|
||||||
email="user2@ctfd.io",
|
email="user2@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
raise_for_error=False,
|
raise_for_error=False,
|
||||||
)
|
)
|
||||||
register_user(
|
register_user(
|
||||||
app,
|
app,
|
||||||
name="admin ",
|
name="admin ",
|
||||||
email="admin2@ctfd.io",
|
email="admin2@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
raise_for_error=False,
|
raise_for_error=False,
|
||||||
)
|
)
|
||||||
@@ -69,14 +69,14 @@ def test_register_duplicate_email():
|
|||||||
register_user(
|
register_user(
|
||||||
app,
|
app,
|
||||||
name="user1",
|
name="user1",
|
||||||
email="user1@ctfd.io",
|
email="user1@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
raise_for_error=False,
|
raise_for_error=False,
|
||||||
)
|
)
|
||||||
register_user(
|
register_user(
|
||||||
app,
|
app,
|
||||||
name="user2",
|
name="user2",
|
||||||
email="user1@ctfd.io",
|
email="user1@examplectf.com",
|
||||||
password="password",
|
password="password",
|
||||||
raise_for_error=False,
|
raise_for_error=False,
|
||||||
)
|
)
|
||||||
@@ -144,7 +144,7 @@ def test_user_login_with_email():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app)
|
register_user(app)
|
||||||
client = login_as_user(app, name="user@ctfd.io", password="password")
|
client = login_as_user(app, name="user@examplectf.com", password="password")
|
||||||
r = client.get("/profile")
|
r = client.get("/profile")
|
||||||
assert (
|
assert (
|
||||||
r.location != "http://localhost/login"
|
r.location != "http://localhost/login"
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ def test_viewing_challenge():
|
|||||||
# # Generate 5 users
|
# # Generate 5 users
|
||||||
# for c in range(1, 6):
|
# for c in range(1, 6):
|
||||||
# name = "user{}".format(c)
|
# name = "user{}".format(c)
|
||||||
# email = "user{}@ctfd.io".format(c)
|
# email = "user{}@examplectf.com".format(c)
|
||||||
# register_user(app, name=name, email=email, password="password")
|
# register_user(app, name=name, email=email, password="password")
|
||||||
#
|
#
|
||||||
# # Generate 5 challenges
|
# # Generate 5 challenges
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ def test_fields_required_on_register():
|
|||||||
with client.session_transaction() as sess:
|
with client.session_transaction() as sess:
|
||||||
data = {
|
data = {
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"nonce": sess.get("nonce"),
|
"nonce": sess.get("nonce"),
|
||||||
}
|
}
|
||||||
@@ -73,7 +73,7 @@ def test_fields_required_on_register():
|
|||||||
with client.session_transaction() as sess:
|
with client.session_transaction() as sess:
|
||||||
data = {
|
data = {
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"fields[1]": "custom_field_value",
|
"fields[1]": "custom_field_value",
|
||||||
"nonce": sess.get("nonce"),
|
"nonce": sess.get("nonce"),
|
||||||
@@ -178,7 +178,7 @@ def test_boolean_checkbox_field():
|
|||||||
with client.session_transaction() as sess:
|
with client.session_transaction() as sess:
|
||||||
data = {
|
data = {
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"nonce": sess.get("nonce"),
|
"nonce": sess.get("nonce"),
|
||||||
"fields[1]": "y",
|
"fields[1]": "y",
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ def test_user_cannot_unlock_hint():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
with app.test_client():
|
with app.test_client():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
|
|
||||||
chal = gen_challenge(app.db, value=100)
|
chal = gen_challenge(app.db, value=100)
|
||||||
chal_id = chal.id
|
chal_id = chal.id
|
||||||
@@ -47,7 +47,7 @@ def test_user_can_unlock_hint():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
with app.test_client():
|
with app.test_client():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
|
|
||||||
chal = gen_challenge(app.db, value=100)
|
chal = gen_challenge(app.db, value=100)
|
||||||
chal_id = chal.id
|
chal_id = chal.id
|
||||||
|
|||||||
@@ -13,25 +13,25 @@ def test_email_cannot_be_changed_without_password():
|
|||||||
register_user(app)
|
register_user(app)
|
||||||
client = login_as_user(app)
|
client = login_as_user(app)
|
||||||
|
|
||||||
data = {"name": "user", "email": "user2@ctfd.io"}
|
data = {"name": "user", "email": "user2@examplectf.com"}
|
||||||
|
|
||||||
r = client.patch("/api/v1/users/me", json=data)
|
r = client.patch("/api/v1/users/me", json=data)
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
user = Users.query.filter_by(id=2).first()
|
user = Users.query.filter_by(id=2).first()
|
||||||
assert user.email == "user@ctfd.io"
|
assert user.email == "user@examplectf.com"
|
||||||
|
|
||||||
data = {"name": "user", "email": "user2@ctfd.io", "confirm": "asdf"}
|
data = {"name": "user", "email": "user2@examplectf.com", "confirm": "asdf"}
|
||||||
|
|
||||||
r = client.patch("/api/v1/users/me", json=data)
|
r = client.patch("/api/v1/users/me", json=data)
|
||||||
assert r.status_code == 400
|
assert r.status_code == 400
|
||||||
user = Users.query.filter_by(id=2).first()
|
user = Users.query.filter_by(id=2).first()
|
||||||
assert user.email == "user@ctfd.io"
|
assert user.email == "user@examplectf.com"
|
||||||
|
|
||||||
data = {"name": "user", "email": "user2@ctfd.io", "confirm": "password"}
|
data = {"name": "user", "email": "user2@examplectf.com", "confirm": "password"}
|
||||||
|
|
||||||
r = client.patch("/api/v1/users/me", json=data)
|
r = client.patch("/api/v1/users/me", json=data)
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
user = Users.query.filter_by(id=2).first()
|
user = Users.query.filter_by(id=2).first()
|
||||||
assert user.email == "user2@ctfd.io"
|
assert user.email == "user2@examplectf.com"
|
||||||
assert verify_password(plaintext="password", ciphertext=user.password)
|
assert verify_password(plaintext="password", ciphertext=user.password)
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ def test_user_score_is_correct():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
# create user1
|
# create user1
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
|
|
||||||
# create challenge
|
# create challenge
|
||||||
chal = gen_challenge(app.db, value=100)
|
chal = gen_challenge(app.db, value=100)
|
||||||
@@ -61,7 +61,7 @@ def test_user_score_is_correct():
|
|||||||
assert user1.place == "1st"
|
assert user1.place == "1st"
|
||||||
|
|
||||||
# create user2
|
# create user2
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
|
|
||||||
# user2 solves the challenge
|
# user2 solves the challenge
|
||||||
gen_solve(app.db, 3, challenge_id=chal_id)
|
gen_solve(app.db, 3, challenge_id=chal_id)
|
||||||
@@ -84,8 +84,8 @@ def test_top_10():
|
|||||||
"""Make sure top10 returns correct information"""
|
"""Make sure top10 returns correct information"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io")
|
register_user(app, name="user1", email="user1@examplectf.com")
|
||||||
register_user(app, name="user2", email="user2@ctfd.io")
|
register_user(app, name="user2", email="user2@examplectf.com")
|
||||||
register_user(app)
|
register_user(app)
|
||||||
|
|
||||||
chal1 = gen_challenge(app.db)
|
chal1 = gen_challenge(app.db)
|
||||||
@@ -159,9 +159,13 @@ def test_scoring_logic():
|
|||||||
with app.app_context():
|
with app.app_context():
|
||||||
admin = login_as_user(app, name="admin", password="password")
|
admin = login_as_user(app, name="admin", password="password")
|
||||||
|
|
||||||
register_user(app, name="user1", email="user1@ctfd.io", password="password")
|
register_user(
|
||||||
|
app, name="user1", email="user1@examplectf.com", password="password"
|
||||||
|
)
|
||||||
client1 = login_as_user(app, name="user1", password="password")
|
client1 = login_as_user(app, name="user1", password="password")
|
||||||
register_user(app, name="user2", email="user2@ctfd.io", password="password")
|
register_user(
|
||||||
|
app, name="user2", email="user2@examplectf.com", password="password"
|
||||||
|
)
|
||||||
client2 = login_as_user(app, name="user2", password="password")
|
client2 = login_as_user(app, name="user2", password="password")
|
||||||
|
|
||||||
chal1 = gen_challenge(app.db)
|
chal1 = gen_challenge(app.db)
|
||||||
@@ -214,9 +218,13 @@ def test_scoring_logic_with_zero_point_challenges():
|
|||||||
with app.app_context():
|
with app.app_context():
|
||||||
admin = login_as_user(app, name="admin", password="password")
|
admin = login_as_user(app, name="admin", password="password")
|
||||||
|
|
||||||
register_user(app, name="user1", email="user1@ctfd.io", password="password")
|
register_user(
|
||||||
|
app, name="user1", email="user1@examplectf.com", password="password"
|
||||||
|
)
|
||||||
client1 = login_as_user(app, name="user1", password="password")
|
client1 = login_as_user(app, name="user1", password="password")
|
||||||
register_user(app, name="user2", email="user2@ctfd.io", password="password")
|
register_user(
|
||||||
|
app, name="user2", email="user2@examplectf.com", password="password"
|
||||||
|
)
|
||||||
client2 = login_as_user(app, name="user2", password="password")
|
client2 = login_as_user(app, name="user2", password="password")
|
||||||
|
|
||||||
chal1 = gen_challenge(app.db)
|
chal1 = gen_challenge(app.db)
|
||||||
@@ -281,9 +289,15 @@ def test_scoring_logic_with_zero_point_challenges():
|
|||||||
def test_hidden_users_should_not_influence_scores():
|
def test_hidden_users_should_not_influence_scores():
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io", password="password")
|
register_user(
|
||||||
register_user(app, name="user2", email="user2@ctfd.io", password="password")
|
app, name="user1", email="user1@examplectf.com", password="password"
|
||||||
register_user(app, name="user3", email="user3@ctfd.io", password="password")
|
)
|
||||||
|
register_user(
|
||||||
|
app, name="user2", email="user2@examplectf.com", password="password"
|
||||||
|
)
|
||||||
|
register_user(
|
||||||
|
app, name="user3", email="user3@examplectf.com", password="password"
|
||||||
|
)
|
||||||
|
|
||||||
user = Users.query.filter_by(name="user3").first()
|
user = Users.query.filter_by(name="user3").first()
|
||||||
user.hidden = True
|
user.hidden = True
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ def test_user_set_profile():
|
|||||||
|
|
||||||
data = {
|
data = {
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"confirm": "",
|
"confirm": "",
|
||||||
"password": "",
|
"password": "",
|
||||||
"affiliation": "affiliation_test",
|
"affiliation": "affiliation_test",
|
||||||
"website": "https://ctfd.io",
|
"website": "https://examplectf.com",
|
||||||
"country": "US",
|
"country": "US",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ def test_user_set_profile():
|
|||||||
|
|
||||||
data = {
|
data = {
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"confirm": "",
|
"confirm": "",
|
||||||
"password": "",
|
"password": "",
|
||||||
"affiliation": "",
|
"affiliation": "",
|
||||||
@@ -65,7 +65,7 @@ def test_user_can_change_password():
|
|||||||
|
|
||||||
data = {
|
data = {
|
||||||
"name": "user",
|
"name": "user",
|
||||||
"email": "user@ctfd.io",
|
"email": "user@examplectf.com",
|
||||||
"confirm": "",
|
"confirm": "",
|
||||||
"password": "new_password",
|
"password": "new_password",
|
||||||
"affiliation": "",
|
"affiliation": "",
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ def test_ctfd_setup_verification():
|
|||||||
"ctf_name": "CTFd",
|
"ctf_name": "CTFd",
|
||||||
"ctf_description": "CTF description",
|
"ctf_description": "CTF description",
|
||||||
"name": "test",
|
"name": "test",
|
||||||
"email": "test@ctfd.io",
|
"email": "test@examplectf.com",
|
||||||
"password": "",
|
"password": "",
|
||||||
"user_mode": "users",
|
"user_mode": "users",
|
||||||
"nonce": sess.get("nonce"),
|
"nonce": sess.get("nonce"),
|
||||||
@@ -40,7 +40,7 @@ def test_ctfd_setup_verification():
|
|||||||
r = client.post("/setup", data=data)
|
r = client.post("/setup", data=data)
|
||||||
assert "longer password" in r.get_data(as_text=True)
|
assert "longer password" in r.get_data(as_text=True)
|
||||||
|
|
||||||
gen_user(app.db, name="test", email="test@ctfd.io")
|
gen_user(app.db, name="test", email="test@examplectf.com")
|
||||||
|
|
||||||
data["password"] = "password"
|
data["password"] = "password"
|
||||||
r = client.post("/setup", data=data)
|
r = client.post("/setup", data=data)
|
||||||
@@ -49,7 +49,7 @@ def test_ctfd_setup_verification():
|
|||||||
assert "name is already taken" in resp
|
assert "name is already taken" in resp
|
||||||
|
|
||||||
data["name"] = "admin"
|
data["name"] = "admin"
|
||||||
data["email"] = "admin@ctfd.io"
|
data["email"] = "admin@examplectf.com"
|
||||||
r = client.post("/setup", data=data)
|
r = client.post("/setup", data=data)
|
||||||
assert r.status_code == 302
|
assert r.status_code == 302
|
||||||
assert r.location == "http://localhost/"
|
assert r.location == "http://localhost/"
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ def test_user_get_another_public_solves():
|
|||||||
"""Can a registered user load public solves page of another user"""
|
"""Can a registered user load public solves page of another user"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io") # ID 2
|
register_user(app, name="user1", email="user1@examplectf.com") # ID 2
|
||||||
register_user(app, name="user2", email="user2@ctfd.io") # ID 3
|
register_user(app, name="user2", email="user2@examplectf.com") # ID 3
|
||||||
client = login_as_user(app, name="user2")
|
client = login_as_user(app, name="user2")
|
||||||
r = client.get("/api/v1/users/2/solves")
|
r = client.get("/api/v1/users/2/solves")
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
@@ -63,8 +63,8 @@ def test_user_get_another_public_fails():
|
|||||||
"""Can a registered user load public fails page of another user"""
|
"""Can a registered user load public fails page of another user"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io") # ID 2
|
register_user(app, name="user1", email="user1@examplectf.com") # ID 2
|
||||||
register_user(app, name="user2", email="user2@ctfd.io") # ID 3
|
register_user(app, name="user2", email="user2@examplectf.com") # ID 3
|
||||||
client = login_as_user(app, name="user2")
|
client = login_as_user(app, name="user2")
|
||||||
r = client.get("/api/v1/users/2/fails")
|
r = client.get("/api/v1/users/2/fails")
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
@@ -86,8 +86,8 @@ def test_user_get_another_public_team_page():
|
|||||||
"""Can a registered user load the public profile of another user (/users/1)"""
|
"""Can a registered user load the public profile of another user (/users/1)"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="user1", email="user1@ctfd.io") # ID 2
|
register_user(app, name="user1", email="user1@examplectf.com") # ID 2
|
||||||
register_user(app, name="user2", email="user2@ctfd.io") # ID 3
|
register_user(app, name="user2", email="user2@examplectf.com") # ID 3
|
||||||
client = login_as_user(app, name="user2")
|
client = login_as_user(app, name="user2")
|
||||||
r = client.get("/users/2")
|
r = client.get("/users/2")
|
||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
|
|||||||
@@ -15,9 +15,15 @@ def test_accessing_hidden_users():
|
|||||||
"""Hidden users should not give any data from /users or /api/v1/users"""
|
"""Hidden users should not give any data from /users or /api/v1/users"""
|
||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_user(app, name="visible_user", email="visible_user@ctfd.io") # ID 2
|
register_user(
|
||||||
register_user(app, name="hidden_user", email="hidden_user@ctfd.io") # ID 3
|
app, name="visible_user", email="visible_user@examplectf.com"
|
||||||
register_user(app, name="banned_user", email="banned_user@ctfd.io") # ID 4
|
) # ID 2
|
||||||
|
register_user(
|
||||||
|
app, name="hidden_user", email="hidden_user@examplectf.com"
|
||||||
|
) # ID 3
|
||||||
|
register_user(
|
||||||
|
app, name="banned_user", email="banned_user@examplectf.com"
|
||||||
|
) # ID 4
|
||||||
user = Users.query.filter_by(name="hidden_user").first()
|
user = Users.query.filter_by(name="hidden_user").first()
|
||||||
user.hidden = True
|
user.hidden = True
|
||||||
app.db.session.commit()
|
app.db.session.commit()
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ def test_sendmail_with_mailgun_from_config_file(fake_post_request):
|
|||||||
assert kwargs["data"] == {
|
assert kwargs["data"] == {
|
||||||
"to": ["user@user.com"],
|
"to": ["user@user.com"],
|
||||||
"text": "this is a test",
|
"text": "this is a test",
|
||||||
"from": "CTFd <noreply@ctfd.io>",
|
"from": "CTFd <noreply@examplectf.com>",
|
||||||
"subject": "Message from CTFd",
|
"subject": "Message from CTFd",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ def test_sendmail_with_mailgun_from_db_config(fake_post_request):
|
|||||||
assert kwargs["data"] == {
|
assert kwargs["data"] == {
|
||||||
"to": ["user@user.com"],
|
"to": ["user@user.com"],
|
||||||
"text": "this is a test",
|
"text": "this is a test",
|
||||||
"from": "CTFd <noreply@ctfd.io>",
|
"from": "CTFd <noreply@examplectf.com>",
|
||||||
"subject": "Message from CTFd",
|
"subject": "Message from CTFd",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ def test_base64encode():
|
|||||||
base64encode('"test@mailinator.com".DGxeoA.lCssU3M2QuBfohO-FtdgDQLKbU4')
|
base64encode('"test@mailinator.com".DGxeoA.lCssU3M2QuBfohO-FtdgDQLKbU4')
|
||||||
== "InRlc3RAbWFpbGluYXRvci5jb20iLkRHeGVvQS5sQ3NzVTNNMlF1QmZvaE8tRnRkZ0RRTEtiVTQ"
|
== "InRlc3RAbWFpbGluYXRvci5jb20iLkRHeGVvQS5sQ3NzVTNNMlF1QmZvaE8tRnRkZ0RRTEtiVTQ"
|
||||||
)
|
)
|
||||||
assert base64encode("user+user@ctfd.io") == "dXNlcit1c2VyQGN0ZmQuaW8"
|
assert (
|
||||||
|
base64encode("user+user@examplectf.com") == "dXNlcit1c2VyQGV4YW1wbGVjdGYuY29t"
|
||||||
|
)
|
||||||
assert base64encode("😆") == "8J-Yhg"
|
assert base64encode("😆") == "8J-Yhg"
|
||||||
|
|
||||||
|
|
||||||
@@ -43,5 +45,7 @@ def test_base64decode():
|
|||||||
)
|
)
|
||||||
== '"test@mailinator.com".DGxeoA.lCssU3M2QuBfohO-FtdgDQLKbU4'
|
== '"test@mailinator.com".DGxeoA.lCssU3M2QuBfohO-FtdgDQLKbU4'
|
||||||
)
|
)
|
||||||
assert base64decode("dXNlcit1c2VyQGN0ZmQuaW8") == "user+user@ctfd.io"
|
assert (
|
||||||
|
base64decode("dXNlcit1c2VyQGV4YW1wbGVjdGYuY29t") == "user+user@examplectf.com"
|
||||||
|
)
|
||||||
assert base64decode("8J-Yhg") == "😆"
|
assert base64decode("8J-Yhg") == "😆"
|
||||||
|
|||||||
@@ -60,13 +60,13 @@ def test_import_ctf():
|
|||||||
base_user = "user"
|
base_user = "user"
|
||||||
for x in range(10):
|
for x in range(10):
|
||||||
user = base_user + str(x)
|
user = base_user + str(x)
|
||||||
user_email = user + "@ctfd.io"
|
user_email = user + "@examplectf.com"
|
||||||
gen_user(app.db, name=user, email=user_email)
|
gen_user(app.db, name=user, email=user_email)
|
||||||
|
|
||||||
base_team = "team"
|
base_team = "team"
|
||||||
for x in range(5):
|
for x in range(5):
|
||||||
team = base_team + str(x)
|
team = base_team + str(x)
|
||||||
team_email = team + "@ctfd.io"
|
team_email = team + "@examplectf.com"
|
||||||
gen_team(app.db, name=team, email=team_email)
|
gen_team(app.db, name=team, email=team_email)
|
||||||
|
|
||||||
for x in range(9):
|
for x in range(9):
|
||||||
|
|||||||
@@ -34,12 +34,12 @@ def test_register_plugin_script():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_plugin_script("/fake/script/path.js")
|
register_plugin_script("/fake/script/path.js")
|
||||||
register_plugin_script("http://ctfd.io/fake/script/path.js")
|
register_plugin_script("http://examplectf.com/fake/script/path.js")
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
r = client.get("/")
|
r = client.get("/")
|
||||||
output = r.get_data(as_text=True)
|
output = r.get_data(as_text=True)
|
||||||
assert "/fake/script/path.js" in output
|
assert "/fake/script/path.js" in output
|
||||||
assert "http://ctfd.io/fake/script/path.js" in output
|
assert "http://examplectf.com/fake/script/path.js" in output
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|
||||||
|
|
||||||
@@ -48,10 +48,10 @@ def test_register_plugin_stylesheet():
|
|||||||
app = create_ctfd()
|
app = create_ctfd()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
register_plugin_script("/fake/stylesheet/path.css")
|
register_plugin_script("/fake/stylesheet/path.css")
|
||||||
register_plugin_script("http://ctfd.io/fake/stylesheet/path.css")
|
register_plugin_script("http://examplectf.com/fake/stylesheet/path.css")
|
||||||
with app.test_client() as client:
|
with app.test_client() as client:
|
||||||
r = client.get("/")
|
r = client.get("/")
|
||||||
output = r.get_data(as_text=True)
|
output = r.get_data(as_text=True)
|
||||||
assert "/fake/stylesheet/path.css" in output
|
assert "/fake/stylesheet/path.css" in output
|
||||||
assert "http://ctfd.io/fake/stylesheet/path.css" in output
|
assert "http://examplectf.com/fake/stylesheet/path.css" in output
|
||||||
destroy_ctfd(app)
|
destroy_ctfd(app)
|
||||||
|
|||||||
@@ -14,18 +14,22 @@ def test_validate_country_code():
|
|||||||
|
|
||||||
def test_validate_email():
|
def test_validate_email():
|
||||||
"""Test that the check_email_format() works properly"""
|
"""Test that the check_email_format() works properly"""
|
||||||
assert validate_email("user@ctfd.io") is True
|
assert validate_email("user@examplectf.com") is True
|
||||||
assert validate_email("user+plus@gmail.com") is True
|
assert validate_email("user+plus@gmail.com") is True
|
||||||
assert validate_email("user.period1234@gmail.com") is True
|
assert validate_email("user.period1234@gmail.com") is True
|
||||||
assert validate_email("user.period1234@b.c") is True
|
assert validate_email("user.period1234@b.c") is True
|
||||||
assert validate_email("user.period1234@b") is False
|
assert validate_email("user.period1234@b") is False
|
||||||
assert validate_email("no.ampersand") is False
|
assert validate_email("no.ampersand") is False
|
||||||
assert validate_email("user@") is False
|
assert validate_email("user@") is False
|
||||||
assert validate_email("@ctfd.io") is False
|
assert validate_email("@examplectf.com") is False
|
||||||
assert validate_email("user.io@ctfd") is False
|
assert validate_email("user.io@ctfd") is False
|
||||||
assert validate_email("user\\@ctfd") is False
|
assert validate_email("user\\@ctfd") is False
|
||||||
|
|
||||||
for invalid_email in ["user.@ctfd.io", ".user@ctfd.io", "user@ctfd..io"]:
|
for invalid_email in [
|
||||||
|
"user.@examplectf.com",
|
||||||
|
".user@examplectf.com",
|
||||||
|
"user@ctfd..io",
|
||||||
|
]:
|
||||||
try:
|
try:
|
||||||
assert validate_email(invalid_email) is False
|
assert validate_email(invalid_email) is False
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
|
|||||||
Reference in New Issue
Block a user