Example #1
0
def refresh_from_game_file(name):
    """
    Fetch game file and re-calculate ratings. If the game file does not exist, the data will be deleted.
    """
    try:
        content = get_game_file(name)

        if content == None:
            games_data.delete(name)
            return False
        else:
            parser = GamesParser(StringIO(content), name)
            games = parser.parse_file()
            rater = Rater(games)
            ratings = rater.rate_games(parser.score_type)
            game = {
                "game_name": parser.game_name,
                "players": {
                    name: player.rating_history
                    for (name, player) in rater.players.items()
                },
                "ratings": ratings,
                "count": len(games),
            }
            games_data.save(name, game)
            return True
    except requests.HTTPError as e:
        logging.error(e)
Example #2
0
def refresh_from_game_file(name):
    """
    Fetch game file and re-calculate ratings. If the game file does not exist, the data will be deleted.
    """
    try:
        content = get_game_file(name)

        if content == None:
            games_data.delete(name)
            return False
        else:
            parser = GamesParser(StringIO(content), name)
            games = parser.parse_file()
            rater = Rater(games)
            ratings = rater.rate_games(parser.score_type)
            game = {
                "game_name": parser.game_name,
                "players": {
                    name: player.rating_history
                    for (name, player) in rater.players.items()
                },
                "ratings": ratings,
                "count": len(games),
            }
            games_data.save(name, game)
            return True
    except requests.HTTPError as e:
        logging.error(e)
Example #3
0
    def test_parse_comments(self):
        data = \
"""
#
# 
"""
        parser = GamesParser(StringIO(data), "test")
        parser.parse_file()
        self.assertEqual(len(parser.errors), 0)
Example #4
0
    def test_parse_name(self):
        data = \
"""
game_name Settlers of Catan

"""
        parser = GamesParser(StringIO(data))
        parser.parse_file()
        self.assertEqual("Settlers of Catan", parser.game_name)
Example #5
0
    def test_parse_score_type(self):
        data = \
"""
game_name Settlers of Catan
score_type lowscore

"""
        parser = GamesParser(StringIO(data))
        parser.parse_file()
        self.assertEqual("lowscore", parser.score_type)
Example #6
0
    def test_parse_errors(self):
        data = \
"""
game_name Invalid date - one syntax error, two spurious scores 

game 2012-01+19 15:12
Jonatan    1337
Molgan     -666
"""
        parser = GamesParser(StringIO(data), "test")
        parser.parse_file()
        self.assertEqual(len(parser.errors), 3)
Example #7
0
    def test_parse_minus(self):
        data = \
"""
game_name Cool game

game 2012-01-19 15:12
Jonatan    1337
Molgan     -666
"""
        parser = GamesParser(StringIO(data), "test")
        parser.parse_file()
        self.assertEqual(parser.games[0]["scores"]["Molgan"], -666)
        self.assertEqual(len(parser.errors), 0)
Example #8
0
    def test_parse_games(self):
        data = \
"""
game_name Cool game

game 2012-01-19 15:12:00
Jonatan    1337
Molgan     666

game 2012-01-19 15:12:20
Jonatan    123
Molgan     231
"""
        parser = GamesParser(StringIO(data))
        parser.parse_file()
        self.assertEqual(2, len(parser.games))