def test_open_anchor_group_successful(self):
        """
        测试开通主播团成功
        :return:
        """
        while self.count < self.max_count:
            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(self.time_sleep)

            open_anchor_group_api = OpenAnchorGroupApi(self.user_login_name)
            response = open_anchor_group_api.get()
            if open_anchor_group_api.get_code() == 100032:
                time.sleep(self.time_sleep)
                self.count += 1
            else:

                self.assertEqual(open_anchor_group_api.get_code(), 0)
                anchor_group_obj = json.loads(
                    response.content)['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)
                break
        self.assertLess(self.count, self.max_count)
Beispiel #2
0
    def test_quiz_stop_last_not_set_answer(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)

        question_ids = []
        for x in MysqlOperation(room_id=self.game_room).get_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)

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

        quiz_api = QuizApi(self.user_login_name)
        quiz_api.get({
            'question_id': quiz_questions_id,
            'gold': '20000',
            'option': 'A'
        })
        self.assertEqual(quiz_api.get_code(), 505209)
        self.assertEqual(quiz_api.get_response_message(),
                         u'对不起,管理员已停止该竞猜,快去竞猜下一个题目吧')
Beispiel #3
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)
    def test_get_task_reward_anchor_id_error(self):
        """
        测试请求接口主播ID不存在,可以成功
        :return:
        """
        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=100)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.3)
        send_gift_ajax = LiveSendGift(self.user_mobile)
        send_gift_ajax.get({
            'room_id': self.room_id,
            'anchor_id': self.anchor_id,
            'gift_id': 60,
            'gift_count': 1,
            'currency': 'gold'
        })
        self.assertEqual(send_gift_ajax.get_resp_code(), 0)
        time.sleep(3)

        get_task_reward_ajax = GetTaskRewardAjax(self.user_mobile)
        get_task_reward_ajax.get({
            'task_behavior': 'send_gift',
            'room_id': self.room_id,
            'anchor_id': '90909090'
        })
        self.assertEqual(get_task_reward_ajax.get_resp_code(), 0)
    def test_diamond_get_list_can_be_add(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=7156000)
            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() == 100032:
                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)
        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=7056000)
            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': '12',
                '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']['guard_list']
                    [0]['user_guard_obj']['guard_rank'], 4)
                list_can_be_add_api = ListCanBeAddApi(self.user_login_name)
                response = list_can_be_add_api.get()

                self.assertEqual(list_can_be_add_api.get_code(), 0)
                self.assertEqual(list_can_be_add_api.get_response_message(),
                                 u'操作成功')
                anchor_list = json.loads(
                    response.content)['result']['anchor_list']
                self.assertEqual(len(anchor_list), 1)
                self.assertEqual(anchor_list[0]['room_obj']['id'], (room_id))
                break
        self.assertLess(self.count, self.max_count)
Beispiel #6
0
 def anchor_num_teardown(self, room_id, user_id, anchor_id):
     mysql_operation = MysqlOperation(user_id=user_id)
     mysql_operation.clean_user_anchor_group()
     Redis().clean_anchor_group(user_id, anchor_id)
     mysql_operation.fix_user_rank_and_experience()
     mysql_operation.fix_user_account().clean_user_account_log()
     RedisHold().clean_redis_user_detail(user_id)
     Redis().clean_user_bean(user_id)
     RedisHold().clean_redis_room_detail(room_id, anchor_id)
    def renew_noble_action(self, **kwargs):
        noble_price = kwargs['noble_price']
        first_noble_id = kwargs['first_noble_id']
        second_noble_id = kwargs['second_noble_id']
        user_rank = kwargs['user_rank']

        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': first_noble_id,
            'num': 1,
            'room_id': self.room_id,
            'currency': 'gold'
        })
        self.assertEqual(buy_noble_api.get_code(), 0)
        self.assertEqual(buy_noble_api.get_response_message(), u'操作成功')
        identity_obj = json.loads(response.content)['result']['identity_obj']

        buy_noble_renew = BuyNobleApi(self.login_name)
        renew_response = buy_noble_renew.get({
            'noble_id': second_noble_id,
            'num': 1,
            'room_id': self.room_id,
            'currency': 'gold'
        })
        if second_noble_id < first_noble_id:
            self.assertEqual(buy_noble_renew.get_code(), 402026)
            self.assertEqual(buy_noble_renew.get_response_message(),
                             u'您选择的贵族低于您当前已拥有的贵族等级,无法开通')
            self.assertEqual(identity_obj['user_rank'], user_rank)
        else:
            self.assertEqual(buy_noble_renew.get_code(), 0)
            self.assertEqual(buy_noble_renew.get_response_message(), u'操作成功')

            renew_response_identity_obj = json.loads(
                renew_response.content)['result']['identity_obj']
            self.assertEqual(renew_response_identity_obj['diamond'], u'0')
            self.assertEqual(renew_response_identity_obj['gold'], 0)
            self.assertEqual(renew_response_identity_obj['user_rank'],
                             user_rank)
            if second_noble_id == first_noble_id:
                noble_rest_time = range(28, 32)
                self.assertEqual(renew_response_identity_obj['noble_rank'],
                                 first_noble_id)
            else:
                noble_rest_time = [-1, 0, 1]
                self.assertEqual(renew_response_identity_obj['noble_rank'],
                                 second_noble_id)
            self.assertIn(
                renew_response_identity_obj['noble_rest_time_int'] -
                identity_obj['noble_rest_time_int'], noble_rest_time)
Beispiel #8
0
 def add_anchor_to_group_teardown(self, user_id, anchor_id):
     mysql_operation = MysqlOperation(user_id=user_id)
     mysql_operation.fix_user_rank_and_experience()
     mysql_operation.fix_user_account()
     Redis().clean_anchor_group(user_id, anchor_id)
     for i in [user_id, anchor_id]:
         RedisHold().clean_redis_user_detail(i)
         MysqlOperation(
             user_id=i).clean_user_anchor_group().clean_user_account_log()
     Redis().clean_user_buy_guard(user_id, anchor_id)
     time.sleep(self.time_sleep)
Beispiel #9
0
    def test_buy_sun_no_following_success(self):
        """
        测试未关注主播购买太阳
        :return:
        """
        # 用户加钱
        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=2000)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.5)

        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']
        # 获取太阳数量
        sun_num = live_result['room_obj']['sun_num']

        buy_sun = BuySunAjax(self.user_mobile)
        buy_sun.get({'room_id': self.room_id, 'anchor_id': self.anchor_id})
        self.assertEqual(buy_sun.get_resp_code(), 0)

        buy_sun_result = buy_sun.get_resp_result()

        anchor_obj = buy_sun_result['room_obj']['anchor_obj']
        # 校验主播等级
        self.assertEqual(anchor_obj['anchor_rank'], 1)
        # 校验主播经验值
        self.assertEqual(anchor_obj['anchor_experience'], 0)

        identity_obj = buy_sun_result['identity_obj']
        # 校验用户余额
        self.assertEqual(identity_obj['gold'], 0)
        # 校验用户等级
        self.assertEqual(identity_obj['user_rank'], 1)
        # 校验用户经验值增加
        self.assertEqual(identity_obj['user_experience'], 2000)
        # 校验亲密度
        intimacy_obj = identity_obj['intimacy_obj']
        self.assertEqual(intimacy_obj['intimacy_experience'], 0)
        self.assertEqual(intimacy_obj['intimacy_rank'], 0)
        self.assertEqual(intimacy_obj['intimacy_next_experience'], 0)
        self.assertIsNone(intimacy_obj['intimacy_level_obj'])

        # 获取购买太阳成功后房间热度
        after_buy_sun_hot_num = buy_sun_result['room_obj']['curr_hot_num']
        after_buy_sun_sun_num = buy_sun_result['room_obj']['sun_num']

        self.assertEqual(after_buy_sun_hot_num - hot_num, 0)
        self.assertEqual(after_buy_sun_sun_num - sun_num, 20)
Beispiel #10
0
    def test_quiz_question_id_error(self):
        """
        测试请求下注接口问题ID不存在
        :return:
        """
        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=10000)
        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': '999', 'gold': 10000, 'option': 'A'})
        self.assertEqual(quiz_api.get_code(), 505207)
        self.assertEqual(quiz_api.get_response_message(), u'竞猜题目不存在')
    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'])
Beispiel #12
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金币才可转出')
 def tearDown(self, *args):
     super(TestGetTaskRewardAbnormal, self).tearDown()
     mysql_operation = MysqlOperation(user_id=self.user_id,
                                      anchor_id=self.anchor_id)
     mysql_operation.fix_user_account().clean_user_intimacy_rank(
     ).clean_user_account_log()
     mysql_operation.clean_send_gift().clean_user_package_gift(
     ).clean_user_contribution()
     MysqlOperation(anchor_id=self.anchor_id).fix_anchor_rank_and_exp()
     for x in [self.user_id, self.anchor_id]:
         MysqlOperation(user_id=x).fix_user_rank_and_experience()
         RedisHold().clean_redis_user_detail(x)
     RedisHold().clean_redis_room_detail(self.room_id, self.anchor_id)
     MysqlOperation(user_id=self.user_id).fix_user_bind_mobile(
         login_name=self.user_mobile).clean_user_task()
     Redis().clean_check_mobile_code(self.user_id)
     Redis().clean_user_task(self.user_id)
     time.sleep(0.2)
Beispiel #14
0
 def test_buy_noble_gold_low(self):
     """
     测试请求接口账户金币不足
     :return:
     """
     mysql_operation = MysqlOperation(user_id=self.user_id)
     mysql_operation.fix_user_account(gold_num=23999)
     RedisHold().clean_redis_user_detail(self.user_id)
     time.sleep(self.time_sleep)
     buy_noble_api = BuyNobleApi(self.login_name)
     buy_noble_api.get({
         'noble_id': 1,
         'num': 1,
         'room_id': self.room_id,
         'currency': 'gold'
     })
     self.assertEqual(buy_noble_api.get_code(), 100032)
     self.assertEqual(buy_noble_api.get_response_message(), u'账户金币不足')
Beispiel #15
0
 def tearDown(self, *args):
     super(TestBuySunAjax, self).tearDown()
     relieve_follow = RelieveFollowAjax(self.user_mobile)
     relieve_follow.get({
         'room_id': self.room_id,
         'anchor_id': self.anchor_id
     })
     mysql_operation = MysqlOperation(user_id=self.user_id,
                                      anchor_id=self.anchor_id)
     mysql_operation.fix_user_account().clean_user_intimacy_rank(
     ).clean_user_account_log()
     mysql_operation.clean_send_gift().clean_user_package_gift(
     ).clean_user_contribution()
     MysqlOperation(anchor_id=self.anchor_id).fix_anchor_rank_and_exp()
     for x in [self.user_id, self.anchor_id]:
         MysqlOperation(user_id=x).fix_user_rank_and_experience()
         RedisHold().clean_redis_user_detail(x)
     RedisHold().clean_redis_room_detail(self.room_id, self.anchor_id)
     time.sleep(0.3)
Beispiel #16
0
    def test_quiz_option_error(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)

        question_ids = []
        for x in MysqlOperation(room_id=self.game_room).get_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=10000)
        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': 10000,
            'option': 'C'
        })
        self.assertEqual(quiz_api.get_code(), 505208)
        self.assertEqual(quiz_api.get_response_message(), u'竞猜选项不存在')
Beispiel #17
0
    def test_anchor_quiz_me(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)

        question_ids = []
        for x in MysqlOperation(room_id=self.game_room).get_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.game_anchor_id)
        mysql_operation.fix_user_account(gold_num=20000)
        RedisHold().clean_redis_user_detail(self.game_anchor_id)
        time.sleep(self.time_sleep)

        quiz_api = QuizApi(self.game_anchor_login_name)
        quiz_api.get({
            'question_id': quiz_questions_id,
            'gold': '20000',
            'option': 'A'
        })
        self.assertEqual(quiz_api.get_code(), 505226)
        self.assertEqual(quiz_api.get_response_message(), u'主播不能对自己直播间的问题进行投注')
 def test_open_anchor_group_again(self):
     """
     测试重复开通主播团
     :return:
     """
     while self.count < self.max_count:
         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(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)
             while self.count < self.max_count:
                 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(self.time_sleep)
                 open_anchor_group_api_again = OpenAnchorGroupApi(
                     self.user_login_name)
                 open_anchor_group_api_again.get()
                 if open_anchor_group_api_again.get_code() == 200502:
                     time.sleep(self.time_sleep)
                     self.count += 1
                 else:
                     self.assertEqual(
                         open_anchor_group_api_again.get_code(), 200503)
                     self.assertEqual(
                         open_anchor_group_api_again.get_response_message(),
                         u'已经创建过主播团')
                     break
             self.assertLess(self.count, self.max_count)
             break
     self.assertLess(self.count, self.max_count)
Beispiel #19
0
    def test_anchor_colonel_group_anchor_num(self):
        """
        测试用户等级为18时可纳入数量
        :return:
        """
        user_id = self.user_id
        mysql_operation = MysqlOperation(user_id=user_id)
        mysql_operation.fix_user_rank_and_experience(user_rank=18,
                                                     experience_all=2000000)
        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)
        response = open_anchor_group_api.get()
        self.assertEqual(open_anchor_group_api.get_code(), 0)

        anchor_group_obj = json.loads(
            response.content)['result']['anchor_group_obj']
        self.assertEqual(anchor_group_obj['max_num'], 2)
        self.assertEqual(anchor_group_obj['next_level_name'], u'1级上校')
        self.assertEqual(anchor_group_obj['next_level'], 18)
Beispiel #20
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'主播团提现')
Beispiel #21
0
    def test_anchor_group_rob(self):
        """
        测试将其他主播团中主播纳入到自己的主播团
        :return:
        """
        for login_name in [self.user_login_name, self.rob_user_login_name]:
            mysql_operation = MysqlOperation(mobile=login_name)
            user_id = str(mysql_operation.get_user_id())
            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=51326000)
            RedisHold().clean_redis_user_detail(user_id)
            # 依次给用户开通主播团
            open_anchor_group_api = OpenAnchorGroupApi(login_name)
            open_anchor_group_api.get()
            self.assertEqual(open_anchor_group_api.get_code(), 0)
            # 用户依次购买守护
            buy_guard_api = BuyGuardApi(login_name)
            buy_guard_api.get({'room_id': room_id, 'guard_id': '2','currency':'gold'})
            self.assertEqual(buy_guard_api.get_code(), 0)
            time.sleep(self.time_sleep * 2)

        # 用户将主播纳入主播团
        add_anchor_to_group_api = AddAnchorToGroupApi(self.user_login_name)
        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)
        time.sleep(0.5)

        # 查询主播团信息
        my_anchor_group_list_api = MyAnchorGroupListApi(self.user_login_name)
        list_response = my_anchor_group_list_api.get()
        self.assertEqual(my_anchor_group_list_api.get_code(), 0)

        anchor_group_opening_info = json.loads(list_response.content)['result']['anchor_group_opening_info']
        self.assertEqual(anchor_group_opening_info['gold_needed'],100000)
        self.assertEqual(anchor_group_opening_info['is_opened'],1)
        anchor_group_obj = json.loads(list_response.content)['result']['anchor_group_obj']
        self.assertEqual(anchor_group_obj['owend_anchor_count'],1)

        # 用户将主播抢到自己的主播团
        add_anchor_to_group_api = AddAnchorToGroupApi(self.rob_user_login_name)
        add_anchor_to_group_api.get({'anchor_id': anchor_id, 'position': 1,'grab_flag': 1,'change_flag': 0})
        self.assertEqual(add_anchor_to_group_api.get_code(), 0)
        time.sleep(0.5)


        # 查询15020170001主播团信息
        my_anchor_group_list_api = MyAnchorGroupListApi(self.rob_user_login_name)
        list_response = my_anchor_group_list_api.get()
        self.assertEqual(my_anchor_group_list_api.get_code(), 0)
        anchor_group_opening_info = json.loads(list_response.content)['result']['anchor_group_opening_info']
        self.assertEqual(anchor_group_opening_info['gold_needed'],100000)
        self.assertEqual(anchor_group_opening_info['is_opened'],1)
        anchor_group_obj = json.loads(list_response.content)['result']['anchor_group_obj']
        self.assertEqual(anchor_group_obj['owend_anchor_count'],1)


        # 查询13501077762主播团信息
        my_anchor_group_list_api = MyAnchorGroupListApi(self.user_login_name)
        list_response = my_anchor_group_list_api.get()
        self.assertEqual(my_anchor_group_list_api.get_code(), 0)
        anchor_group_obj = json.loads(list_response.content)['result']['anchor_group_obj']
        self.assertEqual(anchor_group_obj['owend_anchor_count'],0)
        time.sleep(2)

        # 查询13501077762主播团日志
        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), 2)
        self.assertIn(u'抢走', anchor_group_log_list[0]['content'])
        self.assertIn(u'被纳入主播团', anchor_group_log_list[1]['content'])

        # 查询15020170001主播团日志
        my_anchor_group_logs_api = MyAnchorGroupLogsApi(self.rob_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), 1)
        self.assertIn(u'被纳入主播团', anchor_group_log_list[0]['content'])
Beispiel #22
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'])
    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 #24
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)
Beispiel #25
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)
    def test_send_gift_task(self):
        """
        测试完成送礼物任务并领取奖励
        :return:
        """
        mysql_operation = MysqlOperation(user_id=self.user_id)
        mysql_operation.fix_user_account(gold_num=100)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.3)
        send_gift_ajax = LiveSendGift(self.user_mobile)
        send_gift_ajax.get({
            'room_id': self.room_id,
            'anchor_id': self.anchor_id,
            'gift_id': 60,
            'gift_count': 1,
            'currency': 'gold'
        })
        self.assertEqual(send_gift_ajax.get_resp_code(), 0)
        time.sleep(3)
        task_list_ajax = TaskListAjax(self.user_mobile)
        task_list_ajax.get()
        self.assertEqual(task_list_ajax.get_resp_code(), 0)
        task_list = task_list_ajax.get_resp_result()['task_list']

        send_gift_task_obj = task_list[3]
        self.assertEqual(send_gift_task_obj['id'], 5)
        self.assertEqual(send_gift_task_obj['task_type'], 'daily')
        self.assertEqual(send_gift_task_obj['task_behavior'], 'send_gift')
        self.assertEqual(send_gift_task_obj['task_name'], '送礼')
        self.assertEqual(send_gift_task_obj['task_desc'], '送任意金额的礼物送500经验')
        self.assertEqual(send_gift_task_obj['task_num'], 1)
        self.assertEqual(send_gift_task_obj['task_icon'],
                         '/images/heads/20160328093828364.png')
        self.assertEqual(send_gift_task_obj['unit'], '经验')
        user_task_obj = send_gift_task_obj['user_task_obj']
        self.assertEqual(user_task_obj['id'], 0)
        self.assertEqual(user_task_obj['user_id'], self.user_id)
        self.assertEqual(user_task_obj['task_behavior'], 'send_gift')
        self.assertEqual(user_task_obj['num'], 1)
        self.assertEqual(user_task_obj['status'], 2)
        self.assertIn((datetime.datetime.now()).strftime("%Y-%m-%d %H:%M"),
                      user_task_obj['last_modify_date'])
        task_award_config = send_gift_task_obj['task_award_config']
        self.assertEqual(len(task_award_config), 1)
        self.assertEqual(task_award_config[0]['type'], 'exp')
        self.assertEqual(task_award_config[0]['id'], 0)
        self.assertEqual(task_award_config[0]['num'], 500)

        get_task_reward_ajax = GetTaskRewardAjax(self.user_mobile)
        get_task_reward_ajax.get({
            'task_behavior': 'send_gift',
            'room_id': self.room_id,
            'anchor_id': self.anchor_id
        })
        self.assertEqual(get_task_reward_ajax.get_resp_code(), 0)
        task_rewards = get_task_reward_ajax.get_resp_result()['task_rewards']
        self.assertEqual(task_rewards['upgrade'], 0)
        self.assertEqual(task_rewards['exp'], 500)
        identity_obj = get_task_reward_ajax.get_resp_result()['identity_obj']
        self.assertEqual(identity_obj['user_rank'], 1)
        self.assertEqual(identity_obj['gold'], 0)
        self.assertEqual(identity_obj['diamond'], '0')
        self.assertEqual(identity_obj['user_experience'], 600)

        task_list_ajax = TaskListAjax(self.user_mobile)
        task_list_ajax.get()
        self.assertEqual(task_list_ajax.get_resp_code(), 0)
        task_list = task_list_ajax.get_resp_result()['task_list']

        send_gift_task_obj = task_list[3]
        self.assertEqual(send_gift_task_obj['task_name'], '送礼')
        user_task_obj = send_gift_task_obj['user_task_obj']
        self.assertEqual(user_task_obj['status'], 3)
        self.assertIn((datetime.datetime.now()).strftime("%Y-%m-%d %H:%M"),
                      user_task_obj['last_modify_date'])
Beispiel #27
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'])
    def test_game_center(self):
        """
        测试游戏大厅接口用户信息
        :return:
        """
        login_api = LoginApi()
        login_resp = login_api.login(self.user_mobile, only_get_identity=False)
        self.assertEqual(login_api.get_code(), 0)
        session_id = json.loads(login_resp.content)['result']['session_id']

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

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

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

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

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

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

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

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

        game_list_api = requests.get(
            url='https://hall.game.dwtv.tv/lobby/game?identity={0}'.format(
                identity))
        response = json.loads(game_list_api.content)
        self.assertEqual(response['code'], 0)
        user_obj = response['result']['user_obj']
        self.assertIsNotNone(user_obj['identity'])
        self.assertEqual(user_obj['gold'], u'11000')
        self.assertEqual(user_obj['diamond'], 1000)
        self.assertEqual(user_obj['user_level'], 12)
        self.assertEqual(user_obj['user_exp'], 1000)
        self.assertEqual(user_obj['vip_level'], 0)
Beispiel #29
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)
Beispiel #30
0
    def renew_action(self, **kwargs):
        guard_price = kwargs['guard_price']
        first_guard_id = kwargs['first_guard_id']
        second_guard_id = kwargs['second_guard_id']
        following = kwargs['following']
        user_rank = kwargs['user_rank']
        sun_max_num = kwargs['sun_max_num']
        anchor_rank = kwargs['anchor_rank']
        guard_rank = kwargs['guard_rank']
        expire_time_num = kwargs['expire_time_num']

        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)
        buy_guard_api.get({
            'room_id': self.room_id,
            'guard_id': first_guard_id,
            'currency': 'gold'
        })
        self.assertEqual(buy_guard_api.get_code(), 0)
        time.sleep(0.5)
        renew_buy_guard = BuyGuardApi(self.login_name)
        response = renew_buy_guard.get({
            'room_id': self.room_id,
            'guard_id': second_guard_id,
            'currency': 'gold'
        })
        self.assertEqual(renew_buy_guard.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))
        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)

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

        identity_user_guard_obj = identity_obj['user_guard_obj']
        self.assertEqual(identity_user_guard_obj['user_id'], (self.user_id))
        self.assertEqual(identity_user_guard_obj['guard_rank'], guard_rank)
        self.assertIn(identity_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(identity_user_guard_obj['rest_time_str'],
                      expire_time_num_format)

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