def test_reset_password_sucess(self):
        """
        测试修改密码成功
        :return:
        """
        ImageCodeApi().get({'device_id':self.device_id})
        image_code = Redis().get_image_captcha(self.device_id)

        send_sms_code_api = LoginSendSmsCodeApi(self.login_name)
        send_sms_code_api.get( {'device_id': self.device_id, 'type': 'forget', 'phone': self.login_name,'check_code': image_code})

        self.assertEqual(send_sms_code_api.get_code(),0)
        time.sleep(1)
        sms_code = MysqlGet(mobile=self.login_name).get_sms_code()

        reset_password_api = ResetPasswordApi(self.login_name)
        response = reset_password_api.get({'phone': self.login_name,'code': sms_code,'new_password':self.new_password,
                 'confirm_password':self.new_password})

        self.assertEqual(reset_password_api.get_code(),0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['login_name'],self.login_name)
        self.assertIsNotNone(identity_obj['user_sign'])
        self.assertEqual(identity_obj['identity'],identity_obj['user_sign'])

        login_api = LoginApi()
        response = login_api.login(login_name=self.login_name,password=self.new_password)
        self.assertEqual(login_api.get_code(),0)
        self.assertIsNotNone(response)

        login_api = LoginApi()
        login_api.login(login_name=self.login_name,only_get_identity=False)
        self.assertEqual(login_api.get_code(), 422110)
        self.assertEqual(login_api.get_response_message(),u'密码错误')
 def test_login_name_error(self):
     """
     测试请求接口登录帐号不存在
     :return:
     """
     login_api = LoginApi()
     login_api.login(login_name='13501077766', only_get_identity=False)
     self.assertEqual(login_api.get_code(), 422109)
     self.assertEqual(login_api.get_response_message(), u'登录账号不存在')
 def test_login_name_null(self):
     """
     测试请求接口登录名为空
     :return:
     """
     login_api = LoginApi()
     login_api.login(login_name=None, only_get_identity=False)
     self.assertEqual(login_api.get_code(), 422101)
     self.assertEqual(login_api.get_response_message(), u'登录账号名不能为空')
 def test_login_password_error(self):
     """
     测试请求接口密码错误
     :return:
     """
     login_api = LoginApi()
     login_api.login(login_name=self.login_name,
                     password='******',
                     only_get_identity=False)
     self.assertEqual(login_api.get_code(), 422110)
     self.assertEqual(login_api.get_response_message(), u'密码错误')
 def test_login_password_null(self):
     """
     测试请求接口密码为空
     :return:
     """
     login_api = LoginApi()
     login_api.login(login_name=self.login_name,
                     password=None,
                     only_get_identity=False)
     self.assertEqual(login_api.get_code(), 422102)
     self.assertEqual(login_api.get_response_message(), u'密码不能为空')
    def test_login_success(self):
        """
        测试登录成功
        :return:
        """
        login_api = LoginApi()
        response = login_api.login(login_name=self.login_name,
                                   only_get_identity=False)

        self.assertEqual(login_api.get_code(), 0)
        identity = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity['login_name'], self.login_name)
        # self.assertEqual(identity['mobilephone'],self.login_name)
        self.assertIsNotNone(identity['identity'])
        self.assertEqual(identity['identity'], identity['user_sign'])
    def test_game_center(self):
        """
        测试游戏大厅接口用户信息
        :return:
        """
        login_api = LoginApi()
        login_resp = login_api.login(self.user_mobile, only_get_identity=False)
        self.assertEqual(login_api.get_code(), 0)
        session_id = json.loads(login_resp.content)['result']['session_id']

        driver = webdriver.PhantomJS()
        driver.get(
            url='https://hall.game.dwtv.tv/enter/gamecenter?session_id={0}'.
            format(session_id), )
        page_source = driver.page_source
        p1 = r"(?<=identity:\").+?(?=\",)"
        pattern1 = re.compile(p1)
        matcher1 = re.search(pattern1, page_source)
        identity = matcher1.group(0)

        mysql_opeartion = MysqlOperation(user_id=self.user_id)
        mysql_opeartion.fix_user_account(gold_num=2000, diamond_num=1000)
        mysql_opeartion.fix_user_rank_and_experience(user_rank=12,
                                                     experience_all=2000000)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(1)

        game_list_api = requests.get(
            url='https://hall.game.dwtv.tv/lobby/game?identity={0}'.format(
                identity))
        response = json.loads(game_list_api.content)
        self.assertEqual(response['code'], 0)
        self.assertEqual(response['result']['api_url'],
                         u'http://api.dawang.tv')
        self.assertEqual(response['result']['img_url'],
                         u'http://api.dawang.tv')
        user_obj = response['result']['user_obj']
        self.assertEqual(
            user_obj['nickname'],
            MysqlOperation(
                user_id=self.user_id).get_user_details()['nickname'])
        self.assertEqual(user_obj['username'], ('dw_' + self.user_id))
        self.assertEqual(user_obj['gender'], 1)
        self.assertEqual(user_obj['icon'],
                         u"/files/images/heads/00/49/20170802110412935.jpeg")
        self.assertIsNotNone(user_obj['identity'])
        self.assertEqual(user_obj['month_end_time'], 0)
        self.assertIsNotNone(user_obj['token'])
        self.assertEqual(user_obj['gold'], u'1000')
        self.assertEqual(user_obj['diamond'], 2000)
        self.assertEqual(user_obj['user_level'], 12)
        self.assertEqual(user_obj['user_exp'], 0)
        self.assertEqual(user_obj['vip_level'], 0)

        exchange_api = ExchangeApi(self.user_mobile)
        response = exchange_api.get({
            'gold': 1000,
            'diamond': 10000,
            'product_id': 112
        })

        self.assertEqual(exchange_api.get_code(), 0)
        self.assertEqual(json.loads(response.content)['result']['gold'], 1000)
        self.assertEqual(
            json.loads(response.content)['result']['diamond'], 10000)
        self.assertEqual(
            json.loads(
                response.content)['result']['identity_obj']['user_rank'], 12)
        self.assertEqual(
            json.loads(
                response.content)['result']['identity_obj']['user_experience'],
            1000)

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

        login_api = LoginApi()
        login_resp = login_api.login(self.user_mobile, only_get_identity=False)
        self.assertEqual(login_api.get_code(), 0)
        session_id = json.loads(login_resp.content)['result']['session_id']

        driver = webdriver.PhantomJS()
        driver.get(
            url='https://hall.game.dwtv.tv/enter/gamecenter?session_id={0}'.
            format(session_id), )
        page_source = driver.page_source
        p1 = r"(?<=identity:\").+?(?=\",)"
        pattern1 = re.compile(p1)
        matcher1 = re.search(pattern1, page_source)
        identity = matcher1.group(0)

        game_list_api = requests.get(
            url='https://hall.game.dwtv.tv/lobby/game?identity={0}'.format(
                identity))
        response = json.loads(game_list_api.content)
        self.assertEqual(response['code'], 0)
        user_obj = response['result']['user_obj']
        self.assertIsNotNone(user_obj['identity'])
        self.assertEqual(user_obj['gold'], u'11000')
        self.assertEqual(user_obj['diamond'], 1000)
        self.assertEqual(user_obj['user_level'], 12)
        self.assertEqual(user_obj['user_exp'], 1000)
        self.assertEqual(user_obj['vip_level'], 0)