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)
예제 #2
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)
예제 #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_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)
 def tearDown(self, user_id=None, anchor_id=None):
     super(TestRegisterAjax, self).tearDown()
     RedisHold().clean_redis_user_detail(
         MysqlOperation(mobile=self.mobile).get_user_id())
     Redis().clean_user_bean(
         MysqlOperation(mobile=self.mobile).get_user_id())
     MysqlOperation(mobile=self.mobile).delete_user()
    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)
예제 #7
0
 def send_red_package_teardown(self, room_id, user_id, anchor_id):
     red_packet_ids = MysqlOperation(room_id=room_id).get_red_packet_ids()
     MysqlOperation(room_id=room_id).clean_red_packet()
     MysqlOperation(user_id=user_id, anchor_id=anchor_id).clean_send_gift()
     for i in red_packet_ids:
         Redis().clean_red_packet(room_id, i['id'])
     RedisHold().clean_redis_room_detail(room_id, anchor_id)
예제 #8
0
 def update_nickname_api_teardown(self, user_id, rename_num, nick_name):
     #修改昵称
     mysql_operation = MysqlOperation(user_id=user_id)
     mysql_operation.fix_user_nickname(nickname=nick_name)
     mysql_operation.fix_user_update_nick_num(rename_num=rename_num)
     # mysql_operation.clean_user_account_log()
     RedisHold().clean_redis_user_detail(user_id)
예제 #9
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'对不起,管理员已停止该竞猜,快去竞猜下一个题目吧')
예제 #10
0
 def change_mobile_teardown(self, new_mobile, login_name, mobile_phone):
     #修改手机号
     user_id = MysqlOperation(mobile=new_mobile).get_user_id()
     mysql_operation = MysqlOperation(user_id=user_id)
     mysql_operation.fix_user_bind_mobile(login_name,
                                          mobile_phone,
                                          phone_confirm=1)
     RedisHold().clean_redis_user_detail(user_id)
예제 #11
0
 def setUp(self,*args):
     super(TestAnchorGroupRobApi,self).setUp(user_id=[self.user_id,self.rob_user_id],anchor_id=anchor_id)
     for id in [self.user_id,self.rob_user_id]:
         TearDown().guard_teardown(user_id=id, anchor_id=anchor_id)
         mysql_operation = MysqlOperation(user_id=id)
         mysql_operation.clean_user_anchor_group()
         MysqlOperation(user_id=id).clean_user_anchor_group()
         Redis().clean_user_buy_guard(id, anchor_id)
         RedisHold().clean_redis_room_detail(room_id, anchor_id)
예제 #12
0
 def tearDown(self, *args):
     super(TestSendGiftTaskApi, self).tearDown(user_id=self.user_id,
                                               anchor_id=self.anchor_id)
     MysqlOperation(user_id=self.user_id).clean_user_task()
     Redis().clean_user_task(self.user_id)
     mysql_operation = MysqlOperation(user_id=self.user_id,
                                      anchor_id=self.anchor_id)
     mysql_operation.clean_send_gift()
     RedisHold().clean_redis_room_detail(self.room_id, self.anchor_id)
 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)
예제 #14
0
 def setUp(self,*args):
     super(TestNormalAdminAddBlackApi,self).setUp()
     for x in [self.user_id,self.high_admin_user_id]:
         del_super_visor_api = DelSuperVisorApi(self.anchor_login_name)
         del_super_visor_api.get({'user_id': x, 'anchor_id': self.anchor_id})
     for x in [self.user_id,self.other_anchor_id]:
         MysqlOperation(user_id=x).clean_black_user()
     Redis().clean_black_user(self.anchor_id)
     RedisHold().clean_redis_user_detail(self.user_id)
    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'大王豆转换')
예제 #16
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金币')
예제 #17
0
    def test_send_package_gift_success(self):
        """
        测试送出为你伴舞礼物
        :return:
        """
        add_following_api = AddFollowingApi(self.login_name)
        add_following_api.get({'anchor_id': self.anchor_id})
        self.assertEqual(add_following_api.get_code(), 0)
        self.assertEqual(add_following_api.get_response_message(), u'操作成功')

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

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

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

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

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

        time.sleep(self.time_sleep)

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

        self.assertEqual(room_hot_num_after_send - room_hot_num, 100000)
예제 #18
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)
예제 #19
0
 def setUp(self, *args):
     super(TestAnchorGroupAnchorNumApi, self).setUp(user_id=self.user_id,
                                                    anchor_id=anchor_id)
     TearDown().guard_teardown(login_name=self.user_login_name,
                               user_id=self.user_id,
                               anchor_id=anchor_id)
     mysql_operation = MysqlOperation(user_id=self.user_id)
     mysql_operation.clean_user_anchor_group()
     Redis().clean_anchor_group(self.user_id, anchor_id=anchor_id)
     RedisHold().clean_redis_room_detail(room_id, anchor_id)
예제 #20
0
    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)
예제 #21
0
 def tearDown(self,*args):
     super(TestAnchorGroupWithdrawApi,self).tearDown(user_id=self.user_id,anchor_id=anchor_id)
     TearDown().guard_teardown(login_name=self.user_login_name,user_id=self.user_id,anchor_id=anchor_id)
     user_id = self.user_id
     mysql_operation = MysqlOperation(user_id=user_id,anchor_id=anchor_id)
     mysql_operation.clean_user_anchor_group()
     Redis().clean_anchor_group(user_id, anchor_id=anchor_id)
     mysql_operation.clean_user_anchor_group()
     Redis().clean_user_buy_guard(user_id, anchor_id)
     mysql_operation.clean_send_gift()
     RedisHold().clean_redis_room_detail(room_id, anchor_id)
예제 #22
0
 def tearDown(self, *args):
     super(TestAddAnchorToGroupApi, self).tearDown(user_id=self.user_id,
                                                   anchor_id=anchor_id)
     TearDown().guard_teardown(login_name=self.user_login_name,
                               user_id=self.user_id,
                               anchor_id=anchor_id)
     Redis().clean_anchor_group(self.user_id, anchor_id)
     for i in [self.user_id, anchor_id]:
         MysqlOperation(user_id=i).clean_user_anchor_group()
     Redis().clean_user_buy_guard(self.user_id, anchor_id)
     RedisHold().clean_redis_room_detail(room_id, anchor_id)
 def tearDown(self, *args):
     super(TestAnchorAddBlackApi, self).tearDown()
     del_super_visor_api = DelSuperVisorApi(self.anchor_login_name)
     del_super_visor_api.get({
         'user_id': self.user_id,
         'anchor_id': self.anchor_id
     })
     for x in [self.user_id, self.other_anchor_id]:
         MysqlOperation(user_id=x).clean_black_user()
     Redis().clean_black_user(self.anchor_id)
     RedisHold().clean_redis_user_detail(self.user_id)
예제 #24
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)
 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)
    def init_user_and_room(self, user_id, anchor_id):
        """
        初始化用户信息或房间信息
        :param user_id:
        :param room_id:
        :return:
        """
        if user_id:
            logging.info('正在初始化用户信息...')
            if isinstance(user_id, (str, int)):
                MysqlOperation(user_id=user_id).fix_user_account().fix_user_rank_and_experience(). \
                    clean_user_exp_log().clean_user_account_log().clean_user_intimacy_rank().clean_user_contribution()
                RedisHold().clean_redis_user_detail(user_id)
            elif isinstance(user_id, (list, tuple, set)):
                for i in user_id:
                    MysqlOperation(user_id=i).fix_user_account().fix_user_rank_and_experience(). \
                        clean_user_exp_log().clean_user_account_log().clean_user_intimacy_rank().clean_user_contribution()
                    RedisHold().clean_redis_user_detail(i)
            logging.info('初始化用户信息完成!')
        else:
            logging.info('无需初始化用户信息!')

        if anchor_id:
            logging.info('正在初始化主播信息...')
            if isinstance(anchor_id, (str, int)):
                MysqlOperation(
                    anchor_id=anchor_id,
                    user_id=anchor_id).fix_anchor_rank_and_exp(
                    ).clean_user_account_log().fix_user_rank_and_experience()
                RedisHold().clean_redis_user_detail(anchor_id)
            elif isinstance(anchor_id, (list, tuple, set)):
                for i in anchor_id:
                    MysqlOperation(anchor_id=anchor_id,
                                   user_id=anchor_id).fix_anchor_rank_and_exp(
                                   ).clean_user_account_log(
                                   ).fix_user_rank_and_experience()
                    RedisHold().clean_redis_user_detail(i)
            logging.info('初始化主播信息完成!')
        else:
            logging.info('无需初始化主播信息!')
예제 #27
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)
예제 #28
0
 def test_user_get_sun_reach_the_limit(self):
     """
     测试太阳达到上限后请求接口
     :return:
     """
     MysqlOperation(user_id=self.user_id).fix_user_sun_num(sun_num=50)
     RedisHold().clean_redis_user_detail(self.user_id)
     user_get_sun = UserGetSunAjax(self.user_mobile)
     user_get_sun.get({
         'room_id': self.room_id,
         'anchor_id': self.anchor_id
     })
     self.assertEqual(user_get_sun.get_resp_code(), 402016)
     self.assertEqual(user_get_sun.get_resp_message(), '到达上限')
 def test_open_anchor_rank_insufficient_balance(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)
     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(), 200502)
     self.assertEqual(open_anchor_group.get_resp_message(), u'金币不足,是否立即充值')
예제 #30
0
    def test_buy_sun_gold_low(self):
        """
        测试请求接口账户金币不足
        :return:
        """
        MysqlOperation(user_id=self.user_id).fix_user_account(gold_num=1999)
        RedisHold().clean_redis_user_detail(self.user_id)
        time.sleep(0.5)

        buy_sun_api = BuySunApi(self.user_mobile)
        buy_sun_api.get({'room_id': self.room_id})

        self.assertEqual(buy_sun_api.get_code(), 100032)
        self.assertEqual(buy_sun_api.get_response_message(), u'账户金币不足')