def test_bind_phone_image_code_is_error(self):
        """
        测试请求接口图形验证码错误
        :return:
        """
        send_image_code_api = ImageCodeApi()
        send_image_code_api.get({'device_id': settings.DEVICE_ID})
        image_code = Redis().get_image_captcha(settings.DEVICE_ID)
        num = random.randint(1111, 9999)
        phone = '1580101' + str(num)
        send_sms_code_api = SendSmsCodeApi()
        send_sms_code_api.get({
            'device_id': settings.DEVICE_ID,
            'type': 'bind',
            'phone': phone,
            'check_code': image_code
        })

        self.assertEqual(send_sms_code_api.get_code(), 0)

        sms_code = MysqlOperation(mobile=phone).get_sms_code()

        bind_phone_api = BindPhoneApi(self.user_name)
        bind_phone_api.get({
            'phone': phone,
            'code': sms_code,
            'check_code': 1234
        })
        self.assertEqual(bind_phone_api.get_code(), 422107)
        self.assertEqual(bind_phone_api.get_response_message(), u'验证码错误,请重新输入')
    def test_bind_phone_sms_code_error(self):
        """
        测试请求接口短信验证码错误
        :return:
        """
        send_image_code_api = ImageCodeApi()
        send_image_code_api.get({'device_id': settings.DEVICE_ID})
        image_code = Redis().get_image_captcha(settings.DEVICE_ID)
        num = random.randint(1111, 9999)
        phone = '1580202' + str(num)
        send_sms_code_api = SendSmsCodeApi()
        send_sms_code_api.get({
            'device_id': settings.DEVICE_ID,
            'type': 'bind',
            'phone': phone,
            'check_code': image_code
        })

        self.assertEqual(send_sms_code_api.get_code(), 0)

        bind_phone_api = BindPhoneApi(self.user_name)
        bind_phone_api.get({
            'phone': phone,
            'code': '123u',
            'check_code': image_code
        })
        self.assertEqual(bind_phone_api.get_code(), 400104)
        self.assertEqual(bind_phone_api.get_response_message(),
                         u'验证码错误,请重新获取短信验证码')
Exemple #3
0
    def test_a_send_image_code_success(self):
        """
        获取图形验证码成功
        """
        image_code_api = ImageCodeApi()
        image_code_api.get({'device_id': self.device_id})

        image_code = Redis().get_image_captcha(self.device_id)

        self.assertIsNotNone(image_code)
        self.assertEqual(len(image_code), 4)
    def test_a_send_bind_sms_code_success(self):
        """
        测试发送绑定手机号短信验证码
        """
        send_image_code_api = ImageCodeApi()
        send_image_code_api.get({'device_id': settings.DEVICE_ID})
        image_code = Redis().get_image_captcha(settings.DEVICE_ID)

        send_sms_code_api = SendSmsCodeApi()
        send_sms_code_api.get({
            'device_id': settings.DEVICE_ID,
            'type': 'bind',
            'phone': self.mobile2,
            'check_code': image_code
        })
        self.assertEqual(send_sms_code_api.get_code(), 0)
        sms_code = MysqlGet(mobile=self.mobile2).get_sms_code()
        self.assertIsNotNone(sms_code)
        self.assertEqual(len(sms_code), 4)
    def test_bind_phone_success(self):
        """
        测试绑定手机号成功
        :return:
        """
        send_image_code_api = ImageCodeApi()
        send_image_code_api.get({'device_id': settings.DEVICE_ID})
        image_code = Redis().get_image_captcha(settings.DEVICE_ID)

        send_sms_code_api = SendSmsCodeApi()
        send_sms_code_api.get({'device_id': settings.DEVICE_ID, 'type': 'bind', 'phone': self.bind_mobile,
                'check_code': image_code})
        self.assertEqual(send_sms_code_api.get_code(),0)
        sms_code = MysqlOperation(mobile=self.bind_mobile).get_sms_code()

        bind_phone_api = BindPhoneApi(self.user_name)
        response = bind_phone_api.get({'phone': self.bind_mobile, 'code': sms_code,'check_code':image_code})

        self.assertEqual(bind_phone_api.get_code(),0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(self.bind_mobile,identity_obj['mobilephone'])
        self.assertEqual(self.bind_mobile,identity_obj['login_name'])
    def test_bind_phone_failed_five_times(self):
        """
        测试绑定手机号当天只允许失败5次
        :return:
        """
        phone = None
        num = 1
        flag = True
        image_code = None
        while flag:
            send_image_code_api = ImageCodeApi()
            send_image_code_api.get({'device_id': settings.DEVICE_ID})
            image_code = Redis().get_image_captcha(settings.DEVICE_ID)
            phone = '133' + str(random.randint(11111111, 99999999))
            send_sms_code_api = SendSmsCodeApi()
            send_sms_code_api.get({
                'device_id': settings.DEVICE_ID,
                'type': 'bind',
                'phone': phone,
                'check_code': image_code
            })
            if send_sms_code_api.get_code() in [400126, 400136]:
                continue
            else:
                bind_phone_api = BindPhoneApi(self.user_name)
                bind_phone_api.get({
                    'phone': phone,
                    'code': 1234,
                    'check_code': image_code
                })
                self.assertEqual(bind_phone_api.get_code(), 400104)
                self.assertEqual(bind_phone_api.get_response_message(),
                                 u'验证码错误,请重新获取短信验证码')
                num += 1
                if num == 6:
                    flag = False

        flag = True
        while flag:
            send_image_code_api = ImageCodeApi()
            send_image_code_api.get({'device_id': settings.DEVICE_ID})
            phone = '130' + str(random.randint(11111111, 99999999))
            image_code = Redis().get_image_captcha(settings.DEVICE_ID)
            send_sms_code_api = SendSmsCodeApi()
            send_sms_code_api.get({
                'device_id': settings.DEVICE_ID,
                'type': 'bind',
                'phone': phone,
                'check_code': image_code
            })
            if send_sms_code_api.get_code() in [400126, 400136]:
                continue
            else:
                self.assertEqual(send_sms_code_api.get_code(), 0)
                flag = False

        bind_phone_api = BindPhoneApi(self.user_name)
        bind_phone_api.get({
            'phone': phone,
            'code': 1234,
            'check_code': image_code
        })
        self.assertEqual(bind_phone_api.get_code(), 400133)
        self.assertEqual(bind_phone_api.get_response_message(),
                         u'您今日操作过多,请明天再试')
    def test_bind_phone_success(self):
        """
        测试完成绑定手机号任务
        :return:
        """
        task_list_api = TaskListApi(self.user_name)
        response = task_list_api.get()
        self.assertEqual(task_list_api.get_code(), 0)
        task_list = json.loads(response.content)['result']['task_list']
        for x in task_list:
            if x['task_name'] == u'绑定手机':
                self.assertIsNone(x['user_task_obj'])

        task_notice_api = TaskNoticeApi(self.user_name)
        response = task_notice_api.get()
        self.assertEqual(task_notice_api.get_code(), 0)

        send_image_code_api = ImageCodeApi()
        send_image_code_api.get({'device_id': settings.DEVICE_ID})
        image_code = Redis().get_image_captcha(settings.DEVICE_ID)

        send_sms_code_api = SendSmsCodeApi()
        send_sms_code_api.get({
            'device_id': settings.DEVICE_ID,
            'type': 'bind',
            'phone': self.bind_mobile,
            'check_code': image_code
        })
        self.assertEqual(send_sms_code_api.get_code(), 0)
        sms_code = MysqlOperation(mobile=self.bind_mobile).get_sms_code()

        bind_phone_api = BindPhoneApi(self.user_name)
        response = bind_phone_api.get({
            'phone': self.bind_mobile,
            'code': sms_code,
            'check_code': image_code
        })

        self.assertEqual(bind_phone_api.get_code(), 0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(self.bind_mobile, identity_obj['mobilephone'])
        self.assertEqual(self.bind_mobile, identity_obj['login_name'])
        while self.count < self.max_count:
            task_list_api = TaskListApi(self.bind_mobile)
            response = task_list_api.get()
            self.assertEqual(task_list_api.get_code(), 0)
            task_list = json.loads(response.content)['result']['task_list']
            if task_list[0]['user_task_obj'] is not None:
                self.assertEqual(task_list[0]['user_task_obj']['user_id'],
                                 (self.user_id))
                self.assertEqual(
                    task_list[0]['user_task_obj']['task_behavior'],
                    u'bind_mobile')
                self.assertEqual(task_list[0]['user_task_obj']['num'], 1)
                self.assertEqual(task_list[0]['user_task_obj']['status'], 2)
                break
            else:
                self.count += 1
                time.sleep(self.time_sleep)
        self.assertLess(self.count, self.max_count)

        task_notice_api = TaskNoticeApi(self.bind_mobile)
        task_notice_api.get()
        self.assertEqual(task_notice_api.get_code(), 0)

        get_task_reward_api = GetTaskRewardApi(self.bind_mobile)
        response = get_task_reward_api.get({'behavior': 'bind_mobile'})
        self.assertEqual(get_task_reward_api.get_code(), 0)
        self.assertEqual(
            json.loads(response.content)['result']['task_rewards']['diamond'],
            5000)

        task_list = json.loads(response.content)['result']['task_list']
        self.assertEqual(task_list[0]['user_task_obj']['status'], 3)

        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['diamond'], u'5000')