#!/usr/bin/env python # -*- coding: utf-8 -*- import unittest import requests from data_fixture.config_data import HOST_BOSS from data_fixture import create_testdata as CreateTestData from data_fixture import config_data as Data from data_fixture.mysql_db import DB import os from requests_toolbelt import MultipartEncoder db_test = DB() current_dir = str(os.path.dirname(__file__)) #手机号重复验证 class PhoneUsedCheck(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + "/ozing/timer/user/registered" CreateTestData.pre_phoneUsedCheck(Data.USER_PHONE_USED, True) CreateTestData.pre_phoneUsedCheck(Data.USER_PHONE_UNUSED, False) def tearDown(self): print(self.result) # 注册过的手机号 def test_phone_used(self): getData = {'mobile':Data.USER_PHONE_USED} r = requests.get(self.base_url, params=getData) self.result = r.json() self.assertEqual(self.result['status'], True) # 手机号未注册 def test_phone_unused(self): getData = {'mobile':Data.USER_PHONE_UNUSED} r = requests.get(self.base_url, params=getData) self.result = r.json() self.assertEqual(self.result['status'], False) # 获取验证码 --register class GetAuthCode(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + "/ozing/timer/user/fetchAuthCode" self.mobile = '13833333333' def tearDown(self): print(self.result) def test_getAuthCode_success(self): headers = {'Accept': '*/*'} postData = {'mobile': self.mobile, 'type': 'register'} r = requests.post(self.base_url, headers=headers, data=postData) self.result = r.json() self.assertEqual(self.result['status'], 100) #用户注册 class SignIn(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + "/ozing/timer/anking/user" self.smsCode = CreateTestData.fet_authCode(Data.USER_PHONE) CreateTestData.pre_phoneUsedCheck(Data.USER_PHONE, False) def tearDown(self): print(self.result) def test_signIn_success(self): headers = {'Content-Type': 'application/json', 'Accept': '*/*'} postData = { "username": Data.USER_PHONE, "password": 'Hjx111111', "source": 'Android', "smscode": self.smsCode } r = requests.post(self.base_url, headers=headers, json=postData) self.result = r.json() self.assertEqual(self.result['status'], 100) # 检查用户注册信息是否完整 class RegisterExtrainfoCheck(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + '/register/extrainfo/check' CreateTestData.pre_register_extrainfo_check(Data.USER_ID, True) CreateTestData.pre_register_extrainfo_check(Data.USER_ID_INCOMPLETE, False) def tearDown(self): pass def test_checkRegisterExtrainfo_Complete_success(self): headers = {'Accept': '*/*'} getData = {'userId': Data.USER_ID} r = requests.get(self.base_url, headers=headers, params=getData) self.result_1 = r.json() self.assertEqual(self.result_1['status'], 1, 'test_checkRegisterExtrainfo_Complete fail') self.assertEqual(self.result_1['data']['isRegisterInfoComplete'], True, 'test_checkRegisterExtrainfo_Complete data fail') def test_checkRegisterExtrainfo_inComplete_success(self): headers = {'Accept': '*/*'} getData = {'userId': Data.USER_ID_INCOMPLETE} r = requests.get(self.base_url, headers=headers, params=getData) self.result_2 = r.json() self.assertEqual(self.result_2['status'], 1, 'test_checkRegisterExtrainfo_inComplete fail') self.assertEqual(self.result_2['data']['isRegisterInfoComplete'], False, 'test_checkRegisterExtrainfo_inComplete data fail') # 提交注册信息 class RegisterExtrainfoSubmit(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + '/register/extrainfo/submit' def tearDown(self): print(self.result) def test_RegisterExtrainfoSubmit_success(self): headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'} postData = { 'name': '测试测试lalalallal', 'gradeId': 7, 'schoolId': 68779, 'regionName': '浙江杭州西湖', 'regionId': 330106, 'userId': Data.USER_ID, 'chinese': '北京出版社', 'english': '人民教育出版社', 'math': '人民教育出版社' } r = requests.post(self.base_url, headers=headers, data=postData) self.result = r.json() self.assertEqual(self.result['status'], 1, 'RegisterExtrainfoSubmit Error') where_1 = {'id': Data.USER_ID,'nickname': '测试测试lalalallal'} where_2 = {'user_id': Data.USER_ID, 'grade_id': 7, 'school_id': 68779, 'region_name': '浙江杭州西湖', 'region_id': 330106} where_3 = {'user_id': Data.USER_ID, 'chinese': '北京出版社', 'english': '人民教育出版社', 'math': '人民教育出版社' } self.assertEqual(db_test.select_('acornuser.acorn_user', where_1), 1, 'RegisterExtrainfoSubmit Error') self.assertEqual(db_test.select_('acornuser.ozing_student', where_2), 1, 'RegisterExtrainfoSubmit Error') self.assertEqual(db_test.select_('acornuser.user_press', where_3), 1, 'RegisterExtrainfoSubmit Error') #账户管理界面更换手机号绑定 class UpdateUserNameByUserId(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + '/electronicCard/updateUserNameByUserId' self.authCode_1 = CreateTestData.fet_authCode(Data.USER_PHONE_CHANGE_EXISTS) self.authCode_2 = CreateTestData.fet_authCode(Data.USER_PHONE_CHANGE) CreateTestData.pre_phoneUsedCheck(Data.USER_PHONE_CHANGE_EXISTS, True) CreateTestData.pre_phoneUsedCheck(Data.USER_PHONE_CHANGE, False) def tearDown(self): print(self.result) def test_UpdateUserNameByUserId_phoneExists_success(self): headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'} postData = { 'username': Data.USER_PHONE_CHANGE_EXISTS, 'authCode': self.authCode_1, 'userId': Data.USER_ID } r = requests.post(self.base_url, headers=headers, data=postData) self.result = r.json() self.assertEqual(self.result['status'], 1006, 'UpdateUserNameByUserId_phoneExists Error') def test_UpdateUserNameByUserId_success(self): headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'} postData = { 'username': Data.USER_PHONE_CHANGE, 'authCode': self.authCode_2, 'userId': Data.USER_ID } r = requests.post(self.base_url, headers=headers, data=postData) self.result = r.json() self.assertEqual(self.result['status'], 1, 'UpdateUserNameByUserId Error') # 添加用户反馈 class AddFeedBack(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + '/feedback/add' img_file = current_dir + '/1.png' self.img = open(img_file, 'rb') def tearDown(self): print(self.result) def test_AddFeedBack_success(self): headers = {'Content-Type': 'multipart/form-data; boundary=fa0cada83b1d4b82a7ccd28ae8f7f6d6', 'Accept': '*/*'} postData = { 'userId': Data.USER_ID, 'content': '11111feedback哦哦哦', 'contact': '00000000', 'feedtype': '个人中心' } file = {'imgs': self.img} r = requests.post(self.base_url, data=postData, files=file) #r = requests.post(self.base_url, headers=headers, data=postData) ss = r.request self.img.close() self.result = r.json() self.assertEqual(self.result['status'], 1, 'AddFeedBack Error') select = {'userId': Data.USER_ID, 'content': '11111feedback哦哦哦', 'contact': '00000000', 'feedtype': '个人中心'} self.assertTrue(db_test.select_('acornuser.feedback', select) > 0, 'AddFeedBack data insert Error') # 获取最近观看视频列表 class GetRecentVideo(unittest.TestCase): def setUp(self): self.base_url = HOST_BOSS + '/personal/video/recent' CreateTestData.pre_getRecentVideo(Data.USER_ID_NO_VIDEO, 0) CreateTestData.pre_getRecentVideo(Data.USER_ID_VIDEO, 1) def tearDown(self): pass def test_GetRecentVideo_noVideo_success(self): getData = {'userId': Data.USER_ID_NO_VIDEO, 'pageNum': 1} r = requests.get(self.base_url, params=getData) self.result_1 = r.json() self.assertEqual(self.result_1['status'], 1000, 'GetRecentVideo-noVideo fail') def test_GetRecentVideo_success(self): getData = {'userId': Data.USER_ID_VIDEO, 'pageNum': 1} r = requests.get(self.base_url, params=getData) self.result_2 = r.json() self.assertEqual(self.result_2['status'], 1, 'GetRecentVideo fail')