async def test_load_single_player(): user_report = UserReport.from_report_id(report_id=REPORT_ID) fight = user_report.report.get_fight(13) player = fight.get_player(source_id=5) await player.load() print(player, player.casts)
def load_user_report(request): """Load a Report Args: report_id(str): the report to load fights[list(int)]: fight ids player[list(int)]: player ids """ ################################ # parse inputs report_id = request.args.get("report_id", type=str) fight_ids = request.args.get("fight", type=utils.str_int_list) player_ids = request.args.get("player", type=utils.str_int_list) print( f"[load_user_report] report_id={report_id} fight_ids={fight_ids} player_ids={player_ids}" ) if not (report_id and fight_ids and player_ids): return "Missing fight or player ids", 400 ################################ # loading... user_report = UserReport.from_report_id(report_id=report_id, create=True) task = user_report.report.load_fights(fight_ids=fight_ids, player_ids=player_ids) asyncio.run(task) user_report.save() return {"status": "done", "task_id": "done"}
async def test_load_report_overview(): user_report = UserReport.from_report_id(TEST_REPORT_ID) # print(user_report) await user_report.load() # print(user_report.report) # for fight in user_report.report.fights: # print("\t", fight) # print("\t", fight.duration) # print(user_report.report._players) user_report.save()
async def test_load_summary(): user_report = UserReport.from_report_id(report_id=REPORT_ID, create=True) # load await user_report.report.load_summary() # make sure things are loaded assert user_report.report.title == "Sanctum of Domination" assert len(user_report.report.players) == 20 assert len(user_report.report.fights) > 0 user_report.save()
async def test_load_multiple_players(): user_report = UserReport.from_report_id(report_id=REPORT_ID) fight = user_report.report.get_fight(13) players = fight.get_players(source_ids=[2, 5, 8]) for player in players: print(player, player.casts) await fight.load_many(players) for player in players: print(player, player.casts)
class TestUserReport(unittest.TestCase): def setUp(self): self.user_report = UserReport() self.user_report.report = mock.MagicMock() def test__is_loaded__yes(self): self.user_report.report.fights = ["some", "values"] assert self.user_report.is_loaded def test__is_loaded__nope(self): self.user_report.report.fights = [] assert not self.user_report.is_loaded def test__save__updates_timestamp(self): self.user_report.report.fights = [] prev_value = self.user_report.updated with mock.patch("mongoengine.Document.save"): self.user_report.save() assert self.user_report.updated != prev_value
async def test_load_report(): fight_ids = [15, 19, 22] player_ids = [2, 7, 23, 55, 60,] user_report = UserReport.from_report_id(TEST_REPORT_ID, create=True) print("user_report", user_report) await user_report.report.load_fights(fight_ids=fight_ids, player_ids=player_ids) for fight in user_report.report.fights.values(): print("Fight:", fight) for player in fight.players: print("\t", player, player.casts) user_report.save()
async def test_load_multiple_fights(): ids = range(1, 20) user_report = UserReport.from_report_id(report_id=REPORT_ID) await user_report.report.load_fights( fight_ids=ids, player_ids=[9] ) @timeit async def save(): user_report.save() await save()
async def test_load(): REPORT_ID = "G9TV6CBWpjXFamK1" fight_ids = [5] player_ids = [3, 4, 21] user_report = UserReport.from_report_id(report_id=REPORT_ID, create=True) user_report.report.fights = [] await user_report.report.load_fights(fight_ids=fight_ids, player_ids=player_ids) user_report.save() ############################ # Print Result # def f(l, j="."): l = [str(i) for i in l] return j.join(l) fight_ids = f(fight_ids) player_ids = f(player_ids) print(f"http://localhost:9001/user_report/{REPORT_ID}?fight={fight_ids}&player={player_ids}")
def setUp(self): self.user_report = UserReport() self.user_report.report = mock.MagicMock()
async def test_load_fight_summary(): user_report = UserReport.from_report_id(report_id=REPORT_ID) fight = user_report.report.get_fight(13) await fight.load_summary() user_report.save()