register.py 9.16 KB
#!/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')