def setUp(self):
        self._ob = {
            u'dict': {u'key': Base64String('somestring')},
            u'key': Base64String('string'),
        }
        self._ob_json = \
                '{"dict": {"key": "c29tZXN0cmluZw=="}, "key": "c3RyaW5n"}'

        with open('oioioi/zeus/fixtures/test_zeus_correct.json') as f:
            self._jsons = [f['result'] for f in json.load(f)]
예제 #2
0
    def setUp(self):
        self._ob = {
            u'dict': {u'key': Base64String('somestring')},
            u'key': Base64String('string'),
        }
        self._ob_json = '{"dict": {"key": "c29tZXN0cmluZw=="}, "key": "c3RyaW5n"}'

        with open('oioioi/zeus/fixtures/test_zeus_data.json') as f:
            self._jsons = [f['result'] for f in json.load(f)]

        self._json_base64_decode = lambda v: _json_base64_decode(v, wrap=True)
예제 #3
0
    def test_push_grade(self):
        submission = ProgramSubmission.objects.get()
        problem = Problem.objects.get(id=1)
        problem.controller_name = \
                'oioioi.zeus.tests.ZeusProblemController'
        problem.save()
        ZeusProblemController(problem).judge(submission)
        self.assertEqual(SavedEnviron.objects.count(), 1)

        saved_environ = SavedEnviron.objects.get()
        saved_environ_id = saved_environ.id
        signature = zeus_url_signature(saved_environ_id)

        url = reverse('oioioi.zeus.views.push_grade',
                      kwargs={
                          'saved_environ_id': saved_environ_id,
                          'signature': signature
                      })
        data = {u'compilation_output': Base64String("CE")}
        response = self.client.post(url,
                                    _json_base64_encode(data),
                                    follow=True,
                                    content_type="application/json")
        self.assertEqual(response.status_code, 200)
        submission = ProgramSubmission.objects.get()
        self.assertEqual(submission.status, 'CE')
예제 #4
0
    def test_push_grade(self):
        submission = ProgramSubmission.objects.get()
        problem = Problem.objects.get(id=1)
        problem.controller_name = \
                'oioioi.zeus.controllers.ZeusProblemController'
        problem.save()
        ZeusProblemController(problem).judge(submission)
        self.assertEqual(ZeusAsyncJob.objects.count(), 1)

        job = ZeusAsyncJob.objects.get()
        env = json.loads(job.environ)
        check_uid = env['zeus_check_uids']['INITIAL']
        signature = zeus_url_signature(check_uid)

        url = reverse('oioioi.zeus.views.push_grade',
                      kwargs={
                          'check_uid': check_uid,
                          'signature': signature
                      })
        data = {u'compilation_output': Base64String("CE")}
        response = self.client.post(url,
                                    _json_base64_encode(data),
                                    follow=True,
                                    content_type="application/json")
        self.assertEqual(response.status_code, 200)
        submission = ProgramSubmission.objects.get()
        self.assertEqual(submission.status, 'CE')