예제 #1
0
 def create_submission(self, request):
     token = Token("submission")
     token.solve()
     self.submission_desc = yield self.get_dummy_submission(self.dummyContext["id"])
     handler = self.request(self.submission_desc)
     yield handler.put(token.id)
     returnValue(self.responses[0])
예제 #2
0
 def create_submission(self, request):
     token = Token(1, 'submission')
     token.solve()
     self.submission_desc = yield self.get_dummy_submission(
         self.dummyContext['id'])
     handler = self.request(self.submission_desc)
     response = yield handler.put(token.id)
     returnValue(response['receipt'])
예제 #3
0
    def test_token_reuse_blocked(self):
        token = Token()
        token.solve()
        self.submission_desc = yield self.get_dummy_submission(self.dummyContext["id"])

        handler = self.request(self.submission_desc)
        yield handler.put(token.id)
        yield self.assertFailure(handler.put(token.id), errors.TokenFailure)
예제 #4
0
 def create_submission_with_files(self, request):
     token = Token("submission")
     token.solve()
     yield self.emulate_file_upload(token, 3)
     self.submission_desc = yield self.get_dummy_submission(self.dummyContext["id"])
     handler = self.request(self.submission_desc)
     result = yield handler.put(token.id)
     returnValue(self.responses[0])
예제 #5
0
 def create_submission_with_files(self, request):
     token = Token('submission')
     token.solve()
     yield self.emulate_file_upload(token, 3)
     self.submission_desc = yield self.get_dummy_submission(
         self.dummyContext['id'])
     handler = self.request(self.submission_desc)
     response = yield handler.put(token.id)
     returnValue(response)
    def test_token_reuse_blocked(self):
        token = Token()
        token.solve()
        self.submission_desc = yield self.get_dummy_submission(
            self.dummyContext['id'])

        handler = self.request(self.submission_desc)
        yield handler.put(token.id)
        yield self.assertFailure(handler.put(token.id), errors.TokenFailure)
예제 #7
0
    def test_token_update_wrong_answer(self):
        token = Token('submission')
        token.solve()

        token.human_captcha = {'question': 'XXX', 'answer': 1, 'solved': False}

        token.update({'human_captcha_answer': 0})

        # verify that the challenge is changed
        self.assertNotEqual(token.human_captcha['question'], 'XXX')
예제 #8
0
    def test_token_update_wrong_answer(self):
        token = Token('submission')
        token.solve()

        token.human_captcha = {'question': 'XXX', 'answer': 1, 'solved': False}

        token.update({'human_captcha_answer': 0})

        # verify that the challenge is changed
        self.assertNotEqual(token.human_captcha['question'], 'XXX')
예제 #9
0
    def test_token_update_right_answer(self):
        token = Token('submission')
        token.solve()

        token.human_captcha = {'question': '1 + 0', 'answer': 1, 'solved': False}

        # validate with right value: OK
        self.assertTrue(token.update({'human_captcha_answer': 1}))

        # verify that the challenge is marked as solved
        self.assertTrue(token.human_captcha['solved'])
예제 #10
0
    def test_proof_of_work_right_answer(self):
        token = Token('submission')
        token.solve()

        # Note, this solution works with two '00' at the end, if the
        # difficulty changes, also this dummy value has to.
        token.proof_of_work = {'question': "7GJ4Sl37AEnP10Zk9p7q", 'solved': False}

        # validate with right value: OK
        self.assertTrue(token.update({'proof_of_work_answer': 26}))
        token.use()
예제 #11
0
    def test_proof_of_work_wrong_answer(self):
        token = Token(1, 'submission')
        token.solve()

        # Note, this solution works with two '00' at the end, if the
        # difficulty changes, also this dummy value has to.
        token.proof_of_work = {'question': "7GJ4Sl37AEnP10Zk9p7q", 'solved': False}

        self.assertFalse(token.update({'proof_of_work_answer': 0}))
        # validate with right value: OK
        self.assertRaises(errors.TokenFailure, token.use)
예제 #12
0
    def test_token_update_right_answer(self):
        token = Token('submission')
        token.solve()

        token.human_captcha = {'question': '1 + 0', 'answer': 1, 'solved': False}

        # validate with right value: OK
        self.assertTrue(token.update({'human_captcha_answer': 1}))

        # verify that the challenge is marked as solved
        self.assertTrue(token.human_captcha['solved'])
예제 #13
0
    def test_proof_of_work_right_answer(self):
        token = Token('submission')
        token.solve()

        # Note, this solution works with two '00' at the end, if the
        # difficulty changes, also this dummy value has to.
        token.proof_of_work = {'question': "7GJ4Sl37AEnP10Zk9p7q", 'solved': False}

        # validate with right value: OK
        self.assertTrue(token.update({'proof_of_work_answer': 26}))
        token.use()
예제 #14
0
    def test_token_usage_limit(self):
        token = Token('submission')
        token.solve()

        token.human_captcha = {'question': 'XXX', 'answer': 1, 'solved': False}

        # validate with right value: OK
        token.update({'human_captcha_answer': 1})

        for _ in range(token.MAX_USES-1):
            token.use()

        # validate with right value but with no additional
        # attempts available: FAIL
        self.assertRaises(errors.TokenFailure, token.use)
예제 #15
0
    def test_token_usage_limit(self):
        token = Token('submission')
        token.solve()

        token.human_captcha = {'question': 'XXX', 'answer': 1, 'solved': False}

        # validate with right value: OK
        token.update({'human_captcha_answer': 1})

        for i in range(0, token.MAX_USES-1):
            token.use()

        # validate with right value but with no additional
        # attempts available: FAIL
        self.assertRaises(errors.TokenFailure, token.use)