Exemple #1
0
 def check(self):
     playerrequest = PlayerRequest.getByKey(self.__player.id)
     # プレイ情報.
     playdata = GachaPlayData.getByKey(GachaPlayData.makeID(self.__player.id, self.__gachamaster.boxid))
     playcount = GachaPlayCount.getByKey(GachaPlayCount.makeID(self.__player.id, self.__gachamaster.id))
     
     if playerrequest.req_confirmkey == self.__player.req_confirmkey or playerrequest.req_alreadykey != self.__player.req_confirmkey:
         raise AppTestError(u'ガチャプレイ情報の確認キーが更新されていない')
     elif playcount.getTodayPlayCnt() < 1:
         raise AppTestError(u'ガチャプレイ回数が増えていない.%d, %d, %s' % (playcount.getTodayPlayCnt(), playcount.cnt, playcount.ptime))
     
     # BOX確認.
     box = GachaBox(self.__gachamaster, playdata)
     if box.get_rest_num() != 1:
         raise AppTestError(u'BOXのカードがうまく消費されていない.%d' % box.get_rest_num())
     
     # カードが増えているか.
     cardnum = BackendApi.get_cardnum(self.__player.id)
     if cardnum != self.__gachamaster.continuity:
         raise AppTestError(u'カード枚数がおかしい %d vs %d' % (cardnum, self.__gachamaster.continuity))
     elif cardnum != len(playdata.result['result']):
         raise AppTestError(u'ガチャの結果の長さがおかしい %d vs %d' % (cardnum, len(playdata.result['result'])))
     
     # おまけが来ているか.
     present_num = BackendApi.get_present_num(self.__player.id)
     if present_num < 1:
         raise AppTestError(u'おまけが来ていない')
     
     # チケット消費確認.
     playergachapt = PlayerGachaPt.getByKey(self.__player.id)
     if 0 < playergachapt.tryluckticket:
         raise AppTestError(u'チケットを消費していない')
Exemple #2
0
    def check(self):
        model_mgr = ModelRequestMgr()
        # 課金情報.
        entry = BackendApi.get_gachapaymententry(model_mgr,
                                                 self.__payment_entry.id)
        if entry is None:
            raise AppTestError(u'課金レコードが作成されていない')
        elif entry.state != PaymentData.Status.COMPLETED:
            raise AppTestError(u'課金ステータスが異常です.status=%s' % entry.state)

        playerrequest = PlayerRequest.getByKey(self.__player.id)
        # プレイ情報.
        playdata = GachaPlayData.getByKey(
            GachaPlayData.makeID(self.__player.id, self.__gachamaster.boxid))
        playcount = GachaPlayCount.getByKey(
            GachaPlayCount.makeID(self.__player.id, self.__gachamaster.id))

        if playerrequest.req_confirmkey == self.__player.req_confirmkey or playerrequest.req_alreadykey != self.__player.req_confirmkey:
            raise AppTestError(u'ガチャプレイ情報の確認キーが更新されていない')
        elif playcount.getTodayPlayCnt() < 1:
            raise AppTestError(
                u'ガチャプレイ回数が増えていない.%d, %d, %s' %
                (playcount.getTodayPlayCnt(), playcount.cnt, playcount.ptime))

        # BOX確認.
        box = GachaBox(self.__gachamaster, playdata)
        if box.get_rest_num() != 1:
            raise AppTestError(u'BOXのカードがうまく消費されていない.%d' % box.get_rest_num())

        # カードが増えているか.
        cardnum = BackendApi.get_cardnum(self.__player.id)
        tmp_card_num = min(self.__cardnum + entry.continuity,
                           self.__player.cardlimit)
        if tmp_card_num != cardnum:
            raise AppTestError(u'カード枚数がおかしい %d vs %d' %
                               (self.__cardnum, cardnum))

        # おまけが来ているか.
        present_num = BackendApi.get_present_num(self.__player.id)
        if (self.__present_num + self.__gachamaster.continuity) == present_num:
            raise AppTestError(u'おまけが来ていない')
Exemple #3
0
    def check(self):
        model_mgr = ModelRequestMgr()
        # 課金情報.
        entry = BackendApi.get_gachapaymententry(model_mgr,
                                                 self.__payment_entry.id)
        if entry is None:
            raise AppTestError(u'課金レコードが作成されていない')
        elif entry.state != PaymentData.Status.COMPLETED:
            raise AppTestError(u'課金ステータスが異常です.status=%s' % entry.state)

        playerrequest = PlayerRequest.getByKey(self.__player.id)
        # プレイ情報.
        playdata = GachaPlayData.getByKey(
            GachaPlayData.makeID(self.__player.id, self.__gachamaster.boxid))
        playcount = GachaPlayCount.getByKey(
            GachaPlayCount.makeID(self.__player.id, self.__gachamaster.id))

        if playerrequest.req_confirmkey == self.__player.req_confirmkey or playerrequest.req_alreadykey != self.__player.req_confirmkey:
            raise AppTestError(u'ガチャプレイ情報の確認キーが更新されていない')
        elif playcount.getTodayPlayCnt() < 1:
            raise AppTestError(
                u'ガチャプレイ回数が増えていない.%d, %d, %s' %
                (playcount.getTodayPlayCnt(), playcount.cnt, playcount.ptime))

        # BOX確認.
        box = GachaBox(self.__gachamaster, playdata)
        if box.get_rest_num() != 1:
            raise AppTestError(u'BOXのカードがうまく消費されていない.%d' % box.get_rest_num())

        # カードが増えているか.
        cardnum = BackendApi.get_cardnum(self.__player.id)
        tmp_card_num = min(self.__cardnum + entry.continuity,
                           self.__player.cardlimit)
        if tmp_card_num != cardnum:
            raise AppTestError(u'カード枚数がおかしい %d vs %d' %
                               (self.__cardnum, cardnum))

        # おまけが来ているか.
        present_num = BackendApi.get_present_num(self.__player.id)
        if (self.__present_num + self.__gachamaster.continuity) == present_num:
            raise AppTestError(u'おまけが来ていない')

        # ランキングスコア情報.
        scoredata = RankingGachaScore.getByKey(
            RankingGachaScore.makeID(self.__player.id,
                                     self.__rankingmaster.id))
        if scoredata is None:
            raise AppTestError(u'ランキングのスコア情報が作成されていない')

        point = self.__gachamaster.continuity * ApiTest.RANKING_POINT
        # 累計Pt.
        if scoredata.total != point:
            raise AppTestError(u'累計Ptが正しくない.%d vs %d' %
                               (scoredata.total, point))

        # 単発Pt.
        if scoredata.single != point:
            raise AppTestError(u'単発Ptが正しくない.%d vs %d' %
                               (scoredata.single, point))

        # 総計Pt.
        if scoredata.firstpoint != point:
            raise AppTestError(u'初回総計Ptが正しくない.%d vs %d' %
                               (scoredata.firstpoint, point))

        wholedata = RankingGachaWholeData.getByKey(self.__rankingmaster.id)
        if wholedata is None:
            raise AppTestError(u'総計Ptが保存されていない')
        elif wholedata.point != point:
            raise AppTestError(u'総計Ptが正しくない.%d vs %d' %
                               (wholedata.point, point))

        # 総計Pt達成報酬用のキュー.
        queue_cnt = RankingGachaWholePrizeQueue.count()
        if (self.__queue_cnt + 1) != queue_cnt:
            raise AppTestError(u'総計Pt達成報酬のキューが正しく積まれていない.%d vs %d' %
                               (self.__queue_cnt + 1, queue_cnt))