def testAddTeamAlreadyExists(self): """Import a team that already exists""" # the testing lines sponsor = "Test Import Sponsor" color = "Blue" captain = "Test Captain" league = "Test Import League" lines = [ "{}:,{},".format(BACKGROUND['sponsor_name'], sponsor), "{}:,{},".format(BACKGROUND['team_color'], color), "{}:,{},".format(BACKGROUND['captain_name'], captain), "{}:,{},".format(BACKGROUND['league_name'], league), "{},{},{}".format(HEADERS['name'], HEADERS['email'], HEADERS['gender']), "Test Captain,[email protected],M", "Test Girl,[email protected],F", "Test Boy,[email protected],M" ] # added the needed background sponsor = self.add_sponsor(sponsor) league = self.add_league(league) team = self.add_team(color, sponsor, league, date.today().year) # import the a test team importer = TeamList(lines, session=TestImportMockSession(self)) importer.add_team_functional() self.assertEqual(importer.warnings, [], "Importing team gave warnings") team = Team.query.get(team['team_id']) self.assertEqual(len(team.players), 3, "Importing team players were not created")
def testAddTeamPlayerAlreadyExists(self): """Import a team where one player already exists""" # the testing lines sponsor = "Test Import Sponsor" color = "Blue" captain = "Test Captain" league = "Test Import League" player_email = "*****@*****.**" player_name = "Test Girl" player_gender = "F" lines = [ "{}:,{},".format(BACKGROUND['sponsor_name'], sponsor), "{}:,{},".format(BACKGROUND['team_color'], color), "{}:,{},".format(BACKGROUND['captain_name'], captain), "{}:,{},".format(BACKGROUND['league_name'], league), "{},{},{}".format(HEADERS['name'], HEADERS['email'], HEADERS['gender']), "Test Captain,[email protected],M", "{},{},{}".format(player_name, player_email, player_gender) ] # added the needed background sponsor = self.add_sponsor(sponsor) league = self.add_league(league) player = self.add_player(player_name, player_email, gender=player_gender) # import the a test team importer = TeamList(lines, session=TestImportMockSession(self)) importer.add_team_functional() self.assertEqual(importer.warnings, [], "Importing team gave warnings") teams = (Team.query.filter( func.lower(Team.color) == func.lower(color)).filter( Team.sponsor_id == sponsor['sponsor_id']).filter( Team.year == date.today().year)).all() self.assertTrue(len(teams) > 0, "Import team was not created") team = teams[0] self.assertEqual(len(team.players), 2, "Importing team players were not created") player_ids = [p.id for p in team.players] self.assertTrue(player['player_id'] in player_ids, "Import team existing player not added")
def admin_import_team_list(): results = {'errors': [], 'success': False, 'warnings': []} if not logged_in(): results['errors'].append("Permission denied") return dumps(results) file = request.files['file'] results = {'errors': [], 'success': False, 'warnings': []} if file and allowed_file(file.filename): content = (file.read()).decode("UTF-8") lines = content.replace("\r", "") lines = lines.split("\n") team = TeamList(lines) team.add_team_functional() results["warnings"] = team.warnings results["error"] = team.errors results['success'] = True if len(results['errors']) > 0: results['success'] = False else: s = "File format not accepted (csv)" raise InvalidField(payload={'detail': s}) return dumps(results)