示例#1
0
 def test_normal_user_send_noble_gift(self):
     """
     测试普通用户送贵族礼物
     :return:
     """
     while self.count < self.max_count:
         mysql_operation = MysqlOperation(user_id=self.user_id)
         mysql_operation.fix_user_account(gold_num=self.gift_gold)
         RedisHold().clean_redis_user_detail(self.user_id)
         time.sleep(self.time_sleep)
         send_gift_api = SendGiftApi(self.login_name)
         send_gift_api.get({
             'room_id': self.room_id,
             'gift_id': self.noble_gift_id,
             'gift_count': 1,
             'currency': 'gold'
         })
         if send_gift_api.get_code() == 100032:
             time.sleep(self.time_sleep)
             self.count += 1
         else:
             self.assertEqual(send_gift_api.get_code(), 900018)
             self.assertEqual(send_gift_api.get_response_message(),
                              u'赠送礼物失败:贵族等级不足')
             break
     self.assertLess(self.count, self.max_count)
示例#2
0
    def test_send_package_gift_success(self):
        """
        测试送出为你伴舞礼物
        :return:
        """
        add_following_api = AddFollowingApi(self.login_name)
        add_following_api.get({'anchor_id': self.anchor_id})
        self.assertEqual(add_following_api.get_code(), 0)
        self.assertEqual(add_following_api.get_response_message(), u'操作成功')

        live_api = LiveApi(self.login_name)
        response = live_api.get({'room_id': self.room_id})
        self.assertEqual(live_api.get_code(), 0)
        room_hot_num = json.loads(
            response.content)['result']['room_obj']['curr_hot_num']

        RedisHold().add_user_package_gift(self.user_id,
                                          gift_id=self.package_gift_id,
                                          gift_num=1)
        time.sleep(self.time_sleep)

        send_gift_api = SendGiftApi(self.login_name)
        response = send_gift_api.get({
            'room_id': self.room_id,
            'gift_id': self.package_gift_id,
            'gift_count': 1,
            'currency': 'bag'
        })

        self.assertEqual(send_gift_api.get_code(), 0)
        self.assertEqual(
            json.loads(response.content)['result']['identity_obj']['gold'], 0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(identity_obj['user_rank'], 3)
        self.assertEqual(identity_obj['user_experience'], 0)
        intimacy_obj = identity_obj['intimacy_obj']
        self.assertEqual(intimacy_obj['intimacy_rank'], 4)
        self.assertEqual(intimacy_obj['intimacy_experience'], 0)
        intimacy_level_obj = intimacy_obj['intimacy_level_obj']
        self.assertEqual(intimacy_level_obj['level'], 1)

        anchor_obj = json.loads(
            response.content)['result']['room_obj']['anchor_obj']
        self.assertEqual(anchor_obj['anchor_rank'], 2)
        self.assertEqual(anchor_obj['anchor_experience'], 50000)

        time.sleep(self.time_sleep)

        live_api = LiveApi(self.login_name)
        response = live_api.get({'room_id': self.room_id})
        self.assertEqual(live_api.get_code(), 0)
        room_hot_num_after_send = json.loads(
            response.content)['result']['room_obj']['curr_hot_num']

        self.assertEqual(room_hot_num_after_send - room_hot_num, 100000)
示例#3
0
    def test_send_gift_currency_error(self):
        """
        测试请求接口货币类型错误
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': self.room_id, 'gift_id': 6, 'gift_count': 1, 'currency': 'abc'})

        self.assertEqual(send_gift_api.get_code(), 460004)
        self.assertEqual(send_gift_api.get_response_message(),u'请选择货币类型')
示例#4
0
    def test_send_gift_count_error(self):
        """
        测试请求接口送金币礼物账户金币不足
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': self.room_id, 'gift_id': 6, 'gift_count': 9999999999, 'currency': 'gold'})

        self.assertEqual(send_gift_api.get_code(), 100032)
        self.assertEqual(send_gift_api.get_response_message(),u'账户金币不足')
示例#5
0
    def test_send_gift_count_null(self):
        """
        测试请求接口礼物数量为空
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': self.room_id, 'gift_id': 6, 'gift_count': None, 'currency': 'gold'})

        self.assertEqual(send_gift_api.get_code(), 402010)
        self.assertEqual(send_gift_api.get_response_message(),u'礼物数量不能是空')
示例#6
0
    def test_send_gift_id_error(self):
        """
        测试请求接口礼物ID不存在
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': self.room_id, 'gift_id': 999999, 'gift_count': 1, 'currency': 'gold'})

        self.assertEqual(send_gift_api.get_code(), 402020)
        self.assertEqual(send_gift_api.get_response_message(),u'礼物信息不存在')
示例#7
0
    def test_send_gift_room_id_error(self):
        """
        测试请求接口房间ID不存在
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': 123000, 'gift_id': 6, 'gift_count': 1, 'currency': 'gold'})

        self.assertEqual(send_gift_api.get_code(), 402004)
        self.assertEqual(send_gift_api.get_response_message(),u'获取直播间数据错误:直播间不存在')
示例#8
0
    def test_send_gift_room_id_null(self):
        """
        测试请求接口房间ID为空
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': None, 'gift_id': 6, 'gift_count': 1, 'currency': 'gold'})

        self.assertEqual(send_gift_api.get_code(), 402000)
        self.assertEqual(send_gift_api.get_response_message(),u'房间ID不能为空')
示例#9
0
    def test_send_package_gift_low(self):
        """
        测试请求接口送背包礼物数量不足
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': self.room_id, 'gift_id': 1009, 'gift_count': 1, 'currency': 'bag'})

        self.assertEqual(send_gift_api.get_code(), 402034)
        self.assertEqual(send_gift_api.get_response_message(),u'背包礼物数量不足,无法送出')
示例#10
0
    def test_send_diamond_gift_account_low(self):
        """
        测试请求接口送大王豆礼物账户金币不足
        :return:
        """
        send_gift_api = SendGiftApi(self.login_name)
        send_gift_api.get({'room_id': self.room_id, 'gift_id': 6, 'gift_count': 9999999999, 'currency': 'diamond'})

        self.assertEqual(send_gift_api.get_code(), 460005)
        self.assertEqual(send_gift_api.get_response_message(),u'您的大王豆余额不足,请转换')
示例#11
0
 def test_anchor_group_withdraw_failed(self):
     """
     测试主播团金库数量小于100000不可转出
     :return:
     """
     user_id = self.user_id
     mysql_operation = MysqlOperation(user_id=user_id,anchor_id=anchor_id)
     mysql_operation.fix_user_rank_and_experience(user_rank=self.user_rank, experience_all=self.user_experience_all)
     mysql_operation.fix_user_account(gold_num=51326000)
     RedisHold().clean_redis_user_detail(self.user_id)
     # 开通主播团
     open_anchor_group_api = OpenAnchorGroupApi(self.user_login_name)
     open_anchor_group_api.get()
     self.assertEqual(open_anchor_group_api.get_code(), 0)
     # 购买守护
     buy_guard_api = BuyGuardApi(self.user_login_name)
     guard_response = buy_guard_api.get({'room_id': room_id, 'guard_id': '2','currency':'gold'})
     self.assertEqual(buy_guard_api.get_code(), 0)
     self.assertEqual(json.loads(guard_response.content)['result']['identity_obj']['user_guard_obj']['guard_rank'], 2)
     time.sleep(1)
     # 将主播纳入主播团
     add_anchor_to_group_api = AddAnchorToGroupApi(self.user_login_name)
     response = add_anchor_to_group_api.get({'anchor_id': anchor_id, 'position': 1,'grab_flag': 0,'change_flag': 0})
     self.assertEqual(add_anchor_to_group_api.get_code(), 0)
     self.assertEqual(add_anchor_to_group_api.get_response_message(), u'操作成功')
     anchor_group_anchor_obj = json.loads(response.content)['result']['anchor_group_list'][0]['anchor_group_anchor_obj']
     self.assertEqual(anchor_group_anchor_obj['anchor_id'], int(anchor_id))
     self.assertEqual(anchor_group_anchor_obj['position'], 1)
     self.assertEqual(anchor_group_anchor_obj['income_gold'], 0)
     self.assertLessEqual(anchor_group_anchor_obj['left_time'], 604800)
     time.sleep(1)
     # 给主播团内主播送礼物
     send_gift_api = SendGiftApi(self.user_login_name)
     send_gift_api.get({'room_id': room_id, 'gift_id': 2, 'gift_count': 1,'currency':'gold'})
     self.assertEqual(send_gift_api.get_code(), 0)
     time.sleep(3)
     # 查询主播团金库金币
     my_anchor_group_api = MyAnchorGroupApi(self.user_login_name)
     my_anchor_group_response = my_anchor_group_api.get()
     response_gold = json.loads(my_anchor_group_response.content)['result']['anchor_group_obj']['gold']
     self.assertEqual(my_anchor_group_api.get_code(),0)
     expect_gold_num = (int(mysql_operation.get_gift_details(gift_id=2)['gold']) * 1) * 0.05
     self.assertEqual(response_gold,expect_gold_num)
     # 提取主播团金库金币
     anchor_group_withdraw_api = AnchorGroupWithdrawApi(self.user_login_name)
     anchor_group_withdraw_api.get()
     self.assertEqual(anchor_group_withdraw_api.get_code(),200510)
     self.assertEqual(anchor_group_withdraw_api.get_response_message(),u'金库余额大于等于100000金币才可转出')
示例#12
0
    def test_anchor_group_withdraw(self):
        """
        测试主播团金库金币收入和提出
        :return:
        """
        user_id = self.user_id
        mysql_operation = MysqlOperation(user_id=user_id,anchor_id=anchor_id)
        expect_gold_num = (int(mysql_operation.get_gift_details(gift_id=67)['gold']) * 2000) * 0.05
        mysql_operation.fix_user_rank_and_experience(user_rank=self.user_rank, experience_all=self.user_experience_all)
        mysql_operation.fix_user_account(gold_num=2738000)
        RedisHold().clean_redis_user_detail(self.user_id)
        # 开通主播团
        open_anchor_group_api = OpenAnchorGroupApi(self.user_login_name)
        response = open_anchor_group_api.get()
        self.assertEqual(open_anchor_group_api.get_code(), 0)
        self.assertEqual(json.loads(response.content)['result']['identity_obj']['gold'],2638000)
        # 购买守护
        buy_guard_api = BuyGuardApi(self.user_login_name)
        guard_response = buy_guard_api.get({'room_id': room_id, 'guard_id': '1','currency':'gold'})
        self.assertEqual(buy_guard_api.get_code(), 0)
        self.assertEqual(json.loads(guard_response.content)['result']['identity_obj']['user_guard_obj']['guard_rank'], 1)
        self.assertEqual(json.loads(guard_response.content)['result']['identity_obj']['gold'],2050000)
        time.sleep(1)
        # 将主播纳入主播团
        add_anchor_to_group_api = AddAnchorToGroupApi(self.user_login_name)
        response = add_anchor_to_group_api.get({'anchor_id': anchor_id, 'position': 1,'grab_flag': 0,'change_flag': 0})
        self.assertEqual(add_anchor_to_group_api.get_code(), 0)
        self.assertEqual(add_anchor_to_group_api.get_response_message(), u'操作成功')
        anchor_group_anchor_obj = json.loads(response.content)['result']['anchor_group_list'][0]['anchor_group_anchor_obj']
        self.assertEqual(anchor_group_anchor_obj['anchor_id'], int(anchor_id))
        self.assertEqual(anchor_group_anchor_obj['position'], 1)
        self.assertEqual(anchor_group_anchor_obj['income_gold'], 0)
        self.assertLessEqual(anchor_group_anchor_obj['left_time'], 604800)

        self.assertEqual(json.loads(response.content)['result']['identity_obj']['gold'],2000000)
        time.sleep(1)
        # 给主播团内主播送礼物
        send_gift_api = SendGiftApi(self.user_login_name)
        send_gift_response = send_gift_api.get({'room_id': room_id, 'gift_id': 67, 'gift_count': 2000,'currency':'gold'})
        self.assertEqual(send_gift_api.get_code(), 0)
        self.assertEqual(json.loads(send_gift_response.content)['result']['identity_obj']['gold'],0)
        time.sleep(1)
        # 查询主播团金库金币
        my_anchor_group_api = MyAnchorGroupApi(self.user_login_name)
        my_anchor_group_response = my_anchor_group_api.get()
        self.assertEqual(my_anchor_group_api.get_code(),0)
        anchor_group_gold = json.loads(my_anchor_group_response.content)['result']['anchor_group_obj']['gold']
        self.assertEqual(anchor_group_gold,expect_gold_num)
        # 提取主播团金库金币
        anchor_group_withdraw_api = AnchorGroupWithdrawApi(self.user_login_name)
        withdraw_response = anchor_group_withdraw_api.get()
        self.assertEqual(anchor_group_withdraw_api.get_code(),0)
        anchor_group_obj = json.loads(withdraw_response.content)['result']['anchor_group_obj']
        self.assertEqual(anchor_group_obj['gold'],0)
        time.sleep(3)
        db_user_gold = mysql_operation.get_user_account_details()['gold']
        self.assertEqual(int(db_user_gold),int(expect_gold_num * 0.9))
        time.sleep(3)
        # 查询主播团日志
        my_anchor_group_logs_api = MyAnchorGroupLogsApi(self.user_login_name)
        logs_response = my_anchor_group_logs_api.get()
        anchor_group_log_list = json.loads(logs_response.content)['result']['anchor_group_log_list']
        self.assertEqual(my_anchor_group_logs_api.get_code(),0)
        self.assertEqual(len(anchor_group_log_list),3)
        self.assertIn(u'金库资金被转出',anchor_group_log_list[0]['content'])
        self.assertIn(u'为金库贡献了',anchor_group_log_list[1]['content'])
        self.assertIn(u'被纳入主播团',anchor_group_log_list[2]['content'])

        # 金币获取记录
        gold_account_api = GoldAccountApi(self.user_login_name)
        response = gold_account_api.get()
        self.assertEqual(gold_account_api.get_code(), 0)
        account_list = json.loads(response.content)['result']['account_list']
        self.assertEqual(len(account_list),1)
        self.assertEqual(account_list[0]['gold'], int(expect_gold_num) * 0.9)
        self.assertEqual(account_list[0]['consumption_type'], u'%s金币' % (int(int(expect_gold_num) * 0.9)))
        self.assertEqual(account_list[0]['behavior_desc'], u'主播团提现')
示例#13
0
    def action(self,**kwargs):
        guard_id = kwargs['guard_id']
        guard_price = None
        if guard_id == 1:
            guard_price = 588000
        elif guard_id == 2:
            guard_price = 1176000
        elif guard_id == 3:
            guard_price = 1764000
        elif guard_id == 12:
            guard_price = 7056000
        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=self.user_id)
            mysql_operation.fix_user_account(gold_num=guard_price)
            RedisHold().clean_redis_user_detail(self.user_id)
            time.sleep(self.time_sleep)
            buy_guard_api = BuyGuardApi(self.login_name)
            response = buy_guard_api.get({'room_id':self.room_id,'guard_id':guard_id,'currency':'gold'})
            if buy_guard_api.get_code() == 100032:
                time.sleep(self.time_sleep)
                self.count+=1
            else:
                self.assertEqual(buy_guard_api.get_code(),0)
                identity_obj = json.loads(response.content)['result']['identity_obj']
                if guard_id == 12:
                    self.assertEqual(identity_obj['user_guard_obj']['guard_rank'], 4)
                else:
                    self.assertEqual(identity_obj['user_guard_obj']['guard_rank'],guard_id)
                break
        self.assertLess(self.count,self.max_count)

        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=self.user_id)
            mysql_operation.fix_user_account(gold_num=self.gift_gold)
            RedisHold().clean_redis_user_detail(self.user_id)
            time.sleep(self.time_sleep)
            send_gift_api = SendGiftApi(self.login_name)
            response = send_gift_api.get({'room_id': self.room_id, 'gift_id': self.guard_gift_id, 'gift_count': 1,'currency': 'gold'})
            if send_gift_api.get_code() in [100032,100503]:
                time.sleep(self.time_sleep)
                self.count+=1
            else:
                self.assertEqual(send_gift_api.get_code(),0)
                identity_obj = json.loads(response.content)['result']['identity_obj']
                self.assertEqual(identity_obj['gold'],0)
                self.assertEqual(identity_obj['diamond'],u'0')
                break
        self.assertLess(self.count,self.max_count)

        consumption_api = ConsumptionApi(self.login_name)
        response = consumption_api.get()
        self.assertEqual(consumption_api.get_code(),0)
        consume_list = json.loads(response.content)['result']['consume_list']
        self.assertEqual(len(consume_list),2)
        self.assertEqual(consume_list[0]['user_id'],self.user_id)
        self.assertEqual(consume_list[0]['type'],u'1')
        self.assertEqual(consume_list[0]['gold'],self.gift_gold)
        self.assertEqual(consume_list[0]['corresponding_id'],int(self.guard_gift_id))
        self.assertEqual(consume_list[0]['corresponding_name'],MysqlOperation().get_gift_details(gift_id=self.guard_gift_id)['name'])
        self.assertEqual(consume_list[0]['corresponding_num'],1)
        self.assertEqual(consume_list[0]['room_id'],self.room_id)
        self.assertEqual(consume_list[0]['status'],1)
        self.assertEqual(consume_list[0]['behavior_desc'],u'送礼')
        self.assertEqual(consume_list[0]['room_title'],MysqlOperation(room_id=self.room_id).get_room_details()['title'])
        self.assertEqual(consume_list[0]['consumption_type'],u'%s金币' % self.gift_gold)
示例#14
0
    def action(self, **kwargs):
        noble_id = kwargs['noble_id']
        noble_price = None
        if noble_id == 1:
            noble_price = 24000
        elif noble_id == 2:
            noble_price = 40000
        elif noble_id == 3:
            noble_price = 80000
        elif noble_id == 4:
            noble_price = 400000
        elif noble_id == 5:
            noble_price = 800000
        elif noble_id == 6:
            noble_price = 2400000
        elif noble_id == 7:
            noble_price = 24000000
        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=self.user_id)
            mysql_operation.fix_user_account(gold_num=noble_price)
            RedisHold().clean_redis_user_detail(self.user_id)
            time.sleep(self.time_sleep)

            buy_noble_api = BuyNobleApi(self.login_name)
            response = buy_noble_api.get({
                'noble_id': noble_id,
                'num': 1,
                'room_id': self.room_id,
                'currency': 'gold'
            })
            if buy_noble_api.get_code() == 100032:
                time.sleep(self.time_sleep)
                self.count += 1
            else:
                self.assertEqual(buy_noble_api.get_code(), 0)
                self.assertEqual(
                    json.loads(response.content)['result']['identity_obj']
                    ['noble_rank'], noble_id)
                break
        self.assertLess(self.count, self.max_count)

        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=self.user_id)
            mysql_operation.fix_user_account(gold_num=self.gift_gold)
            RedisHold().clean_redis_user_detail(self.user_id)
            time.sleep(self.time_sleep)
            send_gift_api = SendGiftApi(self.login_name)
            response = send_gift_api.get({
                'room_id': self.room_id,
                'gift_id': self.noble_gift_id,
                'gift_count': 1,
                'currency': 'gold'
            })
            if send_gift_api.get_code() == 100032:
                time.sleep(self.time_sleep)
                self.count += 1
            else:
                self.assertEqual(send_gift_api.get_code(), 0)
                self.assertEqual(
                    json.loads(
                        response.content)['result']['identity_obj']['gold'], 0)
                break
        self.assertLess(self.count, self.max_count)

        consumption_api = ConsumptionApi(self.login_name)
        response = consumption_api.get()
        self.assertEqual(consumption_api.get_code(), 0)
        self.assertEqual(
            len(json.loads(response.content)['result']['consume_list']), 2)
        consume_list = json.loads(
            response.content)['result']['consume_list'][0]
        self.assertEqual(consume_list['user_id'], self.user_id)
        self.assertEqual(consume_list['type'], u'1')
        self.assertEqual(consume_list['gold'], self.gift_gold)
        self.assertEqual(consume_list['corresponding_id'],
                         int(self.noble_gift_id))
        self.assertEqual(
            consume_list['corresponding_name'],
            MysqlOperation().get_gift_details(self.noble_gift_id)['name'])
        self.assertEqual(consume_list['corresponding_num'], 1)
        self.assertEqual(consume_list['room_id'], self.room_id)
        self.assertEqual(consume_list['status'], 1)
        self.assertEqual(consume_list['behavior_desc'], u'送礼')
        self.assertEqual(
            consume_list['room_title'],
            MysqlOperation(room_id=self.room_id).get_room_details()['title'])
        self.assertEqual(consume_list['consumption_type'],
                         u'%s金币' % self.gift_gold)
示例#15
0
    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)

        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=self.user_id)
            mysql_operation.fix_user_account(gold_num=1000)
            RedisHold().clean_redis_user_detail(self.user_id)
            time.sleep(self.time_sleep)
            send_gift_api = SendGiftApi(self.user_name)
            send_gift_api.get({
                'room_id': self.room_id,
                'gift_id': 67,
                'gift_count': 1,
                'currency': 'gold'
            })
            if send_gift_api.get_code() == 100032:
                time.sleep(self.time_sleep)
                self.count += 1
            else:
                self.assertEqual(send_gift_api.get_code(), 0)
                break
        self.assertLess(self.count, self.max_count)

        while self.count < self.max_count:
            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']
            if task_list[3]['user_task_obj'] is not None:
                self.assertEqual(task_list[3]['user_task_obj']['user_id'],
                                 (self.user_id))
                self.assertEqual(
                    task_list[3]['user_task_obj']['task_behavior'],
                    u'send_gift')
                self.assertEqual(task_list[3]['user_task_obj']['num'], 1)
                self.assertEqual(task_list[3]['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.user_name)
        response = task_notice_api.get()
        self.assertEqual(task_notice_api.get_code(), 0)

        get_task_reward_api = GetTaskRewardApi(self.user_name)
        response = get_task_reward_api.get({'behavior': 'send_gift'})
        self.assertEqual(get_task_reward_api.get_code(), 0)
        self.assertEqual(
            json.loads(response.content)['result']['task_rewards']['exp'], 500)

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

        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['user_experience'], 1500)
示例#16
0
    def send_gift_action(self, **kwargs):
        gift_gold = kwargs['gift_gold']
        gift_diamond = kwargs['gift_diamond']
        gift_id = kwargs['gift_id']
        gift_num = kwargs['gift_num']
        is_following = kwargs['is_following']
        if gift_gold > 0:
            currency = 'gold'
        elif gift_diamond > 0:
            currency = 'diamond'
        else:
            currency = 'bag'

        if is_following:
            add_following_api = AddFollowingApi(self.login_name)
            response = add_following_api.get({'anchor_id': self.anchor_id})
            self.assertEqual(add_following_api.get_code(), 0)
            self.assertEqual(add_following_api.get_response_message(), u'操作成功')
            self.assertEqual(
                json.loads(response.content)['result']['identity_obj']
                ['has_followed'], 1)

        live_api = LiveApi(self.login_name)
        response = live_api.get({'room_id': self.room_id})
        self.assertEqual(live_api.get_code(), 0)
        room_hot_num = json.loads(
            response.content)['result']['room_obj']['curr_hot_num']
        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=self.user_id)
            mysql_operation.fix_user_account(gold_num=gift_gold * gift_num,
                                             diamond_num=gift_diamond *
                                             gift_num)
            RedisHold().clean_redis_user_detail(self.user_id)
            time.sleep(self.time_sleep)
            send_gift_api = SendGiftApi(self.login_name)
            response = send_gift_api.get({
                'room_id': self.room_id,
                'gift_id': gift_id,
                'gift_count': gift_num,
                'currency': currency
            })
            if send_gift_api.get_code() == 100032:
                time.sleep(self.time_sleep)
                self.count += 1
            else:

                self.assertEqual(send_gift_api.get_code(), 0)
                break
        self.assertLess(self.count, self.max_count)

        gift_details = MysqlOperation().get_gift_details(gift_id=gift_id)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(identity_obj['diamond'], u'0')

        user_exp = self.get_user_exp_and_rank(
            gift_details['add_user_experience'] * gift_num)

        self.assertEqual(identity_obj['user_experience'], user_exp['exp'])
        self.assertEqual(identity_obj['user_rank'], user_exp['rank'])

        def assert_intimacy(obj, following, gift_num):
            inti_dic = {}
            if gift_num == 1:
                inti_dic = {
                    'intimacy_experience': 1000,
                    'intimacy_rank': 1,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif gift_num == 10:
                inti_dic = {
                    'intimacy_experience': 0,
                    'intimacy_rank': 2,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif gift_num == 66:
                inti_dic = {
                    'intimacy_experience': 16000,
                    'intimacy_rank': 3,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif gift_num == 99:
                inti_dic = {
                    'intimacy_experience': 49000,
                    'intimacy_rank': 3,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif gift_num == 188:
                inti_dic = {
                    'intimacy_experience': 88000,
                    'intimacy_rank': 4,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif gift_num == 520:
                inti_dic = {
                    'intimacy_experience': 45000,
                    'intimacy_rank': 7,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif gift_num == 1314:
                inti_dic = {
                    'intimacy_experience': 214000,
                    'intimacy_rank': 10,
                    'level': 1,
                    'level_name': u'喜爱'
                }

            if following:
                self.assertEqual(obj['intimacy_experience'],
                                 inti_dic['intimacy_experience'])
                self.assertEqual(obj['intimacy_rank'],
                                 inti_dic['intimacy_rank'])
                intimacy_level_obj = obj['intimacy_level_obj']
                self.assertEqual(intimacy_level_obj['level'],
                                 inti_dic['level'])
                self.assertEqual(intimacy_level_obj['level_name'],
                                 inti_dic['level_name'])
                self.assertEqual(intimacy_level_obj['rank_start'], 1)
                self.assertEqual(intimacy_level_obj['rank_end'], 15)
            else:
                for x in [
                        obj['intimacy_experience'], obj['intimacy_rank'],
                        obj['intimacy_next_experience']
                ]:
                    self.assertEqual(x, 0)
                self.assertIsNone(obj['intimacy_level_obj'])

        intimacy_obj = identity_obj['intimacy_obj']
        assert_intimacy(intimacy_obj, is_following, gift_num)

        anchor_obj = json.loads(
            response.content)['result']['room_obj']['anchor_obj']
        anchor_exp = self.get_anchor_exp_and_rank(
            gift_details['add_anchor_experience'] * gift_num)
        self.assertEqual(anchor_obj['anchor_experience'], anchor_exp['exp'])
        self.assertEqual(anchor_obj['anchor_rank'], anchor_exp['rank'])

        live_api = LiveApi(self.login_name)
        response = live_api.get({'room_id': self.room_id})
        self.assertEqual(live_api.get_code(), 0)
        room_hot_num_after = json.loads(
            response.content)['result']['room_obj']['curr_hot_num']
        if gift_gold > 0:
            self.assertEqual(
                int(room_hot_num_after) - int(room_hot_num),
                gift_gold * gift_num)
        if gift_diamond > 0:
            self.assertEqual(
                int(room_hot_num_after) - int(room_hot_num),
                gift_diamond / 10 * gift_num)

        consumption_api = ConsumptionApi(self.login_name)
        response = consumption_api.get()
        self.assertEqual(consumption_api.get_code(), 0)
        consume_list = json.loads(
            response.content)['result']['consume_list'][0]
        self.assertEqual(consume_list['user_id'], self.user_id)
        self.assertEqual(consume_list['type'], u'1')
        self.assertEqual(consume_list['gold'], (gift_gold * gift_num))
        self.assertEqual(consume_list['corresponding_id'], gift_id)
        self.assertEqual(consume_list['corresponding_name'],
                         MysqlOperation().get_gift_details(gift_id)['name'])
        self.assertEqual(consume_list['corresponding_num'], gift_num)
        self.assertEqual(consume_list['room_id'], self.room_id)
        self.assertEqual(consume_list['status'], 1)
        self.assertEqual(consume_list['behavior_desc'], u'送礼')
        self.assertEqual(
            consume_list['room_title'],
            MysqlOperation(room_id=self.room_id).get_room_details()['title'])
        self.assertEqual(consume_list['consumption_type'],
                         u'%s金币' % (gift_gold * gift_num))