예제 #1
0
def test_importer_splitGoals(excel):
    log = Log('test.log')
    importer = ImporterGoals(excel, log)
    goals = "Player (Potter, Rains) 78"
    assert importer.splitGoals(goals) == ['Player (Potter, Rains) 78']
    goals = "Player (unassisted) 78; Player (unassisted) 89"
    assert importer.splitGoals(goals) == ['Player (unassisted) 78', 'Player (unassisted) 89']
예제 #2
0
def test_importer_lookupPlayerID_valid(excel):
    log = Log('test.log')
    importer = ImporterGoals(excel, log)
    # Invalid records get run through disambiguation
    with mock.patch('__builtin__.raw_input', return_value=0):
        event = {'playername': 'Invalid Player', 'TeamID': 2, 'GameID': 1, 'Event': 1}
        assert importer.lookupPlayerID(event) is False
        assert importer.skipped == 1
예제 #3
0
def test_importer_lookupPlayerID_owngoal(excel):
    log = Log('test.log')
    importer = ImporterGoals(excel, log)
    # We don't worry about invalid data formats, as those are caught by player object
    event = {'playername': 'Man', 'TeamID': 1, 'GameID': 1, 'Event': 6, 'OpponentID': 2}
    event = importer.lookupPlayerID(event)
    assert event['PlayerID'] == 3
    assert importer.skipped == 0
예제 #4
0
def test_importer_disambiguatePlayers(excel):
    log = Log('test.log')
    importer = ImporterGoals(excel, log)
    with mock.patch('__builtin__.raw_input', return_value=1234):
        record = {
            'playername': 'Bogus Player'
        }
        assert importer.disambiguatePlayers(record, [0]) == 1234
예제 #5
0
def test_importer_parseAssists(excel):
    log = Log('test_parseAssists.log')
    importer = ImporterGoals(excel, log)
    game = 1
    team = 1
    # Test single assist
    record = []
    minute = 78
    assists = 'Player'
    assert importer.parseAssists(record, minute, assists, game, team) == [{'GameID': 1, 'TeamID': 1, 'playername': 'Player', 'MinuteID': 78, 'Event': 2, 'Notes': ''}]
    # Test two assists
    record = []
    assists = 'Player,Potter'
    assert importer.parseAssists(record, minute, assists, game, team) == [{'GameID': 1, 'TeamID': 1, 'playername': 'Player', 'MinuteID': 78, 'Event': 2, 'Notes': ''}, {'GameID': 1, 'TeamID': 1, 'playername': 'Potter', 'MinuteID': 78, 'Event': 3, 'Notes': ''}]
    # Test too many assists
    record = []
    assert importer.skipped == 0
    assists = 'Player,Potter,Rains'
    assert importer.parseAssists(record, minute, assists, game, team) == []
    assert importer.skipped == 1
예제 #6
0
def importGoals(infile):
    # Feedback, setup
    print('Importing goals from ' + str(infile))
    log = Log('trapp-import-goals.log')
    importer = ImporterGoals(infile, log)

    # Check for required fields
    requiredColumns = ([
        'Code',
        'Date',
        'H/A',
        'Opponent',
        'Score',
        'Goals',
    ])
    importer.checkFields(requiredColumns)
    log.message('Required fields checked')

    # Do the import
    importer.doImport()
    log.message('Import done')

    # Shutdown
    log.end()
예제 #7
0
def test_importer_parseOneGoal(excel):
    log = Log('test.log')
    importer = ImporterGoals(excel, log)
    game = 1
    team = 1
    opponent = 2
    goals = ""
    # assert importer.parseGoals(goals) == [{}]
    goals = "Player (unassisted) 78"
    assert importer.parseOneGoal(goals, game, team, opponent) == [{'playername': 'Player', 'MinuteID': 78, 'Event': 1, 'Notes': '', 'GameID': 1, 'TeamID': 1, 'OpponentID': 2}]
    goals = "Player (penalty) 78"
    assert importer.parseOneGoal(goals, game, team, opponent) == [{'playername': 'Player', 'MinuteID': 78, 'Event': 1, 'Notes': 'penalty kick', 'GameID': 1, 'TeamID': 1, 'OpponentID': 2}]
    goals = "Player (Potter) 78"
    assert importer.parseOneGoal(goals, game, team, opponent) == [{'playername': 'Player', 'MinuteID': 78, 'Event': 1, 'Notes': '', 'GameID': 1, 'TeamID': 1, 'OpponentID': 2}, {'playername': 'Potter', 'MinuteID': 78, 'Event': 2, 'Notes': '', 'GameID': 1, 'TeamID': 1}]
    goals = "Player (Potter, Rains) 78"
    assert importer.parseOneGoal(goals, game, team, opponent) == [{'playername': 'Player', 'MinuteID': 78, 'Event': 1, 'Notes': '', 'GameID': 1, 'TeamID': 1, 'OpponentID': 2}, {'playername': 'Potter', 'MinuteID': 78, 'Event': 2, 'Notes': '', 'GameID': 1, 'TeamID': 1}, {'playername': 'Rains', 'MinuteID': 78, 'Event': 3, 'Notes': '', 'GameID': 1, 'TeamID': 1}]
    goals = "Player (own goal) 78"
    assert importer.parseOneGoal(goals, game, team, opponent) == [{'playername': 'Player', 'MinuteID': 78, 'Event': 6, 'Notes': 'own goal', 'GameID': 1, 'TeamID': 1, 'OpponentID': 2}]