예제 #1
0
    def test_parsing_binary_chunks(self):
        data = open('./Power_2.log.xml', mode='rb').read()
        start_index = 0
        batch_size = 1000

        parser = HSReplayParser()
        self.assertIsNone(parser.replay)

        while start_index < len(data):
            end_index = 0
            is_final = False

            if start_index + batch_size >= len(data):
                end_index = len(data)
                is_final = True
            else:
                end_index = start_index + batch_size

            chunk = data[start_index:end_index]
            parser.parse_data(chunk, is_final)
            start_index = end_index

            if not is_final:
                self.assertIsNone(parser.replay)

        self.assertIsNotNone(parser.replay)
        self.assertRaises(ReplayParserError, parser.parse_data, data[0:100])
예제 #2
0
    def test_game_type(self):
        with open('./replays/2016-02-01T21.25.02.gamestate.4.log.xml',
                  mode='rb') as f:
            self.parser = HSReplayParser()
            self.parser.parse_file(f)

            game = self.parser.replay.games[0]
            self.assertEqual(game.game_type, GameType.GT_RANKED)
예제 #3
0
    def test_player_deck(self):
        with open('./replays/replay_with_player_deck_included.xml',
                  mode='rb') as f:
            self.parser = HSReplayParser()
            self.parser.parse_file(f)

            game = self.parser.replay.games[0]
            self.assertEqual(game.looser.name, "Nicodemus")
예제 #4
0
    def test_friendly_player(self):
        with open('./replays/2016-02-01T21.25.02.gamestate.4.log.xml',
                  mode='rb') as f:
            self.parser = HSReplayParser()
            self.parser.parse_file(f)

            game = self.parser.replay.games[0]
            # 2016-02-01T21:06:34
            self.assertEqual(game.friendly_player.name, "Nicodemus")
예제 #5
0
    def test_player_ranks(self):
        with open('./replays/2016-02-01T21.25.02.gamestate.4.log.xml',
                  mode='rb') as f:
            self.parser = HSReplayParser()
            self.parser.parse_file(f)

            game = self.parser.replay.games[0]
            self.assertEqual(game.winner.rank, 19)
            self.assertEqual(game.looser.rank, 19)
예제 #6
0
    def test_match_date(self):
        with open('./replays/2016-02-01T21.25.02.gamestate.4.log.xml',
                  mode='rb') as f:
            self.parser = HSReplayParser()
            self.parser.parse_file(f)

            game = self.parser.replay.games[0]
            # 2016-02-01T21:06:34
            self.assertEqual(
                game.match_date,
                datetime(year=2016,
                         month=2,
                         day=1,
                         hour=21,
                         minute=6,
                         second=34))
예제 #7
0
    def setUp(self):

        with open('./Power_2.log.xml', mode='rb') as f:
            self.parser = HSReplayParser()
            self.parser.parse_file(f)