示例#1
0
    def test_none_school(self):
        user2 = User.objects.get(username='******')

        contest = Contest.objects.get()
        contest.controller_name = "oioioi.oi.controllers.OIContestController"
        contest.save()

        url = reverse('participants_data', kwargs={'contest_id': contest.id})

        perm = ContestPermission(user=user2,
                                 contest=contest,
                                 permission='contests.personal_data')
        perm.save()
        if hasattr(user2, '_contest_perms_cache'):
            delattr(user2, '_contest_perms_cache')

        self.assertTrue(self.client.login(username='******'))

        try:
            self.register(contest)
            p_data = Participant.objects.get(user=user2).registration_model
            p_data.school = None
            p_data.save()

            response = self.client.get(url)
            self.assertEqual(response.status_code, 200)
        finally:
            self.client.logout()
示例#2
0
    def test_none_school(self):
        user2 = User.objects.get(username='******')

        contest = Contest.objects.get()
        contest.controller_name = \
                "oioioi.oi.controllers.OIContestController"
        contest.save()

        url = reverse('participants_data', kwargs={'contest_id': contest.id})

        perm = ContestPermission(user=user2, contest=contest,
                                 permission='contests.personal_data')
        perm.save()
        if hasattr(user2, '_contest_perms_cache'):
            delattr(user2, '_contest_perms_cache')

        self.client.login(username='******')

        try:
            self.register(contest)
            p_data = Participant.objects.get(user=user2).registration_model
            p_data.school = None
            p_data.save()

            response = self.client.get(url)
            self.assertEqual(response.status_code, 200)
        finally:
            self.client.logout()
示例#3
0
文件: utils.py 项目: wczyz/oioioi
def make_user_contest_admin(user, contest):
    cp = ContestPermission()
    cp.user = user
    cp.permission = 'contests.contest_admin'
    cp.contest = contest
    cp.save()

    contest.refresh_from_db()
示例#4
0
文件: tests.py 项目: AdiNar/oioioi
def change_contest_type():
    c = Contest.objects.get(id='c')
    c.controller_name = \
        'oioioi.teachers.controllers.TeacherContestController'
    c.save()

    user = User.objects.get(username='******')
    cp = ContestPermission()
    cp.user = user
    cp.permission = 'contests.contest_admin'
    cp.contest = c
    cp.save()

    return c
示例#5
0
def change_contest_type():
    c = Contest.objects.get(id='c')
    c.controller_name = \
        'oioioi.teachers.controllers.TeacherContestController'
    c.save()

    user = User.objects.get(username='******')
    cp = ContestPermission()
    cp.user = user
    cp.permission = 'contests.contest_admin'
    cp.contest = c
    cp.save()

    return c
示例#6
0
    def test_no_email_data_view(self):
        contest = Contest.objects.get()
        contest.controller_name = \
                'oioioi.participants.tests.ParticipantsContestController'
        contest.save()

        user = User.objects.get(username='******')
        url = reverse('participants_data', kwargs={'contest_id': contest.id})
        perm = ContestPermission(user=user, contest=contest,
                                 permission='contests.personal_data')
        perm.save()
        if hasattr(user, '_contest_perms_cache'):
            delattr(user, '_contest_perms_cache')

        self.assertTrue(self.client.login(username='******'))
        self.register(contest)

        response = self.client.get(url)
        self.assertNotContains(response, '<td>email address</td>')
示例#7
0
    def test_no_email_data_view(self):
        contest = Contest.objects.get()
        contest.controller_name = (
            'oioioi.participants.tests.ParticipantsContestController')
        contest.save()

        user = User.objects.get(username='******')
        url = reverse('participants_data', kwargs={'contest_id': contest.id})
        perm = ContestPermission(user=user,
                                 contest=contest,
                                 permission='contests.personal_data')
        perm.save()
        if hasattr(user, '_contest_perms_cache'):
            delattr(user, '_contest_perms_cache')

        self.assertTrue(self.client.login(username='******'))
        self.register(contest)

        response = self.client.get(url)
        self.assertNotContains(response, '<td>email address</td>')
示例#8
0
    def login(self, get_problems):
        c = Contest.objects.get(id='c')
        c.controller_name = 'oioioi.teachers.controllers.TeacherContestController'
        c.save()

        user = User.objects.get(username='******')
        cp = ContestPermission()
        cp.user = user
        cp.permission = 'contests.contest_admin'
        cp.contest = c
        cp.save()

        self.assertTrue(self.client.login(username='******'))
        self.client.get('/c/c/')

        if get_problems:
            pi = ProblemInstance.objects.filter(contest=c)[0]
            p = pi.problem
            return (pi, p)
        return c
示例#9
0
    def login(self, get_problems):
        c = Contest.objects.get(id='c')
        c.controller_name = \
            'oioioi.teachers.controllers.TeacherContestController'
        c.save()

        user = User.objects.get(username='******')
        cp = ContestPermission()
        cp.user = user
        cp.permission = 'contests.contest_admin'
        cp.contest = c
        cp.save()

        self.assertTrue(self.client.login(username='******'))
        self.client.get('/c/c/')

        if get_problems:
            pi = ProblemInstance.objects.filter(contest=c)[0]
            p = pi.problem
            return (pi, p)
        return c
示例#10
0
    def test_teacher_dashboard_full(self):
        user = User.objects.get(username='******')
        for i in range(10):
            c = Contest()
            c.name = 'tmp' + str(i)
            c.controller_name = \
                'oioioi.teachers.controllers.TeacherContestController'
            c.id = 'tmp' + str(i)
            c.save()

            cp = ContestPermission()
            cp.user = user
            cp.permission = 'contests.contest_admin'
            cp.contest = c
            cp.save()

        self.assertTrue(self.client.login(username='******'))
        url = reverse('teacher_dashboard')
        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'Show all contests')
示例#11
0
文件: tests.py 项目: Kerram/oioioi
    def test_user_dashboard_full(self):
        user = User.objects.get(username='******')
        for i in range(10):
            c = Contest()
            c.name = 'tmp' + str(i)
            c.controller_name = \
                'oioioi.teachers.controllers.TeacherContestController'
            c.id = 'tmp' + str(i)
            c.save()

            cp = ContestPermission()
            cp.user = user
            cp.permission = 'contests.contest_admin'
            cp.contest = c
            cp.save()

        self.assertTrue(self.client.login(username='******'))
        url = reverse('simpleui_user_dashboard')
        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'Show all contests')
示例#12
0
文件: tests.py 项目: cytadela8/oioioi
    def test_data_view(self):
        contest = Contest.objects.get()
        contest.controller_name = \
                "oioioi.oi.controllers.OIContestController"
        contest.save()

        user = User.objects.get(username='******')
        url = reverse('participants_data', kwargs={'contest_id': contest.id})
        self.client.login(username='******')
        try:
            response = self.client.get(url)
            self.assertEqual(response.status_code, 403)

            self.client.logout()
            perm = ContestPermission(user=user,
                                     contest=contest,
                                     permission='contests.personal_data')
            perm.save()
            if hasattr(user, '_contest_perms_cache'):
                delattr(user, '_contest_perms_cache')

            self.client.login(username='******')

            response = self.client.get(url)
            self.assertIn('no participants', response.content)

            self.register(contest)

            response = self.client.get(url)
            self.assertIn('<td>{}</td>'.format(user.id), response.content)
            self.assertIn('<td>The Castle</td>', response.content)
            self.assertIn('<td>31-337</td>', response.content)
            self.assertIn('<td>Camelot</td>', response.content)
            self.assertIn('<td>000-000-000</td>', response.content)
            self.assertIn('<td>1975-05-25</td>', response.content)
            self.assertIn('<td>L</td>', response.content)
        finally:
            self.client.logout()
示例#13
0
    def test_data_view(self):
        contest = Contest.objects.get()
        contest.controller_name = \
                "oioioi.oi.controllers.OIContestController"
        contest.save()

        user = User.objects.get(username='******')
        url = reverse('participants_data', kwargs={'contest_id': contest.id})
        self.assertTrue(self.client.login(username='******'))
        try:
            response = self.client.get(url)
            self.assertEqual(response.status_code, 403)

            self.client.logout()
            perm = ContestPermission(user=user, contest=contest,
                                     permission='contests.personal_data')
            perm.save()
            if hasattr(user, '_contest_perms_cache'):
                delattr(user, '_contest_perms_cache')

            self.assertTrue(self.client.login(username='******'))

            response = self.client.get(url)
            self.assertContains(response, 'no participants')

            self.register(contest)

            response = self.client.get(url)
            self.assertContains(response, '<td>{}</td>'.format(user.id))
            self.assertContains(response, '<td>The Castle</td>')
            self.assertContains(response, '<td>31-337</td>')
            self.assertContains(response, '<td>Camelot</td>')
            self.assertContains(response, '<td>000-000-000</td>')
            self.assertContains(response, '<td>1975-05-25</td>')
            self.assertContains(response, '<td>L</td>')
        finally:
            self.client.logout()