예제 #1
0
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)
예제 #2
0
파일: main.py 프로젝트: gitarrg/lorgs
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"}
예제 #3
0
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()
예제 #4
0
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()
예제 #5
0
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)
예제 #6
0
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
예제 #7
0
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()
예제 #8
0
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()
예제 #9
0
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}")
예제 #10
0
 def setUp(self):
     self.user_report = UserReport()
     self.user_report.report = mock.MagicMock()
예제 #11
0
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()