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'チケットを消費していない')
def check(self): keys = ('redirect_url', ) for k in keys: if not self.response.has_key(k): raise AppTestError(u'%sが設定されていない') # 鍵の更新確認. playerrequest = PlayerRequest.getByKey(self.__player0.id) if playerrequest.req_confirmkey == self.__player0.req_confirmkey: raise AppTestError(u'鍵が更新されていない') elif playerrequest.req_alreadykey != self.__player0.req_confirmkey: raise AppTestError(u'使用済みの鍵が更新されていない') # プレゼント数確認. if BackendApi.get_present_num(self.__player0.id) == self.__present_num: raise AppTestError(u'報酬が付与されていない') # ポイントのリセット確認. userdata = BattleEventPresentData.getByKey( BattleEventPresentData.makeID(self.__player0.id, self.__eventmaster.id)) if 0 < userdata.point: raise AppTestError(u'ポイントがリセットされていない') # 贈り物設定確認. if userdata.getData() is None: raise AppTestError(u'次の贈り物を設定していない') org_data = self.__presentdata.getData() data = userdata.getPreData() if data is None: raise AppTestError(u'前回の結果が設定されていない') elif data['number'] != org_data['number'] or data[ 'content'] != org_data['content']: raise AppTestError(u'前回の結果の内容が想定外です')
def check(self): playerrequest = PlayerRequest.getByKey(self.__player.id) if playerrequest.req_confirmkey == self.__player.req_confirmkey: raise AppTestError(u'確認キーが更新されていない') elif playerrequest.req_alreadykey != self.__player.req_confirmkey: raise AppTestError(u'確認済みのキーが正しく設定されていない') # 秘宝. playertreasure = PlayerTreasure.getByKey(self.__player.id) cabaretking = playertreasure.get_cabaretking_num() if cabaretking == self.__treasurenum: raise AppTestError(u'キャバ王の秘宝所持数が減っていない') elif cabaretking != (self.__treasurenum - self.__trade.rate_cabaretking): raise AppTestError(u'キャバ王の秘宝所持数が正しくない') # チケット数. playergachapt = PlayerGachaPt.getByKey(self.__player.id) ticketnum = BackendApi.get_num_by_itemtype(ModelRequestMgr(), playergachapt, self.__trade.itype) if ticketnum == self.__ticketnum: raise AppTestError(u'チケットの所持数が変わっていない') elif ticketnum != (self.__ticketnum + self.__trade.itemnum): raise AppTestError(u'チケットの所持数が正しくない')
def check(self): model_mgr = ModelRequestMgr() playerrequest = PlayerRequest.getByKey(self.__player.id) compositiondata = CompositionData.getByKey(self.__player.id) basecard = BackendApi.get_cards([self.__basecard.id], model_mgr)[0] # 結果が保存されているか. if compositiondata is None or playerrequest.req_alreadykey != self.__requestkey: raise AppTestError(u'結果が保存されていない') # 結果が正しいか. for att in ('mid', 'exp', 'level', 'skilllevel', 'takeover'): if getattr(compositiondata, att) != getattr(self.__basecard.card, att): raise AppTestError(u'合成前の状態が正しくない') # お金が減っているか. playergold = PlayerGold.getByKey(self.__player.id) if playergold.gold != 0: raise AppTestError(u'お金が正しくない') # 経験値が正しいか. exp = compositiondata.result_exp if (basecard.card.exp - self.__basecard.card.exp) != exp: raise AppTestError(u'経験値が正しくない') # レベルが正しいか. if compositiondata.result_flag_great_success: if compositiondata.result_lvup != 2 or basecard.card.level != 3: raise AppTestError(u'レベルが正しくない[大成功]') else: if compositiondata.result_lvup != 1 or basecard.card.level != 2: raise AppTestError(u'レベルが正しくない[成功]') materialidlist = [materialcard.id for materialcard in self.__materialcardlist] # 素材が消えているか. materiallist = BackendApi.get_cards(materialidlist, model_mgr, deleted=False) if materiallist: raise AppTestError(u'素材が消えていない') # 消えた素材が保存されているか. materiallist = BackendApi.get_cards(materialidlist, model_mgr, deleted=True) if len(materiallist) != len(materialidlist): raise AppTestError(u'削除済みデータが作られていない')
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'おまけが来ていない')
def check(self): model_mgr = ModelRequestMgr() playerrequest = PlayerRequest.getByKey(self.__player.id) evolutiondata = EvolutionData.getByKey(self.__player.id) basecard = BackendApi.get_cards([self.__basecard.id], model_mgr)[0] # 結果が保存されているか. if evolutiondata is None or playerrequest.req_alreadykey != self.__requestkey: raise AppTestError(u'結果が保存されていない') # 結果が正しいか. for att in ('mid', 'exp', 'level', 'skilllevel', 'takeover'): if getattr(evolutiondata, att) != getattr(self.__basecard, att): raise AppTestError(u'合成前の状態が正しくない') # 進化しているか. if basecard.card.mid != self.__evolcardmaster.id: raise AppTestError(u'進化していない') elif basecard.card.level != 1 or 0 < basecard.card.exp: raise AppTestError(u'経験値が残っている') # お金が減っているか. playergold = PlayerGold.getByKey(self.__player.id) if playergold.gold != 0: raise AppTestError(u'お金が正しくない') materialid = self.__materialcard.id # 素材が消えているか. materiallist = BackendApi.get_cards([materialid], model_mgr, deleted=False) if materiallist: raise AppTestError(u'素材が消えていない') # 消えた素材が保存されているか. materiallist = BackendApi.get_cards([materialid], model_mgr, deleted=True) if len(materiallist) != 1: raise AppTestError(u'削除済みデータが作られていない')
def check(self): playerrequest = PlayerRequest.getByKey(self.__player.id) if playerrequest.req_confirmkey == self.__player.req_confirmkey: raise AppTestError(u'確認キーが更新されていない') elif playerrequest.req_alreadykey != self.__player.req_confirmkey: raise AppTestError(u'確認済みのキーが正しく設定されていない') # 秘宝. playertreasure = PlayerTreasure.getByKey(self.__player.id) cabaretking = playertreasure.get_cabaretking_num() if cabaretking == self.__treasurenum: raise AppTestError(u'キャバ王の秘宝所持数が減っていない') elif cabaretking != (self.__treasurenum - self.__trade.rate_cabaretking): raise AppTestError(u'キャバ王の秘宝所持数が正しくない') # アイテム数. itemnum = BackendApi.get_item_nums(ModelRequestMgr(), self.__player.id, [self.__itemmaster.id]).get( self.__itemmaster.id, 0) if itemnum == self.__itemnum: raise AppTestError(u'アイテムの所持数が変わっていない') elif itemnum != (self.__itemnum + self.__trade.itemnum): raise AppTestError(u'アイテムの所持数がおかしい')
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))