def test_open_anchor_group_successful(self):
        """
        测试开通主播团成功
        :return:
        """
        mysql_operation = MysqlOperation(user_id=self.user_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=100000)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.5)

        open_anchor_group = OpenAnchorGroupAjax(self.user_mobile)
        open_anchor_group.get()

        self.assertEqual(open_anchor_group.get_resp_code(), 0)
        anchor_group_obj = open_anchor_group.get_resp_result(
        )['anchor_group_obj']
        self.assertEqual(anchor_group_obj['user_id'], int(self.user_id))
        self.assertEqual(anchor_group_obj['gold'], 0)
        self.assertEqual(anchor_group_obj['max_num'], 2)
        self.assertEqual(anchor_group_obj['next_level'], 18)
        self.assertEqual(anchor_group_obj['next_level_name'], u'1级上校')
        self.assertEqual(anchor_group_obj['owend_anchor_count'], 0)

        # 校验消费记录
        consumption_ajax = ConsumptionAjax(self.user_mobile)
        consumption_ajax.get()
        self.assertEqual(consumption_ajax.get_resp_code(), 0)

        consumption_result = consumption_ajax.get_resp_result()
        consume_list = consumption_result['consume_list']
        self.assertEqual(len(consume_list), 1)
        create_time = consume_list[0]['create_time']
        create_time_mk = convert_to_timestamp(create_time)
        self.assertLessEqual(int(time.time()) - create_time_mk, 5)
        self.assertEqual(consume_list[0]['user_id'], self.user_id)
        self.assertEqual(consume_list[0]['type'], u'7')
        self.assertEqual(consume_list[0]['gold'], 100000)
        self.assertEqual(consume_list[0]['corresponding_id'], 0)
        self.assertEqual(consume_list[0]['corresponding_name'], '主播团')
        self.assertEqual(consume_list[0]['corresponding_num'], 1)
        self.assertEqual(consume_list[0]['room_id'], '')
        self.assertEqual(consume_list[0]['status'], 1)
        self.assertEqual(consume_list[0]['behavior_desc'], '开通主播团')
        self.assertEqual(consume_list[0]['consumption_type'],
                         '{0}金币'.format(100000))
        self.assertIsNone(consume_list[0]['gift_obj'])
        self.assertIsNone(consume_list[0]['behavior'])
    def test_add_diamond_to_group(self):
        """
        测试纳入钻石守护
        :return:
        """
        mysql_operation = MysqlOperation(user_id=self.user_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=7056000)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.3)

        buy_guard_ajax = BuyGuardAjax(self.user_mobile)
        buy_guard_ajax.get({
            'room_id': self.room_id,
            'guard_id': 12,
            'currency': 'gold'
        })
        self.assertEqual(buy_guard_ajax.get_resp_code(), 0)

        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=100000)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.5)

        open_anchor_group = OpenAnchorGroupAjax(self.user_mobile)
        open_anchor_group.get()

        self.assertEqual(open_anchor_group.get_resp_code(), 0)
        anchor_group_obj = open_anchor_group.get_resp_result(
        )['anchor_group_obj']
        self.assertEqual(anchor_group_obj['user_id'], int(self.user_id))
        self.assertEqual(anchor_group_obj['gold'], 0)
        self.assertEqual(anchor_group_obj['max_num'], 2)
        self.assertEqual(anchor_group_obj['next_level'], 18)
        self.assertEqual(anchor_group_obj['next_level_name'], u'1级上校')
        self.assertEqual(anchor_group_obj['owend_anchor_count'], 0)

        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=50000)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.3)

        add_anchor_to_group = AddAnchorToGroup(self.user_mobile)
        add_anchor_to_group.post({
            'position': 1,
            'anchor_id': self.anchor_id,
            'grab_flag': 0,
            'change_flag': 0
        })
        self.assertEqual(add_anchor_to_group.get_resp_code(), 0)

        anchor_group_list = add_anchor_to_group.get_resp_result(
        )['anchor_group_list']
        self.assertEqual(len(anchor_group_list), 2)
        self.assertIsNone(anchor_group_list[1])

        anchor_obj = anchor_group_list[0]['anchor_obj']
        self.assertEqual(anchor_obj['id'], self.anchor_id)

        anchor_group_anchor_obj = anchor_group_list[0][
            'anchor_group_anchor_obj']
        self.assertEqual(anchor_group_anchor_obj['user_id'], int(self.user_id))
        self.assertEqual(anchor_group_anchor_obj['anchor_id'],
                         int(self.anchor_id))
        self.assertEqual(anchor_group_anchor_obj['room_id'], int(self.room_id))
        self.assertEqual(anchor_group_anchor_obj['position'], 1)
        self.assertEqual(anchor_group_anchor_obj['income_gold'], 0)
        self.assertEqual(anchor_group_anchor_obj['status'], 1)
        self.assertLessEqual(anchor_group_anchor_obj['left_time'], 604800)
        self.assertIn((datetime.datetime.now()).strftime("%Y-%m-%d %H"),
                      anchor_group_anchor_obj['start_date_time'])
        self.assertIn((datetime.datetime.now() +
                       datetime.timedelta(days=+7)).strftime("%Y-%m-%d %H"),
                      anchor_group_anchor_obj['end_date_time'])

        identity_obj = add_anchor_to_group.get_resp_result()['identity_obj']
        self.assertEqual(identity_obj['gold'], 0)

        # 校验消费记录
        consumption_ajax = ConsumptionAjax(self.user_mobile)
        consumption_ajax.get()
        self.assertEqual(consumption_ajax.get_resp_code(), 0)

        consumption_result = consumption_ajax.get_resp_result()
        consume_list = consumption_result['consume_list']
        self.assertEqual(len(consume_list), 3)
        create_time = consume_list[0]['create_time']
        create_time_mk = convert_to_timestamp(create_time)
        self.assertLessEqual(int(time.time()) - create_time_mk, 5)
        self.assertEqual(consume_list[0]['user_id'], self.user_id)
        self.assertEqual(consume_list[0]['type'], '10')
        self.assertEqual(consume_list[0]['gold'], 50000)
        self.assertEqual(consume_list[0]['corresponding_id'], 0)
        self.assertEqual(consume_list[0]['corresponding_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'], '纳入主播团')
        self.assertEqual(consume_list[0]['consumption_type'],
                         '{0}金币'.format(50000))
        self.assertIsNone(consume_list[0]['gift_obj'])
        self.assertIsNone(consume_list[0]['behavior'])
Beispiel #3
0
    def buy_noble_action(self, **kwargs):
        days = None
        noble_gold = kwargs['noble_gold']
        noble_id = kwargs['noble_id']
        noble_num = kwargs['noble_num']
        user_rank = kwargs['user_rank']
        user_experience = kwargs['user_experience']
        if noble_num == 1:
            days = self.one_month
        elif noble_num == 2:
            days = self.two_month
        elif noble_num == 3:
            days = self.three_month
        elif noble_num == 6:
            days = self.six_month
        live_new_server_ajax = LiveNewServer(self.user_mobile)
        live_new_server_ajax.get({'room_id': self.room_id})
        self.assertEqual(live_new_server_ajax.get_resp_code(), 0)
        live_result = live_new_server_ajax.get_resp_result()
        hot_num = live_result['room_obj']['curr_hot_num']
        # 用户加钱
        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=noble_gold)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.3)
        # 购买贵族
        buy_noble_ajax = BuyNobleAjax(self.user_mobile)
        buy_noble_ajax.get({
            'room_id': self.room_id,
            'anchor_id': self.anchor_id,
            'noble_id': noble_id,
            'num': noble_num,
            'currency': 'gold'
        })
        self.assertEqual(buy_noble_ajax.get_resp_code(), 0)

        result = buy_noble_ajax.get_resp_result()
        identity_obj = result['identity_obj']
        # 校验用户余额
        self.assertEqual(identity_obj['gold'], 0)
        # 校验用户等级、经验值
        self.assertEqual(identity_obj['user_rank'], user_rank)
        self.assertEqual(identity_obj['user_experience'], user_experience)

        # 校验贵族等级
        self.assertEqual(identity_obj['noble_rank'], noble_id)
        # 校验有效天数
        self.assertEqual(identity_obj['noble_rest_time_int'], days)
        self.assertEqual(identity_obj['noble_rest_time_str'],
                         '{0}天'.format(days))
        noble_expiretime = identity_obj['noble_expiretime']
        self.assertIn(
            (datetime.datetime.now() +
             datetime.timedelta(days=+days)).strftime("%Y-%m-%d %H:%M"),
            noble_expiretime)

        # 校验消费记录
        consumption_ajax = ConsumptionAjax(self.user_mobile)
        consumption_ajax.get()
        self.assertEqual(consumption_ajax.get_resp_code(), 0)

        consumption_result = consumption_ajax.get_resp_result()
        consume_list = consumption_result['consume_list']
        self.assertEqual(len(consume_list), 1)
        create_time = consume_list[0]['create_time']
        create_time_mk = convert_to_timestamp(create_time)
        self.assertLessEqual(int(time.time()) - create_time_mk, 5)
        self.assertEqual(consume_list[0]['user_id'], self.user_id)
        self.assertEqual(consume_list[0]['type'], u'2')
        self.assertEqual(consume_list[0]['gold'], noble_gold)
        self.assertEqual(consume_list[0]['corresponding_id'], noble_id)
        self.assertEqual(consume_list[0]['corresponding_name'], '贵族')
        self.assertEqual(consume_list[0]['corresponding_num'], 1)
        self.assertEqual(consume_list[0]['room_id'], '')
        self.assertEqual(consume_list[0]['status'], 1)
        self.assertEqual(consume_list[0]['behavior_desc'], '购买贵族')
        self.assertEqual(consume_list[0]['consumption_type'],
                         '{0}金币'.format(noble_gold))
        self.assertIsNone(consume_list[0]['gift_obj'])
        self.assertIsNone(consume_list[0]['behavior'])

        time.sleep(0.3)
        live_new_server_ajax = LiveNewServer(self.user_mobile)
        live_new_server_ajax.get({'room_id': self.room_id})
        self.assertEqual(live_new_server_ajax.get_resp_code(), 0)
        live_result = live_new_server_ajax.get_resp_result()
        after_buy_noble_hot_num = live_result['room_obj']['curr_hot_num']

        self.assertEqual(after_buy_noble_hot_num, hot_num)

        identity_obj = live_result['identity_obj']
        # 校验用户余额
        self.assertEqual(identity_obj['gold'], 0)
        # 校验用户等级、经验值
        self.assertEqual(identity_obj['user_rank'], user_rank)
        self.assertEqual(identity_obj['user_experience'], user_experience)

        # 校验贵族等级
        self.assertEqual(identity_obj['noble_rank'], noble_id)
        # 校验有效天数
        self.assertEqual(identity_obj['noble_rest_time_int'], days)
        self.assertEqual(identity_obj['noble_rest_time_str'],
                         '{0}天'.format(days))
        noble_expiretime = identity_obj['noble_expiretime']
        self.assertIn(
            (datetime.datetime.now() +
             datetime.timedelta(days=+days)).strftime("%Y-%m-%d %H:%M"),
            noble_expiretime)
        # 校验进场动画
        msg = live_result['enter_room_message']['msg']
        self.assertEqual(msg['m_action'], 'system_room')
        self.assertEqual(msg['m_switch'], 'coming')
        self.assertEqual(msg['from_user_id'], '0')
        self.assertEqual(msg['from_refer_type'], '2')
        user_obj = msg['user_obj']
        self.assertEqual(user_obj['noble_rank'], noble_id)
        ani_obj = msg['obj']['ani_obj']
        self.assertEqual(ani_obj['ani_type'], 'entry_noble')
        self.assertEqual(ani_obj['ani_id'], noble_id)
        self.assertEqual(ani_obj['ani_num'], 0)
        self.assertIsNone(ani_obj['category_type'])
        self.assertEqual(msg['obj']['msg_content'], '来了')