Ejemplo n.º 1
0
    def test_buy_sun_following_success(self):
        """
        测试关注主播情况下购买太阳成功
        :return:
        """
        follow_api = AddFollowingApi(self.user_mobile)
        follow_api.get({'anchor_id': self.anchor_id})
        self.assertEqual(follow_api.get_code(), 0)

        live_api = LiveApi(self.user_mobile)
        response = live_api.get({'room_id': self.room_id})
        self.assertEqual(live_api.get_code(), 0)

        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['user_experience'], 0)
        intimacy_obj = identity_obj['intimacy_obj']
        self.assertEqual(intimacy_obj['intimacy_experience'], 0)

        sun_num = json.loads(response.content)['result']['room_obj']['sun_num']

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

        buy_sun_api = BuySunApi(self.user_mobile)
        response = buy_sun_api.get({'room_id': self.room_id})
        self.assertEqual(buy_sun_api.get_code(), 0)

        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['gold'], 0)  # 校验用户剩余金币
        self.assertEqual(identity_obj['sun_num'], 0)  # 校验用户剩余太阳数量不变
        self.assertEqual(identity_obj['user_experience'], 2000)  # 校验用户经验值增加

        intimacy_obj = identity_obj['intimacy_obj']
        self.assertEqual(intimacy_obj['intimacy_experience'], 200)  # 校验用户亲密度增加

        after_sun_num = json.loads(
            response.content)['result']['room_obj']['sun_num']
        self.assertEqual(after_sun_num - sun_num, 20)  # 校验主播获得的太阳数量增加

        consum_api = ConsumptionApi(self.user_mobile)
        response = consum_api.get()
        self.assertEqual(consum_api.get_code(), 0)
        consume_list = json.loads(response.content)['result']['consume_list']
        # 校验消费记录
        self.assertEqual(len(consume_list), 1)
        self.assertEqual(consume_list[0]['user_id'], self.user_id)
        self.assertEqual(consume_list[0]['type'], u'5')
        self.assertEqual(consume_list[0]['gold'], 2000)
        self.assertEqual(consume_list[0]['corresponding_id'], 0)
        self.assertEqual(consume_list[0]['corresponding_name'], u'太阳')
        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]['consumption_type'], u'2000金币')
    def test_exchange_success(self):
        """
        测试兑换成功+消费记录
        :return:
        """
        gold_num = 1000
        MysqlOperation(user_id=self.user_id).fix_user_account(
            gold_num=gold_num)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(self.time_sleep)

        exchange_api = ExchangeApi(self.user_mobile)
        response = exchange_api.get({
            'gold': gold_num,
            'diamond': gold_num * self.ratio,
            'product_id': 112
        })

        self.assertEqual(exchange_api.get_code(), 0)
        self.assertEqual(
            json.loads(response.content)['result']['gold'], gold_num)
        self.assertEqual(
            json.loads(response.content)['result']['diamond'],
            gold_num * self.ratio)
        self.assertEqual(
            json.loads(
                response.content)['result']['identity_obj']['user_rank'], 1)
        self.assertEqual(
            json.loads(
                response.content)['result']['identity_obj']['user_experience'],
            gold_num)

        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(int(identity_obj['diamond']),
                         int(gold_num * self.ratio))
        time.sleep(1)
        # 消费记录
        consumption_api = ConsumptionApi(self.user_mobile)
        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), 1)
        self.assertEqual(consume_list[0]['gold'], gold_num)
        self.assertEqual(consume_list[0]['user_id'], self.user_id)
        self.assertEqual(consume_list[0]['type'], u'6')
        self.assertEqual(consume_list[0]['corresponding_id'], 0)
        self.assertEqual(consume_list[0]['corresponding_num'], 1)
        self.assertEqual(consume_list[0]['corresponding_name'], u'大王豆')
        self.assertEqual(consume_list[0]['room_id'], u'')
        self.assertEqual(consume_list[0]['room_title'], u'-- --')
        self.assertEqual(consume_list[0]['status'], 1)
        self.assertEqual(consume_list[0]['consumption_type'],
                         u'%s金币' % gold_num)
        self.assertEqual(consume_list[0]['behavior_desc'], u'大王豆转换')
    def test_free_update_nick(self):
        """
        测试免费修改修改昵称和收费修改昵称成功
        :return:
        """
        update_nick_api = UpdateNickApi(self.user_mobile)
        response = update_nick_api.get({'nickname':self.new_nick_name})

        self.assertEqual(update_nick_api.get_code(),0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['nickname'],self.new_nick_name)
        self.assertEqual(identity_obj['gold'],0)
        self.assertEqual(identity_obj['diamond'],u'0')
        self.assertEqual(identity_obj['left_rename_num'],0)
        time.sleep(self.time_sleep)

        MysqlOperation(user_id=self.user_id).fix_user_account(gold_num=20000)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(self.time_sleep)

        update_nick_api = UpdateNickApi(self.user_mobile)
        response = update_nick_api.get({'nickname': 'ubiwm'})

        self.assertEqual(update_nick_api.get_code(),0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['nickname'], 'ubiwm')
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(identity_obj['diamond'],u'0')
        self.assertEqual(identity_obj['left_rename_num'],0)

        consumption_api = ConsumptionApi(self.user_mobile)
        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),1)
        self.assertEqual(consume_list[0]['type'],u'8')
        self.assertEqual(consume_list[0]['gold'],20000)
        self.assertEqual(consume_list[0]['corresponding_id'],0)
        self.assertEqual(consume_list[0]['corresponding_name'],u'修改昵称')
        self.assertEqual(consume_list[0]['corresponding_num'],1)
        self.assertEqual(consume_list[0]['status'],1)
        self.assertEqual(consume_list[0]['room_id'],u'')
        self.assertEqual(consume_list[0]['behavior_desc'],u'修改昵称')
        self.assertEqual(consume_list[0]['room_title'],u'-- --')
        self.assertEqual(consume_list[0]['consumption_type'], u'20000金币')
    def test_anchr_free_update_nick(self):
        """
        测试主播可以随意修改昵称
        :return:
        """
        update_nick_api = UpdateNickApi(self.anchor_mobile)
        response = update_nick_api.get({'nickname': self.anchor_new_nick_name})

        self.assertEqual(update_nick_api.get_code(), 0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['nickname'], self.anchor_new_nick_name)
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(identity_obj['diamond'], u'0')
        self.assertEqual(identity_obj['left_rename_num'], 1)
        time.sleep(self.time_sleep)

        update_nick_api = UpdateNickApi(self.anchor_mobile)
        response = update_nick_api.get({'nickname': self.anchor_new_nick_name + '1'})

        self.assertEqual(update_nick_api.get_code(), 0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['nickname'], self.anchor_new_nick_name + '1')
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(identity_obj['diamond'], u'0')
        self.assertEqual(identity_obj['left_rename_num'], 1)
        time.sleep(self.time_sleep)

        update_nick_api = UpdateNickApi(self.anchor_mobile)
        response = update_nick_api.get({'nickname': 'YaTo_猫小艺'})

        self.assertEqual(update_nick_api.get_code(), 0)
        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['nickname'], u'YaTo_猫小艺')
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(identity_obj['diamond'], u'0')
        self.assertEqual(identity_obj['left_rename_num'], 1)

        consumption_api = ConsumptionApi(self.anchor_mobile)
        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), 0)
Ejemplo n.º 5
0
    def test_quiz_win(self):
        """
        测试竞猜消费记录和金币获取记录
        :return:
        """
        set_questions_api = SetQuestionsApi(self.game_anchor_login_name)
        set_questions_api.get({'room_id': self.game_room, 'question': self.questions, 'option_a': self.option_a,
             'option_b': self.option_b})
        self.assertEqual(set_questions_api.get_code(), 0)

        db_questions = MysqlOperation(room_id=self.game_room).get_questions()
        self.assertEqual(len(db_questions),1)
        question_ids = []
        for x in db_questions:
            question_ids.append(x['id'])
        question_ids_json = json.dumps(question_ids)

        start_quiz_api = StartQuizApi(self.game_anchor_login_name)
        start_quiz_api.get({'room_id':self.game_room,'question_bank_ids':question_ids_json})
        self.assertEqual(start_quiz_api.get_code(),0)

        quiz_questions_id = MysqlOperation(room_id=self.game_room).get_quiz_questions()[0]['id']

        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(self.time_sleep)

        quiz_api = QuizApi(self.user_login_name)
        quiz_api.get({'question_id': quiz_questions_id, 'gold': '50000', 'option': 'A'})
        self.assertEqual(quiz_api.get_code(), 0)

        mysql_operation = MysqlOperation(user_id=self.user_id_two)
        mysql_operation.fix_user_account(gold_num=20000)
        RedisHold().clean_redis_user_detail(self.user_id_two)
        time.sleep(self.time_sleep)

        quiz_api = QuizApi(self.user_login_name_two)
        quiz_api.get({'question_id': quiz_questions_id, 'gold': '20000', 'option': 'B'})
        self.assertEqual(quiz_api.get_code(), 0)

        get_questions_api = GetQuestionsApi(self.game_anchor_login_name)
        response = get_questions_api.get({'room_id': self.game_room})
        self.assertEqual(get_questions_api.get_code(), 0)

        question_list = json.loads(response.content)['result']['question_list']
        self.assertEqual(len(question_list), 1)
        question_obj = json.loads(response.content)['result']['question_list'][0]
        self.assertEqual(int(question_obj['id']), int(quiz_questions_id))
        self.assertEqual(question_obj['room_id'], self.game_room)
        self.assertEqual(question_obj['question'], self.questions)
        self.assertEqual(question_obj['total_pool'], 70000)
        self.assertEqual(question_obj['init_pool'], u'0')
        self.assertEqual(question_obj['currency'], u'gold')
        self.assertEqual(question_obj['status'], u'1')
        self.assertEqual(question_obj['my_result'], 0)
        self.assertIsNone(question_obj['result'])

        options = question_obj['options']
        self.assertEqual(options['A']['odds'], u'1.4')
        self.assertEqual(options['A']['option_amount'], u'50000')
        self.assertEqual(options['A']['user_amount'], 0)
        self.assertEqual(options['A']['persent'], 0.025)

        self.assertEqual(options['B']['odds'], u'3.5')
        self.assertEqual(options['B']['option_amount'], u'20000')
        self.assertEqual(options['B']['user_amount'], 0)
        self.assertEqual(options['B']['persent'], 0.01)

        stop_quiz_api = StopQuizApi(self.game_anchor_login_name)
        stop_quiz_api.get({'question_id':quiz_questions_id})
        self.assertEqual(stop_quiz_api.get_code(),0)

        get_questions_api = GetQuestionsApi(self.game_anchor_login_name)
        response = get_questions_api.get({'room_id': self.game_room})
        self.assertEqual(get_questions_api.get_code(), 0)

        self.assertEqual(json.loads(response.content)['result']['question_list'][0]['status'],2)
        now_time_format = datetime.datetime.now().strftime("%Y-%m-%d")
        self.assertIn(now_time_format, json.loads(response.content)['result']['question_list'][0]['end_time'])

        set_answer_api = SetAnswerApi(self.game_anchor_login_name)
        response = set_answer_api.get({'question_id': quiz_questions_id,'option':'A'})
        self.assertEqual(set_answer_api.get_code(),0)
        question_obj = json.loads(response.content)['result']['question_obj']
        self.assertEqual(question_obj['status'],3)
        self.assertEqual(question_obj['result'],u'A')
        time.sleep(2)
        consum_api = ConsumptionApi(self.user_login_name)
        response = consum_api.get()
        self.assertEqual(consum_api.get_code(),0)
        consume_list = json.loads(response.content)['result']['consume_list']
        self.assertEqual(len(consume_list),1)

        self.assertEqual(consume_list[0]['user_id'],self.user_id)
        self.assertIn(now_time_format,consume_list[0]['create_time'])
        self.assertEqual(consume_list[0]['type'],u'101')
        self.assertEqual(consume_list[0]['gold'],50000)
        self.assertEqual(consume_list[0]['corresponding_id'],quiz_questions_id)
        self.assertEqual(consume_list[0]['corresponding_name'],u'A')
        self.assertEqual(consume_list[0]['corresponding_num'],0)
        self.assertEqual(consume_list[0]['room_id'],self.game_room)
        self.assertEqual(consume_list[0]['status'],1)
        self.assertEqual(consume_list[0]['behavior_desc'],u'竞猜下注')
        self.assertEqual(consume_list[0]['consumption_type'],u'50000金币')

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

        consum_api = ConsumptionApi(self.user_login_name_two)
        response = consum_api.get()
        self.assertEqual(consum_api.get_code(),0)
        consume_list = json.loads(response.content)['result']['consume_list']
        self.assertEqual(len(consume_list),1)

        self.assertEqual(consume_list[0]['user_id'],self.user_id_two)
        self.assertIn(now_time_format,consume_list[0]['create_time'])
        self.assertEqual(consume_list[0]['type'],u'101')
        self.assertEqual(consume_list[0]['gold'],20000)
        self.assertEqual(consume_list[0]['corresponding_id'],quiz_questions_id)
        self.assertEqual(consume_list[0]['corresponding_name'],u'B')
        self.assertEqual(consume_list[0]['corresponding_num'],0)
        self.assertEqual(consume_list[0]['room_id'],self.game_room)
        self.assertEqual(consume_list[0]['status'],1)
        self.assertEqual(consume_list[0]['behavior_desc'],u'竞猜下注')
        self.assertEqual(consume_list[0]['consumption_type'],u'20000金币')

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

        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]['user_id'],self.user_id)
        self.assertEqual(account_list[0]['type'],u'102')
        self.assertEqual(account_list[0]['gold'],70000)

        self.assertEqual(account_list[0]['corresponding_id'],quiz_questions_id)
        self.assertEqual(account_list[0]['corresponding_name'],u'A')
        self.assertEqual(account_list[0]['corresponding_num'],0)
        self.assertEqual(account_list[0]['status'],1)
        self.assertEqual(account_list[0]['money'],0)
        self.assertEqual(account_list[0]['behavior_desc'],u'竞猜奖励')
        self.assertEqual(account_list[0]['consumption_type'],u'70000金币')
        self.assertEqual(account_list[0]['room_id'],self.game_room)


        gold_account_api = GoldAccountApi(self.user_login_name_two)
        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),0)
Ejemplo n.º 6
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)
Ejemplo n.º 7
0
    def action(self, **kwargs):
        guard_price = 0
        guard_id = kwargs['guard_id']
        user_rank = kwargs['user_rank']
        sun_max_num = kwargs['sun_max_num']
        anchor_rank = kwargs['anchor_rank']
        following = kwargs['following']
        expire_time_num = None
        guard_rank = 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 == 6:
            guard_price = 3528000
        elif guard_id == 12:
            guard_price = 7056000
        elif guard_id == 13:
            guard_price = 14112000
        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)

        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']

        if 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)

        buy_guard_api = BuyGuardApi(self.login_name)
        response = buy_guard_api.get({
            'room_id': self.room_id,
            'guard_id': guard_id,
            'currency': 'gold'
        })

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

        guard_list = json.loads(response.content)['result']['guard_list']
        self.assertEqual(len(guard_list), 1)
        self.assertEqual(guard_list[0]['user_rank'], user_rank)
        self.assertEqual(guard_list[0]['user_experience_all'], guard_price)
        self.assertEqual(guard_list[0]['sun_resumed_time'], 180)
        self.assertEqual(guard_list[0]['sun_max_num'], sun_max_num)

        user_guard_obj = guard_list[0]['user_guard_obj']
        self.assertEqual(user_guard_obj['user_id'], (self.user_id))

        def assert_guard_obj(obj, guard_id):
            if guard_id == 1:
                guard_rank = 1
                expire_time_num = range(28, 32)
                self.assertEqual(user_guard_obj['guard_rank'], guard_rank)
                self.assertIn(user_guard_obj['rest_time_int'], expire_time_num)
                expire_time_num_format = []
                for x in expire_time_num:
                    expire_time_num_format.append(u'{0}天'.format(x))
                self.assertIn(user_guard_obj['rest_time_str'],
                              expire_time_num_format)

            elif guard_id == 2:
                guard_rank = 2
                expire_time_num = range(59, 63)
                self.assertEqual(user_guard_obj['guard_rank'], guard_rank)
                self.assertIn(user_guard_obj['rest_time_int'], expire_time_num)
                expire_time_num_format = []
                for x in expire_time_num:
                    expire_time_num_format.append(u'{0}天'.format(x))
                self.assertIn(user_guard_obj['rest_time_str'],
                              expire_time_num_format)
            elif guard_id in [3, 6]:
                guard_rank = 3
                self.assertEqual(user_guard_obj['guard_rank'], guard_rank)
                if guard_id == 3:
                    expire_time_num = range(89, 94)
                    self.assertIn(user_guard_obj['rest_time_int'],
                                  expire_time_num)
                    expire_time_num_format = []
                    for x in expire_time_num:
                        expire_time_num_format.append(u'{0}天'.format(x))
                    self.assertIn(user_guard_obj['rest_time_str'],
                                  expire_time_num_format)
                elif guard_id == 6:
                    expire_time_num = range(183, 187)
                    self.assertIn(user_guard_obj['rest_time_int'],
                                  expire_time_num)
                    expire_time_num_format = []
                    for x in expire_time_num:
                        expire_time_num_format.append(u'{0}天'.format(x))
                    self.assertIn(user_guard_obj['rest_time_str'],
                                  expire_time_num_format)
            elif guard_id in [12, 13]:
                guard_rank = 4
                self.assertEqual(user_guard_obj['guard_rank'], guard_rank)
                if guard_id == 12:
                    expire_time_num = range(369, 373)
                    self.assertIn(user_guard_obj['rest_time_int'],
                                  expire_time_num)
                    expire_time_num_format = []
                    for x in expire_time_num:
                        expire_time_num_format.append(u'{0}天'.format(x))
                    self.assertIn(user_guard_obj['rest_time_str'],
                                  expire_time_num_format)
                elif guard_id == 13:
                    expire_time_num = range(739, 745)
                    self.assertIn(user_guard_obj['rest_time_int'],
                                  expire_time_num)
                    expire_time_num_format = []
                    for x in expire_time_num:
                        expire_time_num_format.append(u'{0}天'.format(x))
                    self.assertIn(user_guard_obj['rest_time_str'],
                                  expire_time_num_format)

        assert_guard_obj(obj=user_guard_obj, guard_id=guard_id)

        intimacy_obj = guard_list[0]['intimacy_obj']

        def assert_intimacy(obj, following, guard_id, identity=False):
            inti_dic = {}
            if guard_id == 1:
                inti_dic = {
                    'intimacy_experience': 113000,
                    'intimacy_rank': 7,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif guard_id == 2:
                inti_dic = {
                    'intimacy_experience': 76000,
                    'intimacy_rank': 10,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif guard_id == 3:
                inti_dic = {
                    'intimacy_experience': 264000,
                    'intimacy_rank': 11,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif guard_id == 6:
                inti_dic = {
                    'intimacy_experience': 528000,
                    'intimacy_rank': 13,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif guard_id == 12:
                inti_dic = {
                    'intimacy_experience': 56000,
                    'intimacy_rank': 15,
                    'level': 1,
                    'level_name': u'喜爱'
                }
            elif guard_id == 13:
                inti_dic = {
                    'intimacy_experience': 112000,
                    'intimacy_rank': 17,
                    'level': 2,
                    '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'])
                if guard_id == 13:
                    self.assertEqual(intimacy_level_obj['rank_start'], 16)
                    self.assertEqual(intimacy_level_obj['rank_end'], 30)
                else:
                    self.assertEqual(intimacy_level_obj['rank_start'], 1)
                    self.assertEqual(intimacy_level_obj['rank_end'], 15)
            else:
                if identity:
                    self.assertEqual(obj['intimacy_experience'], 0)
                    self.assertEqual(obj['intimacy_rank'], 1)
                    self.assertEqual(obj['intimacy_next_experience'], 10000)
                    self.assertEqual(obj['intimacy_level_obj']['level'], 1)
                    self.assertEqual(obj['intimacy_level_obj']['level_name'],
                                     u'喜爱')
                    self.assertEqual(obj['intimacy_level_obj']['rank_start'],
                                     1)
                    self.assertEqual(obj['intimacy_level_obj']['rank_end'], 15)
                else:
                    self.assertEqual(obj['intimacy_experience'], 0)
                    self.assertEqual(obj['intimacy_rank'], 0)
                    self.assertEqual(obj['intimacy_next_experience'], 0)
                    self.assertIsNone(obj['intimacy_level_obj'])

        assert_intimacy(intimacy_obj, following, guard_id)

        identity_obj = json.loads(response.content)['result']['identity_obj']
        identity_user_guard_obj = identity_obj['user_guard_obj']
        self.assertEqual(identity_user_guard_obj['user_id'], (self.user_id))
        assert_guard_obj(obj=identity_user_guard_obj, guard_id=guard_id)

        identity_intimacy_obj = json.loads(
            response.content)['result']['identity_obj']['intimacy_obj']
        assert_intimacy(identity_intimacy_obj,
                        following,
                        guard_id,
                        identity=True)

        if following:
            self.assertEqual(identity_obj['has_followed'], 1)
        else:
            self.assertEqual(identity_obj['has_followed'], 0)

        anchor_obj = json.loads(
            response.content)['result']['room_obj']['anchor_obj']
        self.assertEqual(anchor_obj['id'], self.anchor_id)
        self.assertEqual(anchor_obj['anchor_rank'], anchor_rank)
        self.assertEqual(anchor_obj['sun_resumed_time'], 180)
        self.assertEqual(anchor_obj['sun_max_num'], 50)

        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_buy = json.loads(
            response.content)['result']['room_obj']['curr_hot_num']

        self.assertEqual(room_hot_num_after_buy - room_hot_num, guard_price)

        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']), 1)
        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'3')
        self.assertEqual(consume_list['gold'], guard_price)
        self.assertEqual(consume_list['corresponding_id'], guard_id)
        self.assertEqual(consume_list['corresponding_name'], u'守护')
        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金币' % guard_price)

        my_guard_api = MyGuardApi(self.login_name)
        response = my_guard_api.get()

        self.assertEqual(my_guard_api.get_code(), 0)
        guard_list = json.loads(response.content)['result']['guard_list']
        self.assertEqual(len(guard_list), 1)
        self.assertEqual(guard_list[0]['anchor_id'], self.anchor_id)
        if guard_id == 1:
            guard_rank = 1
            expire_time_num = 31
        elif guard_id == 2:
            guard_rank = 2
            expire_time_num = 62
        elif guard_id in [3, 6]:
            guard_rank = 3
            if guard_id == 3:
                expire_time_num = 93
            elif guard_id == 6:
                expire_time_num = 186
        elif guard_id in [12, 13]:
            guard_rank = 4
            if guard_id == 12:
                expire_time_num = 372
            elif guard_id == 13:
                expire_time_num = 744
        expire_time = (
            datetime.datetime.now() +
            datetime.timedelta(days=+expire_time_num)).strftime("%Y-%m-%d")
        self.assertIn(expire_time, guard_list[0]['expire_time'])
        self.assertEqual(guard_list[0]['guard_rank'], guard_rank)

        room_obj = guard_list[0]['room_obj']
        self.assertEqual(room_obj['id'], self.room_id)
        self.assertEqual(room_obj['room_type'], 1)
        self.assertEqual(room_obj['room_style'], 1)
        self.assertEqual(room_obj['room_style_extend'], 0)
        guard_list_anchor_obj = room_obj['anchor_obj']
        self.assertEqual(guard_list_anchor_obj['id'], self.anchor_id)
        self.assertEqual(guard_list_anchor_obj['anchor_rank'], anchor_rank)
        if guard_id in [1, 2, 3, 12]:

            enter_room_api = EnterRoomApi(self.login_name)
            response = enter_room_api.get({'room_id': self.room_id})
            self.assertEqual(enter_room_api.get_code(), 0)

            ani_obj = json.loads(
                response.content
            )['result']['enter_room_message']['msg']['obj']['ani_obj']
            self.assertEqual(ani_obj['ani_type'], u'entry_guard')
            if guard_id == 1:
                self.assertEqual(ani_obj['ani_id'], 1)
            elif guard_id == 2:
                self.assertEqual(ani_obj['ani_id'], 2)
            elif guard_id == 3:
                self.assertEqual(ani_obj['ani_id'], 3)
            elif guard_id == 12:
                self.assertEqual(ani_obj['ani_id'], 4)
            self.assertEqual(ani_obj['ani_num'], 0)
            self.assertIsNone(ani_obj['category_type'])
Ejemplo n.º 8
0
    def test_add_anchor_to_group_consumption(self):
        """
        测试主播团日志
        :return:
        """
        user_id = self.user_id
        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=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(self.time_sleep)

            open_anchor_group_api = OpenAnchorGroupApi(self.user_login_name)
            open_anchor_group_api.get()
            if open_anchor_group_api.get_code() == 200502:
                time.sleep(self.time_sleep)
                self.count += 1
            else:
                self.assertEqual(open_anchor_group_api.get_code(), 0)
                break
        self.assertLess(self.count, self.max_count)

        consumption_api = ConsumptionApi(self.user_login_name)
        response = consumption_api.get()
        consume_list = json.loads(response.content)['result']['consume_list']
        self.assertEqual(consumption_api.get_code(), 0)
        self.assertEqual(len(consume_list), 1)
        self.assertEqual(consume_list[0]['type'], u'7')
        self.assertEqual(consume_list[0]['gold'], 100000)
        self.assertEqual(consume_list[0]['corresponding_name'], u'主播团')
        self.assertEqual(consume_list[0]['consumption_type'], u'100000金币')
        self.assertEqual(consume_list[0]['behavior_desc'], u'开通主播团')
        while self.count < self.max_count:
            mysql_operation = MysqlOperation(user_id=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=638000)
            RedisHold().clean_redis_user_detail(self.user_id)
            time.sleep(self.time_sleep)
            buy_guard_api = BuyGuardApi(self.user_login_name)
            guard_response = buy_guard_api.get({
                'room_id': room_id,
                'guard_id': '1',
                '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)
                self.assertEqual(
                    json.loads(guard_response.content)['result']
                    ['identity_obj']['user_guard_obj']['guard_rank'], 1)
                break
        self.assertLess(self.count, self.max_count)

        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)
        # 消费记录
        consumption_api = ConsumptionApi(self.user_login_name)
        response = consumption_api.get()
        consume_list = json.loads(response.content)['result']['consume_list']
        self.assertEqual(consumption_api.get_code(), 0)
        self.assertEqual(consume_list[0]['gold'], 50000)
        self.assertEqual(consume_list[0]['corresponding_name'], u'纳入主播团')
        self.assertEqual(consume_list[0]['consumption_type'], u'50000金币')
        self.assertEqual(consume_list[0]['behavior_desc'], u'纳入主播团')
        self.assertEqual(consume_list[0]['user_id'], self.user_id)
        self.assertEqual(
            consume_list[0]['room_title'],
            MysqlOperation(room_id=room_id).get_room_details()['title'])
Ejemplo n.º 9
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)
Ejemplo n.º 10
0
    def buy_noble_action(self, **kwargs):
        noble_price = kwargs['noble_price']
        noble_time = kwargs['noble_time']
        noble_id = kwargs['noble_id']
        user_rank = kwargs['user_rank']
        noble_rest_time_int = kwargs['noble_rest_time_int']
        user_exp = kwargs['user_exp']

        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': noble_time,
            'room_id': self.room_id,
            'currency': 'gold'
        })
        self.assertEqual(buy_noble_api.get_code(), 0)
        self.assertEqual(buy_noble_api.get_response_message(), u'操作成功')

        response_identity_obj = json.loads(
            response.content)['result']['identity_obj']
        self.assertEqual(response_identity_obj['diamond'], u'0')
        self.assertEqual(response_identity_obj['gold'], 0)
        self.assertEqual(response_identity_obj['user_rank'], user_rank)
        self.assertEqual(response_identity_obj['user_experience'], user_exp)
        self.assertEqual(response_identity_obj['noble_rank'], noble_id)
        self.assertIn(response_identity_obj['noble_rest_time_int'],
                      noble_rest_time_int)
        noble_rest_time_int_format = []
        for x in noble_rest_time_int:
            noble_rest_time_int_format.append(u'{0}天'.format(x))
        self.assertIn(response_identity_obj['noble_rest_time_str'],
                      noble_rest_time_int_format)

        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']), 1)
        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'2')
        self.assertEqual(consume_list['gold'], noble_price)
        self.assertEqual(consume_list['corresponding_id'], noble_id)
        self.assertEqual(consume_list['corresponding_name'], u'贵族')
        self.assertEqual(consume_list['corresponding_num'], 1)
        self.assertEqual(consume_list['room_id'], u'')
        self.assertEqual(consume_list['status'], 1)
        self.assertEqual(consume_list['behavior_desc'], u'购买贵族')
        self.assertEqual(consume_list['room_title'], u'-- --')
        self.assertEqual(consume_list['consumption_type'],
                         u'%s金币' % noble_price)
        if noble_time == 1:
            enter_room_api = EnterRoomApi(self.login_name)
            response = enter_room_api.get({'room_id': self.room_id})
            self.assertEqual(enter_room_api.get_code(), 0)

            ani_obj = json.loads(
                response.content
            )['result']['enter_room_message']['msg']['obj']['ani_obj']
            self.assertEqual(ani_obj['ani_type'], u'entry_noble')
            self.assertEqual(ani_obj['ani_id'], noble_id)
            self.assertEqual(ani_obj['ani_num'], 0)
            self.assertIsNone(ani_obj['category_type'])
Ejemplo n.º 11
0
    def send_action(self, **kwargs):
        price = kwargs['price']
        conf_id = kwargs['conf_id']
        num = kwargs['num']
        red_gift_id = None
        red_type = None

        red_name = None
        if conf_id == 1:
            red_name = u'福利包'
            red_gift_id = 44
            red_type = 1
        elif conf_id == 2:
            red_name = u'土豪包'
            red_gift_id = 45
            red_type = 2
        elif conf_id == 3:
            red_name = u'至尊包'
            red_gift_id = 46
            red_type = 3

        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=price)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(self.time_sleep)
        # 发红包
        send_red_packet_api = SendRedPacketApi(self.login_name)
        response = send_red_packet_api.get({
            'conf_id': conf_id,
            'room_id': self.room_id,
            'num': num,
            'currency': 'gold'
        })

        self.assertEqual(send_red_packet_api.get_code(), 0)
        red_packet_obj = json.loads(
            response.content)['result']['red_packet_obj']
        red_package_id = red_packet_obj['id']
        self.assertEqual(red_packet_obj['user_id'], int(self.user_id))
        self.assertEqual(red_packet_obj['room_id'], int(self.room_id))
        self.assertEqual(red_packet_obj['num'], num)
        self.assertEqual(red_packet_obj['gold'], price)
        self.assertEqual(red_packet_obj['real_gold'], price)
        self.assertEqual(red_packet_obj['left_num'], num)
        self.assertEqual(red_packet_obj['left_gold'], price * 0.8)
        self.assertEqual(red_packet_obj['fact_gold'], price * 0.8)
        self.assertEqual(red_packet_obj['red_gift_id'], red_gift_id)
        for x in [
                red_packet_obj['diamond'], red_packet_obj['real_diamond'],
                red_packet_obj['left_diamond'], red_packet_obj['fact_diamond']
        ]:
            self.assertEqual(x, 0)

        start_time = red_packet_obj['start_time']
        end_time = red_packet_obj['end_time']
        self.assertEqual(int(end_time) - int(start_time), 86400)
        self.assertEqual(red_packet_obj['red_status'], 1)
        self.assertEqual(red_packet_obj['type'], red_type)
        self.assertEqual(red_packet_obj['name'], red_name)
        self.assertLessEqual(red_packet_obj['count_down_time'], 60)
        self.assertLessEqual(55, red_packet_obj['count_down_time'])
        self.assertEqual(red_packet_obj['currency_type'], 1)

        identity_obj = json.loads(response.content)['result']['identity_obj']
        self.assertEqual(identity_obj['gold'], 0)
        if red_type == 3:
            self.assertEqual(identity_obj['user_experience'],
                             int(price * 0.2) - 100000)
        else:
            self.assertEqual(identity_obj['user_experience'], int(price * 0.2))

        # 获取房间内可抢红包列表
        get_red_packet_list_api = GetRedPacketListApi(self.login_name)
        list_response = get_red_packet_list_api.get({'room_id': self.room_id})

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

        user_red_packet_list = json.loads(
            list_response.content)['result']['user_red_packet_list']
        self.assertEqual(len(user_red_packet_list), 1)

        list_red_packet_obj = user_red_packet_list[0]['red_packet_obj']
        self.assertEqual(list_red_packet_obj['id'], red_packet_obj['id'])
        self.assertEqual(list_red_packet_obj['user_id'], int(self.user_id))
        self.assertEqual(list_red_packet_obj['room_id'], int(self.room_id))
        self.assertEqual(list_red_packet_obj['num'], num)
        self.assertEqual(list_red_packet_obj['gold'], price)
        self.assertEqual(list_red_packet_obj['real_gold'], price)
        self.assertEqual(list_red_packet_obj['left_gold'], price * 0.8)
        self.assertEqual(list_red_packet_obj['fact_gold'], price * 0.8)
        if red_type == 1:
            self.assertEqual(list_red_packet_obj['red_gift_id'], 44)
        elif red_type == 2:
            self.assertEqual(list_red_packet_obj['red_gift_id'], 45)
        elif red_type == 3:
            self.assertEqual(list_red_packet_obj['red_gift_id'], 46)
        self.assertEqual(list_red_packet_obj['left_num'], num)
        for x in [
                list_red_packet_obj['diamond'],
                list_red_packet_obj['real_diamond'],
                list_red_packet_obj['left_diamond'],
                list_red_packet_obj['fact_diamond']
        ]:
            self.assertEqual(x, 0)
        self.assertEqual(list_red_packet_obj['red_status'], 1)
        self.assertEqual(list_red_packet_obj['name'], red_name)
        self.assertEqual(list_red_packet_obj['currency_type'], 1)
        self.assertLessEqual(list_red_packet_obj['count_down_time'], 60)
        self.assertLessEqual(55, list_red_packet_obj['count_down_time'])

        user_obj = user_red_packet_list[0]['user_obj']
        self.assertEqual(user_obj['id'], self.user_id)
        if red_type == 3:
            self.assertEqual(user_obj['user_rank'], 3)
        else:
            self.assertEqual(user_obj['user_rank'], 1)

        self.assertEqual(user_obj['user_experience_all'], int(price * 0.2))

        intimacy_obj = user_obj['intimacy_obj']
        for x in [
                intimacy_obj['intimacy_experience'],
                intimacy_obj['intimacy_rank'],
                intimacy_obj['intimacy_next_experience']
        ]:
            self.assertEqual(x, 0)
        self.assertIsNone(intimacy_obj['intimacy_level_obj'])
        # 发放红包历史
        time.sleep(3)
        get_history_api = GetHistoryApi(self.login_name)
        response = get_history_api.get()
        self.assertEqual(get_history_api.get_code(), 0)
        self.assertEqual(json.loads(response.content)['result']['count'], 1)
        red_packet_history_list = json.loads(
            response.content)['result']['red_packet_history_list']
        self.assertEqual(red_packet_history_list[0]['red_packet_obj']['id'],
                         red_package_id)
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['user_id'],
            int(self.user_id))
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['room_id'],
            int(self.room_id))
        self.assertEqual(red_packet_history_list[0]['red_packet_obj']['num'],
                         num)
        self.assertEqual(red_packet_history_list[0]['red_packet_obj']['gold'],
                         price)
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['real_gold'], price)
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['left_num'], num)
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['left_gold'],
            int(price * 0.8))
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['fact_gold'],
            int(price * 0.8))

        if red_type == 1:
            self.assertEqual(
                red_packet_history_list[0]['red_packet_obj']['red_gift_id'],
                44)
        elif red_type == 2:
            self.assertEqual(
                red_packet_history_list[0]['red_packet_obj']['red_gift_id'],
                45)
        elif red_type == 3:
            self.assertEqual(
                red_packet_history_list[0]['red_packet_obj']['red_gift_id'],
                46)
        for x in [
                red_packet_history_list[0]['red_packet_obj']['diamond'],
                red_packet_history_list[0]['red_packet_obj']['real_diamond'],
                red_packet_history_list[0]['red_packet_obj']['left_diamond'],
                list_red_packet_obj['fact_diamond']
        ]:
            self.assertEqual(x, 0)
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['red_status'], 1)
        self.assertEqual(red_packet_history_list[0]['red_packet_obj']['name'],
                         red_name)
        self.assertEqual(
            red_packet_history_list[0]['red_packet_obj']['currency_type'], 1)
        self.assertLessEqual(
            red_packet_history_list[0]['red_packet_obj']['count_down_time'],
            60)
        self.assertLessEqual(
            55,
            red_packet_history_list[0]['red_packet_obj']['count_down_time'])

        consumption_api = ConsumptionApi(self.login_name)
        response = consumption_api.get()
        self.assertEqual(consumption_api.get_code(), 0)
        self.assertEqual(
            json.loads(response.content)['result']['total_page'], 1)
        consume_list = json.loads(response.content)['result']['consume_list']
        self.assertEqual(len(consume_list), 1)
        self.assertEqual(consume_list[0]['user_id'], self.user_id)
        self.assertIn(datetime.datetime.now().strftime("%Y-%m-%d"),
                      consume_list[0]['create_time'])
        self.assertEqual(consume_list[0]['type'], u'4')
        self.assertEqual(consume_list[0]['gold'], price)
        self.assertEqual(consume_list[0]['corresponding_id'], 0)
        self.assertEqual(consume_list[0]['corresponding_name'], u'金币')
        self.assertEqual(consume_list[0]['corresponding_num'], 0)
        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金币' % price)

        if num == 50:
            time.sleep(65)
            grab_red_package_api = GrabRedPacket(self.login_name)
            response = grab_red_package_api.get({
                'red_packet_id': red_package_id,
                'room_id': self.room_id
            })
            self.assertEqual(grab_red_package_api.get_code(), 0)
            red_packet_log_obj = json.loads(
                response.content)['result']['red_packet_log_obj']
            self.assertEqual(red_packet_log_obj['red_packet_id'],
                             red_package_id)
            self.assertEqual(red_packet_log_obj['user_id'], int(self.user_id))
            self.assertEqual(red_packet_log_obj['room_id'], int(self.room_id))

            self.assertEqual(red_packet_log_obj['get_diamond'], 0)
            self.assertNotEqual(red_packet_log_obj['get_gold'], 0)
            get_gold = red_packet_log_obj['get_gold']

            self.assertEqual(
                len(
                    json.loads(
                        response.content)['result']['user_red_packet_list']),
                0)
            self.assertEqual(
                json.loads(response.content)['result']['total_count'], 0)

            identity_obj = json.loads(
                response.content)['result']['identity_obj']
            self.assertEqual(identity_obj['gold'], get_gold)
            self.assertEqual(identity_obj['diamond'], u'0')
            if red_type == 3:
                self.assertEqual(identity_obj['user_experience'],
                                 int(price * 0.2) - 100000)
            else:
                self.assertEqual(identity_obj['user_experience'],
                                 int(price * 0.2))

            gold_account_api = GoldAccountApi(self.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]['user_id'], self.user_id)
            self.assertIn(datetime.datetime.now().strftime("%Y-%m-%d"),
                          account_list[0]['create_time'])
            self.assertEqual(account_list[0]['type'], u'2')
            self.assertEqual(account_list[0]['gold'], get_gold)

            self.assertEqual(account_list[0]['corresponding_id'], 0)
            self.assertEqual(account_list[0]['corresponding_name'], u'金币')
            self.assertEqual(account_list[0]['corresponding_num'], 0)
            self.assertEqual(account_list[0]['status'], 1)
            self.assertEqual(account_list[0]['behavior_desc'], u'抢红包')
            self.assertEqual(
                account_list[0]['room_title'],
                MysqlOperation(
                    room_id=self.room_id).get_room_details()['title'])
            self.assertEqual(account_list[0]['consumption_type'],
                             u'%s金币' % get_gold)
            self.assertEqual(account_list[0]['money'], 0)

            get_grab_history_api = GetGrabHistoryApi(self.login_name)
            response = get_grab_history_api.get(
                {'red_packet_id': red_package_id})
            self.assertEqual(get_grab_history_api.get_code(), 0)

            red_packet_obj = json.loads(
                response.content)['result']['red_packet_obj']
            self.assertEqual(red_packet_obj['id'], red_package_id)
            self.assertEqual(red_packet_obj['user_id'], int(self.user_id))
            self.assertEqual(red_packet_obj['room_id'], int(self.room_id))
            self.assertEqual(red_packet_obj['num'], num)
            self.assertEqual(red_packet_obj['gold'], price)
            self.assertEqual(red_packet_obj['real_gold'], price)
            self.assertLess(red_packet_obj['left_num'], 50)
            self.assertLessEqual(0, red_packet_obj['left_num'])
            self.assertEqual(red_packet_obj['fact_gold'], int(price * 0.8))
            for x in [red_packet_obj['left_gold']]:
                self.assertLess(x, price * 0.8)
                self.assertLess(0, x)
            for x in [
                    red_packet_obj['diamond'], red_packet_obj['real_diamond'],
                    red_packet_obj['left_diamond'],
                    red_packet_obj['fact_diamond']
            ]:
                self.assertEqual(x, 0)
            self.assertEqual(red_packet_obj['red_status'], 1)
            self.assertEqual(red_packet_obj['type'], red_type)
            self.assertEqual(red_packet_obj['status'], 1)
            self.assertEqual(red_packet_obj['name'], red_name)
            self.assertEqual(red_packet_obj['count_down_time'], 0)
            self.assertEqual(red_packet_obj['currency_type'], 1)

            self.assertLess(
                0,
                len(
                    json.loads(
                        response.content)['result']['red_packet_log_list']))
Ejemplo n.º 12
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))