def testNormal(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) # 班级中创建学生 url = address + '/api/v1/account/student/edit' data = {'name': '张三', 'number': '001', 'group_uid': group_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( '张三', response_json_data['data']['name'].encode('UTF-8')) self.assertEqual('student', response_json_data['data']['role']) stu_uid = response_json_data['data']['uid'] self.assertIsNotNone(stu_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(0, len(response_json_data['data'])) except Exception, e: logger.error(e.message) self.fail()
def testCreateEmptyList(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) # 班级中创建学生 url = address + '/api/v1/account/student/batch' data = {'students': []} 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']) # 查询班级列表 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(0, len(response_json_data['data'])) except Exception, e: logger.error(e.message) self.fail()
def testDeleteSingle(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) stu_uids = [] for i in range(10): # 创建学生 url = address + '/api/v1/account/student/batch' number = int(str(time.time()).split('.')[0]) data = { 'group_uid': group_uid, 'students': [{ 'name': '张三', 'number': number + i }] } 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(10, len(response_json_data['data'])) for data in response_json_data['data']: stu_uids.append(data['uid']) random.shuffle(stu_uids) for stu_uid in stu_uids: # 删除学生信息 url = address + '/api/v1/account/group/student/quit' data = {'group_uid': group_uid, 'user_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']) # 查询班级中学生列表 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(0, len(response_json_data['data'])) except Exception, e: logger.error(e.message) self.fail()
def testWrongGroupUid(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) # 创建学生 url = address + '/api/v1/account/student/batch' number = str(time.time()).split('.')[0] + '11' 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/account/group/student/quit' data = {'group_uid': 'wrong', 'user_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(1, 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'])) except Exception, e: logger.error(e.message) self.fail()
def testCreateAll(self): try: # subject 为 chinese,math,english,physics,chemistry,biology,history,geography,phlitics,others subjects = ['politics', 'chinese', 'math', 'english', 'physics', 'chemistry', 'biology', 'history', 'geography', 'others'] cookieJar = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar)) loginAndCreateClass(opener) # 创建考试 for subject in subjects: url = address + '/api/v1/exercise/edit' name = '考试 ' + subject + ' 啦' # subject = subjects[1] data = {'name': name, 'subject': subject, 'manual': True} 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(name, response_json_data['data']['name'].encode('UTF-8')) # self.assertEqual(subject, response_json_data['data']['subject']) exam_uid = response_json_data['data']['uid'] self.assertIsNotNone(exam_uid) # 查看教师考试列表 url = address + '/api/v1/exercise/list' 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(10, len(response_json_data['data'])) except Exception, e: logger.error(e.message) self.fail()
def testCreateAsList(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) # 班级中创建学生, 学号有重复 number = str(time.time()).split('.')[0] + str( datetime.datetime.now().microsecond) url = address + '/api/v1/account/student/batch' data = { 'group_uid': group_uid, 'students': [{ 'name': '张三', 'number': number }, { 'name': '张四', 'number': number }, { 'name': '张五', 'number': number + '1' }] } 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(1, len(response_json_data['data'])) self.assertEqual(number, response_json_data['data'][0]['number']) self.assertEqual( '张四', response_json_data['data'][0]['name'].encode('UTF-8')) #查询班级列表 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'])) except Exception, e: logger.error(e.message) self.fail()
def testMissParam(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) # 查询班级中学生列表 url = address + '/api/v1/account/student/list' 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.assertTrue(len(response_json_data['data']) >= 0) except Exception, e: logger.error(e.message) self.fail()
def testOtherGroupUID(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) headers = {'Content-Type': 'application/json'} # 创建学生 url = address + '/api/v1/account/student/batch' number = str(time.time()).split('.')[0] + '12' 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/account/group/edit' name = '其他班级' body = {'name': name} data = json.dumps(body) headers = {'Content-Type': 'application/json'} request = urllib2.Request(url, data, 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.assertEqual( name.strip(), response_json_data['data']['name'].encode('UTF-8')) other_group_uid = response_json_data['data']['uid'] self.assertIsNotNone(other_group_uid) # 删除学生信息, 删除学生失败 url = address + '/api/v1/account/group/student/quit' data = {'group_uid': other_group_uid, 'user_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']) # 查询班级中学生列表 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'])) except Exception, e: logger.error(e.message) self.fail()
def testNormal(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) loginAndCreateClass(opener) # 创建考试 url = address + '/api/v1/exercise/edit' name = '考试啦' subject = 'chinese' data = {'name': name, 'subject': subject, 'manual': True} 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( name, response_json_data['data']['name'].encode('UTF-8')) # self.assertEqual(subject, response_json_data['data']['subject']) exam_uid = response_json_data['data']['uid'] self.assertIsNotNone(exam_uid) #编辑考试 url = address + '/api/v1/exercise/edit' name = '考试啦' data = { 'name': name, 'exercise_uid': exam_uid, 'origin': [{ 'body': '内容看这里', 'doi': 1, 'title': '标题在这里', 'answer': '', 'number_upper': 1000, 'number_lower': 100, 'score': 150 }] } 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/exercise/submit' data = {'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']) #查看教师考试列表 url = address + '/api/v1/exercise/list' 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']) self.assertEqual(exam_uid, response_json_data['data'][0]['uid']) #查看考试信息 url = address + '/api/v1/exercise/edit?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']['status']) self.assertEqual( '内容看这里', response_json_data['data']['origin'][0] ['body'].encode('UTF-8')) self.assertEqual( '标题在这里', response_json_data['data']['origin'][0] ['title'].encode('UTF-8')) self.assertEqual( 100, response_json_data['data']['origin'][0]['number_lower']) self.assertEqual( 1000, response_json_data['data']['origin'][0]['number_upper']) self.assertEqual(150, response_json_data['data']['origin'][0]['score']) #删除考试 url = address + '/api/v1/exercise/delete' data = {'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']) # 查看教师考试列表 url = address + '/api/v1/exercise/list' 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'])) except Exception, e: logger.error(e.message) self.fail()
def testEditManyRandom(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(opener) stu_uids = [] for i in range(10): # 班级中创建学生 url = address + '/api/v1/account/student/edit' data = {'name': '张三', 'number': str(i), 'group_uid': group_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( '张三', response_json_data['data']['name'].encode('UTF-8')) self.assertEqual('student', response_json_data['data']['role']) stu_uid = response_json_data['data']['uid'] self.assertIsNotNone(stu_uid) stu_uids.append(stu_uid) random.shuffle(stu_uids) i = 10 for stu_uid in stu_uids: # 编辑学生信息 url = address + '/api/v1/account/student/edit' data = {'name': '李思', 'number': str(i), 'user_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']) i += 1 # 查询班级中学生列表 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(10, len(response_json_data['data'])) total = 0 for i in range(10): self.assertEqual( '李思', response_json_data['data'][i]['name'].encode('UTF-8')) total += int(response_json_data['data'][i]['number']) self.assertTrue( int(response_json_data['data'][i]['number']) >= 10) self.assertTrue( response_json_data['data'][i]['uid'] in stu_uids) self.assertEqual(145, total) except Exception, e: logger.error(e.message) self.fail()
def testCreateDeleteThanCreat1(self): try: cookieJar = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookieJar)) group_uid = loginAndCreateClass(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 }, { 'name': '张四', 'number': number + '1' }] } 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'])) # 查询班级列表 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/account/group/student/quit' data = {'group_uid': group_uid, 'user_uid': [stu_uid, stu_uid1]} 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(0, len(response_json_data['data'])) # 删除班级 clearCleasses() # 创建其他班级 url = address + '/api/v1/account/group/edit' name = '我的第二个班级' + str(time.time()) body = {'name': name} data = json.dumps(body) request = urllib2.Request(url, data, headers) content = opener.open(request) response_json_data = json.loads(content.read()) oter_group_uid = response_json_data['data']['uid'] # 其他班级中创建学生 number和其他班级的重复 url = address + '/api/v1/account/student/batch' data = { 'group_uid': oter_group_uid, 'students': [{ 'name': '张三', 'number': number }, { 'name': '张四', 'number': number + '2' }] } 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(1, len(response_json_data['data'])) # 查询第一个班级列表 url = address + '/api/v1/account/student/list?group_uid=' + oter_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'])) except Exception, e: logger.error(e.message) self.fail()