示例#1
0
 def testWrongexam_uid(self):
     try:
         cookieJar = cookielib.CookieJar()
         opener = urllib2.build_opener(
             urllib2.HTTPCookieProcessor(cookieJar))
         createExam(opener)
         url = address + '/api/v1/pool/image/student?exercise_uid=' + ''
         request = urllib2.Request(url)
         content = opener.open(request)
         response_json_data = json.loads(content.read())
         self.assertEqual(200, content.code)
         self.assertEqual(1, response_json_data['code'])
     except Exception, e:
         logger.error(e.message)
         self.fail()
示例#2
0
    def testReadWithoutNumber(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            # 上传图片
            url = address + '/api/v1/pool/image/access?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            accessid = response_json_data['data']['accessid']
            url = response_json_data['data']['host']
            expire = response_json_data['data']['expire']
            signature = response_json_data['data']['signature']
            policy = response_json_data['data']['policy']
            dir = response_json_data['data']['dir']
            filename = uuid.uuid4().hex + '-origin.jpg'
            data = {
                'name': str(filename),
                'key': str(dir) + filename,
                'policy': str(policy),
                'signature': str(signature),
                'OSSAccessKeyId': str(accessid)
            }
            files = {'file': open('test_wrong.jpg', 'rb')}
            resp = requests.post(url, data=data, files=files)
            self.assertEqual(204, resp.status_code)

            time.sleep(1)
            # 开始处理
            url = address + '/api/v1/pool/image/access'
            data = {'uid': filename.split('-')[0], 'exercise_uid': exam_uid}
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertIsNotNone(response_json_data['data']['url'])
            self.assertIsNotNone(response_json_data['data']['id'])

            time.sleep(5)
            # 获取未识别的图片
            url = address + '/api/v1/pool/image/student?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(1, len(response_json_data['data']))
            self.assertEqual(3, response_json_data['data'][0]['status'])
            self.assertIsNotNone(response_json_data['data'][0]['anchors'])
            self.assertIsNotNone(response_json_data['data'][0]['url'])
        except Exception, e:
            logger.error(e.message)
            self.fail()
    def testPictureMissExamUid(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            url = address + '/api/v1/pool/image/access'
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertFalse(0 == response_json_data['code'])
        except Exception, e:
            logger.error(e.message)
            self.fail()
    def testPicture(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            url = address + '/api/v1/pool/image/access?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)

            accessid = response_json_data['data']['accessid']
            url = response_json_data['data']['host']
            expire = response_json_data['data']['expire']
            signature = response_json_data['data']['signature']
            policy = response_json_data['data']['policy']
            dir = response_json_data['data']['dir']

            # register_openers()
            # data = {'name': str(filename), 'key': str(dir) + filename, 'policy': str(policy),
            #         'signature': str(signature), 'OSSAccessKeyId': str(accessid), 'file': open('test.jpg', 'rb')}
            # datagen, headers = multipart_encode(data)
            # request = urllib2.Request(url, datagen, headers)
            # content1 = urllib2.urlopen(request)
            # response_json_data = json.loads(content1.read())
            # self.assertEqual(200, content.code)

            filename = uuid.uuid4().hex + '-origin.jpg'
            data = {
                'name': str(filename),
                'key': str(dir) + filename,
                'policy': str(policy),
                'signature': str(signature),
                'OSSAccessKeyId': str(accessid)
            }
            files = {'file': open('test.jpg', 'rb')}
            resp = requests.post(url, data=data, files=files)
            self.assertEqual(204, resp.status_code)

        except Exception, e:
            logger.error(e.message)
            self.fail()
示例#5
0
    def testWrongExamUid(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            # 班级中创建学生
            url = address + '/api/v1/account/student/batch'
            number = str(time.time()).split('.')[0]
            data = {'group_uid': group_uid,
                    'students': [{'name': '张三', 'number': number}, {'name': '张三', 'number': number + '0'}]}
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])

            # 获取创建学生的id
            url = address + '/api/v1/account/student/list?group_uid=' + group_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(2, len(response_json_data['data']))
            stu_uid = response_json_data['data'][0]['uid']
            stu_uid1 = response_json_data['data'][1]['uid']

            # 获取学生的考试报告
            url = address + '/api/v1/stat/exercise/one/paper?exercise_uid=' + \
                  'wrong' + '&student_uid=' + stu_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(1, response_json_data['code'])
            self.assertIsNone(response_json_data['data'])


        except Exception, e:
            logger.error(e.message)
            self.fail()
    def testWithWrongStuUid(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            url = address + '/api/v1/pool/image/access?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)

            accessid = response_json_data['data']['accessid']
            url = response_json_data['data']['host']
            expire = response_json_data['data']['expire']
            signature = response_json_data['data']['signature']
            policy = response_json_data['data']['policy']
            dir = response_json_data['data']['dir']

            filename = uuid.uuid4().hex + '-origin.jpg'
            data = {'name': str(filename), 'key': str(dir) + filename, 'policy': str(policy),
                    'signature': str(signature), 'OSSAccessKeyId': str(accessid)}
            files = {'file': open('test.jpg', 'rb')}
            resp = requests.post(url, data=data, files=files)
            self.assertEqual(204, resp.status_code)


            url = address + '/api/v1/pool/image/access'
            data = {'uid': filename.split('-')[0], 'exercise_uid': exam_uid, 'student_uid':'123'}
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(1, response_json_data['code'])
            self.assertEqual('US_User matching query does not exist.', response_json_data['message'])
        except Exception, e:
            logger.error(e.message)
            self.fail()
示例#7
0
    def testSignToStu0(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            # 班级中创建学生
            url = address + '/api/v1/account/student/batch'
            number = str(time.time()).split('.')[0]
            data = {
                'group_uid':
                group_uid,
                'students': [{
                    'name': '张三',
                    'number': number
                }, {
                    'name': '张三',
                    'number': number + '0'
                }]
            }
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])

            # 获取创建学生的id
            url = address + '/api/v1/account/student/list?group_uid=' + group_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(2, len(response_json_data['data']))
            stu_uid = response_json_data['data'][0]['uid']
            stu_uid1 = response_json_data['data'][1]['uid']

            # 上传图片
            url = address + '/api/v1/pool/image/access?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            accessid = response_json_data['data']['accessid']
            url = response_json_data['data']['host']
            expire = response_json_data['data']['expire']
            signature = response_json_data['data']['signature']
            policy = response_json_data['data']['policy']
            dir = response_json_data['data']['dir']
            filename = uuid.uuid4().hex + '-origin.jpg'
            data = {
                'name': filename,
                'key': dir + filename,
                'policy': policy,
                'signature': signature,
                'OSSAccessKeyId': accessid
            }
            files = {'file': open('test_wrong.jpg', 'rb')}
            resp = requests.post(url, data=data, files=files)
            self.assertEqual(204, resp.status_code)

            # 开始处理
            time.sleep(1)
            url = address + '/api/v1/pool/image/access'
            data = {'uid': filename.split('-')[0], 'exercise_uid': exam_uid}
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])

            time.sleep(15)
            # 获取未识别的图片
            url = address + '/api/v1/pool/image/student?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(1, len(response_json_data['data']))
            self.assertEqual(3, response_json_data['data'][0]['status'])
            self.assertIsNotNone(response_json_data['data'][0]['anchors'])
            self.assertIsNotNone(response_json_data['data'][0]['url'])
            self.assertIsNotNone(response_json_data['data'][0]['id'])
            pic_id = response_json_data['data'][0]['id']

            # 获取考试提交进度
            url = address + '/api/v1/stat/exercise/student/process?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(3, response_json_data['data'][0]['status'])

            # 标记到学生
            url = address + '/api/v1/pool/image/student'
            data = {
                'id': pic_id,
                'exercise_uid': exam_uid,
                'student_uid': stu_uid
            }
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])

            # 获取考试提交进度  全部识别完成, 只统计上传过图片的
            time.sleep(5)
            url = address + '/api/v1/stat/exercise/student/process?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(1, len(response_json_data['data']))
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(6, response_json_data['data'][0]['status'])
            self.assertEqual(stu_uid, response_json_data['data'][0]['uid'])

            #获取学生的考试报告 TODO  缺少参数,返回code不应为0
            url = address + '/api/v1/stat/exercise/one/paper?exercise_uid=' + \
                  exam_uid + '&student_uid=' + stu_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertIsNotNone(response_json_data['data'])
            self.assertIsNotNone(response_json_data['data']['url'])
            self.assertIsNotNone(response_json_data['data']['score'])
            self.assertIsNotNone(response_json_data['data']['id'])
            self.assertIsNotNone(response_json_data['data']['answer'])
            self.assertFalse('' == response_json_data['data']['answer'])

        except Exception, e:
            logger.error(e.message)
            self.fail()
示例#8
0
    def testCanRead(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            # 班级中创建学生
            url = address + '/api/v1/account/student/batch'
            data = {
                'group_uid': group_uid,
                'students': [{
                    'name': '张三',
                    'number': '140257'
                }]
            }
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])

            # 查询班级中学生列表
            url = address + '/api/v1/account/student/list?group_uid=' + group_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(1, len(response_json_data['data']))
            stu_uid = response_json_data['data'][0]['uid']

            #上传图片
            url = address + '/api/v1/pool/image/access?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            accessid = response_json_data['data']['accessid']
            url = response_json_data['data']['host']
            expire = response_json_data['data']['expire']
            signature = response_json_data['data']['signature']
            policy = response_json_data['data']['policy']
            dir = response_json_data['data']['dir']
            filename = uuid.uuid4().hex + '-origin.jpg'
            data = {
                'name': str(filename),
                'key': str(dir) + filename,
                'policy': str(policy),
                'signature': str(signature),
                'OSSAccessKeyId': str(accessid)
            }
            files = {'file': open('test.jpg', 'rb')}
            resp = requests.post(url, data=data, files=files)
            self.assertEqual(204, resp.status_code)

            time.sleep(1)
            #开始处理
            url = address + '/api/v1/pool/image/access'
            data = {'uid': filename.split('-')[0], 'exercise_uid': exam_uid}
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])

            time.sleep(5)
            #获取未识别的图片
            url = address + '/api/v1/pool/image/student?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(0, len(response_json_data['data']))

            #获取学生的考试报告
            url = address + '/api/v1/stat/exercise/one/paper?exercise_uid=' + \
                  exam_uid + 'student_uid=' + stu_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
        except Exception, e:
            logger.error(e.message)
            self.fail()
    def testWithRightStuUid(self):
        try:
            cookieJar = cookielib.CookieJar()
            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
            exam_uid, group_uid = createExam(opener)

            # 创建学生
            url = address + '/api/v1/account/student/batch'
            number = str(time.time()).split('.')[0] + str(datetime.datetime.now().microsecond)
            data = {'group_uid': group_uid,
                    'students': [{'name': '张三', 'number': number}]}
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(0, len(response_json_data['data']))

            # 学生列表获取学生uid
            url = address + '/api/v1/account/student/list?group_uid=' + group_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(1, len(response_json_data['data']))
            self.assertEqual('张三', response_json_data['data'][0]['name'].encode('UTF-8'))
            self.assertEqual(number, response_json_data['data'][0]['number'])
            stu_uid = response_json_data['data'][0]['uid']

            #上传图片
            url = address + '/api/v1/pool/image/access?exercise_uid=' + exam_uid
            request = urllib2.Request(url)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            accessid = response_json_data['data']['accessid']
            url = response_json_data['data']['host']
            expire = response_json_data['data']['expire']
            signature = response_json_data['data']['signature']
            policy = response_json_data['data']['policy']
            dir = response_json_data['data']['dir']
            filename = uuid.uuid4().hex + '-origin.jpg'
            data = {'name': str(filename), 'key': str(dir) + filename, 'policy': str(policy),
                    'signature': str(signature), 'OSSAccessKeyId': str(accessid)}
            files = {'file': open('test.jpg', 'rb')}
            resp = requests.post(url, data=data, files=files)
            self.assertEqual(204, resp.status_code)

            #开始处理
            url = address + '/api/v1/pool/image/access'
            data = {'uid': filename.split('-')[0], 'exercise_uid': exam_uid, 'student_uid': stu_uid}
            postData = json.dumps(data)
            request = urllib2.Request(url, postData, headers)
            content = opener.open(request)
            response_json_data = json.loads(content.read())
            self.assertEqual(200, content.code)
            self.assertEqual(0, response_json_data['code'])
            self.assertEqual(None, response_json_data['message'])
            self.assertIsNotNone(response_json_data['data']['url'])
            self.assertIsNotNone(response_json_data['data']['id'])
        except Exception, e:
            logger.error(e.message)
            self.fail()