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']
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
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
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
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
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()
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}]