mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-17 14:04:20 +01:00
Top ten endpoint honors users with the same name (#379)
* Make the /top/10 endpoint honor users with the same name
This commit is contained in:
80
tests/user/test_scoreboard.py
Normal file
80
tests/user/test_scoreboard.py
Normal file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from CTFd.models import Teams, Solves, WrongKeys
|
||||
from CTFd.utils import get_config, set_config
|
||||
from CTFd import utils
|
||||
from tests.helpers import *
|
||||
from freezegun import freeze_time
|
||||
from mock import patch
|
||||
import json
|
||||
|
||||
|
||||
def test_top_10():
|
||||
'''Make sure top10 returns correct information'''
|
||||
app = create_ctfd()
|
||||
with app.app_context():
|
||||
register_user(app, name="user1", email="user1@ctfd.io")
|
||||
register_user(app, name="user2", email="user2@ctfd.io")
|
||||
|
||||
chal1 = gen_challenge(app.db)
|
||||
flag1 = gen_flag(app.db, chal=chal1.id, flag='flag')
|
||||
chal1_id = chal1.id
|
||||
|
||||
chal2 = gen_challenge(app.db)
|
||||
flag2 = gen_flag(app.db, chal=chal2.id, flag='flag')
|
||||
chal2_id = chal2.id
|
||||
|
||||
# Generates solve for user1
|
||||
with freeze_time("2017-10-3 03:21:34"):
|
||||
gen_solve(app.db, teamid=2, chalid=chal1_id)
|
||||
|
||||
with freeze_time("2017-10-4 03:25:45"):
|
||||
gen_solve(app.db, teamid=2, chalid=chal2_id)
|
||||
|
||||
# Generate solve for user2
|
||||
with freeze_time("2017-10-3 03:21:34"):
|
||||
gen_solve(app.db, teamid=3, chalid=chal1_id)
|
||||
|
||||
client = login_as_user(app)
|
||||
r = client.get('/top/10')
|
||||
response = r.get_data(as_text=True)
|
||||
|
||||
saved = '''{
|
||||
"places": {
|
||||
"1": {
|
||||
"id": 2,
|
||||
"name": "user1",
|
||||
"solves": [
|
||||
{
|
||||
"chal": 1,
|
||||
"team": 2,
|
||||
"time": 1507000894,
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"chal": 2,
|
||||
"team": 2,
|
||||
"time": 1507087545,
|
||||
"value": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"id": 3,
|
||||
"name": "user2",
|
||||
"solves": [
|
||||
{
|
||||
"chal": 1,
|
||||
"team": 3,
|
||||
"time": 1507000894,
|
||||
"value": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}'''
|
||||
saved = json.loads(saved)
|
||||
received = json.loads(response)
|
||||
assert saved == received
|
||||
destroy_ctfd(app)
|
||||
Reference in New Issue
Block a user