Exemple #1
0
    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")
Exemple #2
0
    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)