Ejemplo n.º 1
0
    def renew_action(self, **kwargs):
        first_noble_gold = kwargs['first_noble_gold']
        first_noble_id = kwargs['first_noble_id']
        second_noble_gold = kwargs['second_noble_gold']
        second_noble_id = kwargs['second_noble_id']
        second_user_rank = kwargs['second_user_rank']
        second_user_exp = kwargs['second_user_exp']
        # 用户加钱
        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=first_noble_gold)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.5)
        # 购买贵族
        buy_noble_ajax = BuyNobleAjax(self.user_mobile)
        buy_noble_ajax.get({
            'room_id': self.room_id,
            'anchor_id': self.anchor_id,
            'noble_id': first_noble_id,
            'num': 1,
            '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['noble_rank'], first_noble_id)
        # 校验有效天数
        self.assertEqual(identity_obj['noble_rest_time_int'], self.one_month)
        self.assertEqual(identity_obj['noble_rest_time_str'],
                         '{0}天'.format(self.one_month))
        time.sleep(1)
        # 用户加钱
        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=second_noble_gold)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.5)
        # 购买贵族
        buy_noble_ajax = BuyNobleAjax(self.user_mobile)
        buy_noble_ajax.get({
            'room_id': self.room_id,
            'anchor_id': self.anchor_id,
            'noble_id': second_noble_id,
            'num': 1,
            'currency': 'gold'
        })
        if second_noble_id < first_noble_id:
            self.assertEqual(buy_noble_ajax.get_resp_code(), 402026)
            self.assertEqual(buy_noble_ajax.get_resp_message(),
                             '您选择的贵族低于您当前已拥有的贵族等级,无法开通')
        else:
            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)
            # 校验贵族等级
            if second_noble_id > first_noble_id:
                self.assertEqual(identity_obj['noble_rank'], second_noble_id)
                # 校验有效天数
                self.assertEqual(identity_obj['noble_rest_time_int'],
                                 self.one_month)
                self.assertEqual(identity_obj['noble_rest_time_str'],
                                 '{0}天'.format(self.one_month))
                self.assertEqual(identity_obj['user_rank'], second_user_rank)
                self.assertEqual(identity_obj['user_experience'],
                                 second_user_exp)
            else:
                self.assertEqual(identity_obj['noble_rank'], first_noble_id)
                # 校验有效天数
                self.assertEqual(identity_obj['noble_rest_time_int'],
                                 self.two_month)
                self.assertEqual(identity_obj['noble_rest_time_str'],
                                 '{0}天'.format(self.two_month))
                self.assertEqual(identity_obj['user_rank'], second_user_rank)
                self.assertEqual(identity_obj['user_experience'],
                                 second_user_exp)
Ejemplo n.º 2
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'], '来了')