def check(self): model_mgr = ModelRequestMgr() # 確認キー. playerrequest = BackendApi.get_model(model_mgr, PlayerRequest, self.__player0.id) if self.__player0.req_confirmkey == playerrequest.req_confirmkey: raise AppTestError(u'確認キーが更新されていない') elif self.__player0.req_confirmkey != playerrequest.req_alreadykey: raise AppTestError(u'確認済みのキーが更新されていない') # ハプニング. happeningset = BackendApi.get_happening(model_mgr, self.__raid.id) if happeningset.happening.state != Defines.HappeningState.END: raise AppTestError(u'状態が正しくない') # ダメージレコード. raidboss = BackendApi.get_raid(model_mgr, self.__raid.id) record = raidboss.getDamageRecord(self.__player0.id) if record.damage == 0 or record.damage_cnt == 0: raise AppTestError(u'ダメージが記録されていない') elif not record.champagne: raise AppTestError(u'シャンパンコールフラグが立っていない') # ダメージ. record_pre = self.__raid.getDamageRecord(self.__player0.id) if (self.__raid.raid.hp - (record.damage - record_pre.damage)) != raidboss.raid.hp: raise AppTestError(u'ダメージが正しくない') # 秘宝. playertreasure0 = PlayerTreasure.getByKey(self.__player0.id) if playertreasure0.cabaretking != self.__raid.get_cabaretking(): raise AppTestError(u'キャバ王の秘宝が付与されていない') # 報酬. present_num0 = BackendApi.get_present_num(self.__player0.id) if self.__present_num0 == present_num0: raise AppTestError(u'発見者に報酬が付与されていない') # イベントポイント. scorerecord0 = BackendApi.get_raidevent_scorerecord( model_mgr, self.__eventmaster.id, self.__player0.id) pointtable = BackendApi.aggregate_raidevent_destroypoint( model_mgr, self.__eventmaster, raidboss) arr = pointtable.get(self.__player0.id) if not arr: raise AppTestError(u'発見者にイベントポイントが付与されていない') elif len(arr) != 2: raise AppTestError(u'発見者にMVPポイントが付与されていない') elif sum(arr) != scorerecord0.point or sum( arr) != scorerecord0.point_total: raise AppTestError(u'発見者にポイントがただしく付与されていない') arr = pointtable.get(self.__player1.id) if not arr: raise AppTestError(u'協力者にイベントポイントが付与されていない') if Defines.RAID_PRIZE_DISTRIBUTION_OUTSIDE: queue = RaidPrizeDistributeQueue.getValues( filters={'raidid': self.__raid.id}) if queue is None: raise AppTestError(u'報酬配布用のキューが作成されていない') def write(queue, happening, raidboss, help_prizelist): model_mgr = ModelRequestMgr() BackendApi.tr_distribute_raid(model_mgr, queue, happening, raidboss, help_prizelist) model_mgr.write_all() model_mgr.write_end() help_prizelist = BackendApi.get_prizelist( model_mgr, raidboss.master.helpprizes) write(queue, BackendApi.get_happening(model_mgr, raidboss.id).happening, raidboss, help_prizelist) # 救援者の報酬を確認. present_num1 = BackendApi.get_present_num(self.__player1.id) if self.__present_num1 == present_num1: raise AppTestError(u'救援者に報酬が付与されていない') playertreasure1 = PlayerTreasure.getByKey(self.__player1.id) if 0 < self.__raid.get_demiworld( ) and playertreasure1.demiworld != self.__raid.get_demiworld(): raise AppTestError(u'裏社会の秘宝が付与されていない') scorerecord1 = BackendApi.get_raidevent_scorerecord( model_mgr, self.__eventmaster.id, self.__player1.id) if len(arr) != 1 or sum(arr) != scorerecord1.point or sum( arr) != scorerecord1.point_total: raise AppTestError(u'協力者にポイントがただしく付与されていない')
def check(self): model_mgr = ModelRequestMgr() # 確認キー. playerrequest = BackendApi.get_model(model_mgr, PlayerRequest, self.__player1.id) if self.__player1.req_confirmkey == playerrequest.req_confirmkey: raise AppTestError(u'確認キーが更新されていない') elif self.__player1.req_confirmkey != playerrequest.req_alreadykey: raise AppTestError(u'確認済みのキーが更新されていない') # ハプニング. happeningset = BackendApi.get_happening(model_mgr, self.__raid.id) if happeningset.happening.state != Defines.HappeningState.END: raise AppTestError(u'状態が正しくない') # ダメージレコード. raidboss = BackendApi.get_raid(model_mgr, self.__raid.id) record = raidboss.getDamageRecord(self.__player1.id) if record.damage == 0 or record.damage_cnt == 0: raise AppTestError(u'ダメージが記録されていない') elif not record.champagne: raise AppTestError(u'シャンパンコールフラグが立っていない') # ダメージ. record_pre = self.__raid.getDamageRecord(self.__player1.id) if (self.__raid.raid.hp - (record.damage - record_pre.damage)) != raidboss.raid.hp: raise AppTestError(u'ダメージが正しくない') # 秘宝. playertreasure1 = PlayerTreasure.getByKey(self.__player1.id) if 0 < self.__raid.get_demiworld( ) and playertreasure1.demiworld != self.__raid.get_demiworld(): raise AppTestError(u'裏社会の秘宝が付与されていない') # 報酬. present_num1 = BackendApi.get_present_num(self.__player1.id) if self.__present_num1 == present_num1: raise AppTestError(u'救援者に報酬が付与されていない') # イベントポイント. scorerecords = BackendApi.get_raidevent_scorerecords( model_mgr, self.__eventmaster.id, [self.__player0.id, self.__player1.id]) scorerecord0 = scorerecords.get(self.__player0.id) scorerecord1 = scorerecords.get(self.__player1.id) pointtable = BackendApi.aggregate_raidevent_destroypoint( model_mgr, self.__eventmaster, raidboss) arr = pointtable.get(self.__player0.id) if not arr: raise AppTestError(u'発見者にイベントポイントが付与されていない') elif len(arr) != 1 or sum(arr) != scorerecord0.point or sum( arr) != scorerecord0.point_total: raise AppTestError(u'発見者にポイントがただしく付与されていない') arr = pointtable.get(self.__player1.id) if not arr: raise AppTestError(u'協力者にイベントポイントが付与されていない') elif len(arr) != 2: raise AppTestError(u'協力者にMVPポイントが付与されていない') elif sum(arr) != scorerecord1.point or sum( arr) != scorerecord1.point_total: raise AppTestError(u'協力者にポイントがただしく付与されていない')