Пример #1
0
 def testGetLeagueID(self):
     league_name = "Test Import Fake League"
     league = self.add_league(league_name)
     self.tl = LeagueList(TestImportGames.TEST,
                          session=MockSession(self))
     league_id = self.tl.get_league_id(league_name)
     self.assertEqual(league['league_id'], league_id)
     self.tl = LeagueList(TestImportGames.TEST,
                          session=MockSession(self))
     try:
         self.tl.get_league_id("No League")
         self.assertEqual(True, False,
                          "League does not exist error should be raised")
     except Exception:
         pass
Пример #2
0
 def testImportLeagueWarnings(self):
     """Import a league that has warnings"""
     sponsor_name = str(uuid.uuid1())
     league_name = str(uuid.uuid1())
     division_name = str(uuid.uuid1())
     team_two_color = "Red"
     sponsor = self.add_sponsor(sponsor_name)
     league = self.add_league(league_name)
     division = self.add_division(division_name)
     team_two = self.add_team(team_two_color, sponsor, league)
     date = datetime.datetime.today().strftime("%Y-%m-%d")
     time = datetime.datetime.today().strftime("%H:%M")
     header_line = ",".join([
         HEADERS["home"], HEADERS["away"], HEADERS["date"], HEADERS["time"],
         HEADERS["field"]
     ])
     entry = "{},{},{},{},{}".format("not a team", team_two["team_name"],
                                     date, time, "WP1")
     lines = [
         "{}:,{},".format(BACKGROUND['league'], league["league_name"]),
         "{}:,{},".format(BACKGROUND['division'],
                          division["division_name"]), header_line, entry
     ]
     league_importer = LeagueList(lines,
                                  session=TestImportMockSession(self))
     league_importer.import_league_functional()
     error = "Expected warning when importing league with non-existent team"
     self.assertEqual(len(league_importer.warnings), 1, error)
     league = League.query.get(league["league_id"])
     games = []
     for game in league.games:
         games.append(game.json())
     self.assertEqual(len(games), 0, "Did add game where team was missing")
Пример #3
0
    def testImportGame(self):
        # add a league, sponsor and two teams
        league_name = "Test Import Fake League"
        league = self.add_league(league_name)
        sponsor = self.add_sponsor("Import Test Sponsor")
        t1 = self.add_team("Green", sponsor, league)
        t2 = self.add_team("Black", sponsor, league)

        # a valid request to add a game
        day = datetime.date.today().strftime("%Y-%m-%d")
        game_entry = "{},{},{},12:00,WP1".format(t1['team_name'],
                                                 t2['team_name'],
                                                 day)
        self.valid_test = ["League:,{},,,".format(league_name),
                           "Home Team,Away Team,Date,Time,Field",
                           game_entry]
        self.tl = LeagueList(self.valid_test,
                             session=MockSession(self))
        self.tl.league_id = league['league_id']
        self.tl.set_columns_indices(self.valid_test[1].split(","))
        self.tl.set_teams()
        self.tl.import_game(self.valid_test[2])
        self.assertEqual(self.tl.warnings, [])
        self.assertEqual(self.tl.errors, [])

        # an invalid request - one team not in the league
        game_entry = "{},{},{},12:00,WP1".format("NOT A TEAM",
                                                 t2['team_name'],
                                                 day)
        self.valid_test = ["League:,{},,,".format(league_name),
                           "Home Team,Away Team,Date,Time,Field",
                           game_entry]
        self.tl = LeagueList(self.valid_test,
                             session=MockSession(self))
        self.tl.league_id = league['league_id']
        self.tl.set_columns_indices(self.valid_test[1].split(","))
        self.tl.set_teams()
        self.tl.import_game(self.valid_test[2])
        self.assertEqual(self.tl.warnings, [])
        self.assertEqual(self.tl.errors,
                         ["NOT A TEAM is not a team in the league"])
Пример #4
0
 def testCheckHeader(self):
     # check valid header
     self.tl = LeagueList(TestImportGames.TEST,
                          session=MockSession(self))
     valid = self.tl.check_header(TestImportGames.TEST[0:2])
     self.assertEqual(valid, True)
     # check a header that is too short
     self.tl = LeagueList(TestImportGames.TOO_SHORT,
                          session=MockSession(self))
     valid = self.tl.check_header(TestImportGames.TOO_SHORT[0:2])
     self.assertEqual(valid, False)
     # check a header that has too few columns
     self.tl = LeagueList(TestImportGames.TOO_FEW_COLUMNS,
                          session=MockSession(self))
     valid = self.tl.check_header(TestImportGames.TOO_FEW_COLUMNS[0:2])
     self.assertEqual(valid, False)
     # check a header that is missing a column
     self.tl = LeagueList(TestImportGames.MISSING_HOME_NAME,
                          session=MockSession(self))
     valid = self.tl.check_header(TestImportGames.TOO_FEW_COLUMNS[0:2])
     self.assertEqual(valid, False)
def admin_import_game_list():
    results = {'errors': [], 'success': False, 'warnings': []}
    if not logged_in():
        results['errors'].append("Permission denied")
        return dumps(results)
    file = request.files['file']
    if file and allowed_file(file.filename):
        content = (file.read()).decode("UTF-8")
        lines = content.replace("\r", "")
        lines = lines.split("\n")
        team = LeagueList(lines)
        team.import_league_functional()
        results['errors'] = team.errors
        results['warnings'] = team.warnings
        results['success'] = True
        if len(results['errors']) > 0:
            results['success'] = False
    else:
        results['errors'] = "File should be a CSV"
        results['success'] = False
    return dumps(results)
Пример #6
0
    def testValidCases(self):
        # add a league, sponsor and two teams
        league_name = "Test Import Fake League"
        league = self.add_league(league_name)
        sponsor = self.add_sponsor("Import Test Sponsor")
        t1 = self.add_team("Green", sponsor, league)
        t2 = self.add_team("Black", sponsor, league)

        # import  a set of good games
        day = datetime.date.today().strftime("%Y-%m-%d")
        game_entry = "{},{},{},12:00,WP1".format(t1['team_name'],
                                                 t2['team_name'],
                                                 day)
        self.valid_test = ["League:,{},,,".format(league_name),
                           "Home Team,Away Team,Date,Time,Field",
                           game_entry]
        self.tl = LeagueList(self.valid_test,
                             session=MockSession(self))
        self.tl.import_league()
        self.assertEqual([], self.tl.warnings)
        self.assertEqual([], self.tl.errors)
Пример #7
0
    def testInvalidCases(self):
        # add a league, sponsor and two teams
        league_name = "Test Import Fake League"
        league = self.add_league(league_name)
        sponsor = self.add_sponsor("Import Test Sponsor")
        t1 = self.add_team("Green", sponsor, league)
        t2 = self.add_team("Black", sponsor, league)

        # test bad header
        # import  a set of good games
        day = datetime.date.today().strftime("%Y-%m-%d")
        game_entry = "{},{},{},12:00,WP1".format(t1['team_name'],
                                                 t2['team_name'],
                                                 day)

        self.bad_header = ["League:,{},,,".format(league_name),
                           "Home Team,Away Team,Date,Time,asjdl9798u",
                           game_entry]
        self.tl = LeagueList(self.bad_header)
        self.tl.import_league()

        # test bad league
        self.bad_league = ["Leaguex:,{}xas,,,".format(league_name),
                           "Home Team,Away Team,Date,Time,Field",
                           game_entry]
        self.tl = LeagueList(self.bad_league,
                             session=MockSession(self))
        try:
            self.tl.import_league()
        except LeagueDoesNotExist:
            pass

        # test bad game
        game_entry = "{},{},2015-XX-01,12:00,WP1".format(t1['team_name'],
                                                         t2['team_name'])
        self.bad_game = ["League:,{},,,".format(league_name),
                         "Home Team,Away Team,Date,Time,Field",
                         game_entry]
        self.tl = LeagueList(self.bad_game,
                             session=MockSession(self))
        try:
            self.tl.import_league()
            self.assertEqual(True, False, "should raise error")
        except InvalidField:
            pass

        # test bad team in game
        bad_team = "xaasdasd3"
        game_entry = "{},{},{},12:00,WP1".format(bad_team,
                                                 t2['team_name'],
                                                 day)
        self.bad_team = ["League:,{},,,".format(league_name),
                         "Home Team,Away Team,Date,Time,Field",
                         game_entry]

        self.tl = LeagueList(self.bad_team,
                             session=MockSession(self))
        self.tl.import_league()
        self.assertEqual(self.tl.warnings, [])
        self.assertEqual(['{} is not a team in the league'.format(bad_team)],
                         self.tl.errors)
Пример #8
0
 def testParseHeader(self):
     self.tl = LeagueList(TestImportGames.TEST, session=MockSession(self))
     l, h = self.tl.parse_header(TestImportGames.TEST[0: 2])
     self.assertEqual(l, 'Monday and Wednesday')
     self.assertEqual(h,
                      ["Home Team", "Away Team", "Date", "Time", "Field"])