Ejemplo n.º 1
0
class TestURLParser(unittest.TestCase):

    def setUp(self):
        self.parser = URLParser()
        
    def testDownload(self):
        my_url = "http://eapeyton.com"
        with Downloader() as dler:
            dler.uncache(my_url)
            webpage = dler.download(my_url)
            self.assertEqual(webpage[:15], """<!DOCTYPE html>""")

    def testDownloadCache(self):
        my_url = "http://eapeyton.com"
        with Downloader() as dler:
            dler.uncache(my_url)
            dler.cache[my_url] = "Be cool Honey Bunny!"
            webpage = dler.download("http://eapeyton.com")
            self.assertEqual(webpage, "Be cool Honey Bunny!")
        

    def testComposeLeagueURL(self):
        url = self.parser.composeURL(leagueId=1015919)
        self.assertEqual(url, "http://games.espn.go.com/ffl/leagueoffice?leagueId=1015919")
        url = self.parser.composeURL(leagueId=5555555)
        self.assertEqual(url, "http://games.espn.go.com/ffl/leagueoffice?leagueId=5555555")

    def testComposeTeamURL(self):
        url = self.parser.composeURL(teamId=4,leagueId=1015919)
        self.assertEqual(url,"http://games.espn.go.com/ffl/clubhouse?leagueId=1015919&teamId=4")
        url = self.parser.composeURL(leagueId=5555555, teamId=12)
        self.assertEqual(url,"http://games.espn.go.com/ffl/clubhouse?leagueId=5555555&teamId=12")

    def testRegexTeam(self):
        self.parser.parse("http://games.espn.go.com/ffl/clubhouse?leagueId=1015919&teamId=1&seasonId=2013")
        self.assertEqual(self.parser.league.id, 1015919)
        self.assertEqual(self.parser.team.id, 1)
        self.assertIn(2013, self.parser.league.seasons)

    def testRegexSeason(self):
        self.parser.parse("http://games.espn.go.com/ffl/leagueoffice?leagueId=1015919&seasonId=2012")
        self.assertEqual(self.parser.league.id, 1015919)
        self.assertEqual(self.parser.season.year, 2012)

    def testParseNoYear(self):
        self.parser.parse("http://games.espn.go.com/ffl/leagueoffice?leagueId=1020911")
        self.assertEqual(self.parser.league.id, 1020911)
        self.assertEqual(self.parser.season.year, 2013)

    def testParsePlayers(self):
        self.parser.parse("http://games.espn.go.com/ffl/clubhouse?leagueId=1015919&teamId=1&seasonId=2012")
        team = self.parser.team
        self.assertEqual(team.id, 1)
        self.assertHasSequoyahPlayers(team)

    def assertHasSequoyahPlayers(self, team):
        self.assertHasPlayer(team, 11237, "Matt Ryan")
        self.assertHasPlayer(team, 11289, "Ray Rice")
        self.assertHasPlayer(team, 14885, "Doug Martin")
        self.assertHasPlayer(team, 9705, "Brandon Marshall")
        self.assertHasPlayer(team, 10447, "Calvin Johnson")
        self.assertHasPlayer(team, 13232, "Jimmy Graham")
        self.assertHasPlayer(team, 2578, "Reggie Wayne")
        self.assertHasPlayer(team, 60015, "Dolphins D/ST")
        self.assertHasPlayer(team, 3504, "Shayne Graham")
        self.assertHasPlayer(team, 11238, "Darren McFadden")
        self.assertHasPlayer(team, 13204, "Ryan Matthews")
        self.assertHasPlayer(team, 60007, "Broncos D/ST")
        self.assertHasPlayer(team, 11439, "Pierre Garcon")
        self.assertHasPlayer(team, 9613, "DeAngelo Willioms")

    def assertHasPlayer(self,team,id,name):
        player = Player(id,name)
        self.assertIn(player, team.players)

    def testParseSeason(self):
        self.parser.parse("http://games.espn.go.com/ffl/leagueoffice?leagueId=408631&seasonId=2013")
        season = self.parser.season
        self.assertEqual(season.year, 2013)
        self.assertHasTeam(season, 1, "Nick Burke")
        self.assertHasTeam(season, 2, "Jeff Siegel")
        self.assertHasTeam(season, 3, "Nick Macie")
        self.assertHasTeam(season, 4, "D Duncanson")
        self.assertHasTeam(season, 5, "Chris Nachmias")
        self.assertHasTeam(season, 6, "Chris Thorne")
        self.assertHasTeam(season, 7, "ryan davis")
        self.assertHasTeam(season, 8, "Vishnu Iyengar")
        self.assertHasTeam(season, 9, "vishaak ravi")
        self.assertHasTeam(season, 10, "Eric Peyton")

    def testParseSeason2(self):
        self.parser.parse("http://games.espn.go.com/ffl/leagueoffice?leagueId=1015919&seasonId=2012")
        season = self.parser.season
        self.assertHasTeam(season, 1, "Eric Peyton")
        team = season.teams[1]
        self.assertHasSequoyahPlayers(team)

    def testParsePlayers2(self):
        self.parser.parse("http://games.espn.go.com/ffl/clubhouse?leagueId=1015919&teamId=1&seasonId=2012")
        season = self.parser.season
        self.assertEqual(season.year, 2012)
        self.assertEqual(season.league.id, 1015919)
        self.assertHasSequoyahPlayers(self.parser.team)
        self.assertHasTeam(season, 1, "Eric Peyton")
        self.assertHasTeam(season, 2, "Eddie Peyton")
        self.assertHasTeam(season, 3, "Mala Morjaria")
        self.assertHasTeam(season, 10, "Rikin Marfatia")

    def assertHasTeam(self,season,id,owner):
        team = Team(id, owner=owner)
        self.assertIn(team, season.teams.values())

    @unittest.skip("Impossible right now because dicts are serialized in no particular order...")
    def testParseToJSON(self):
        self.maxDiff = None
        team = self.parser.parse_team("http://games.espn.go.com/ffl/clubhouse?leagueId=1015919&teamId=1&seasonId=2012")
        key = open('TeamJSONKey.json','r')
        self.assertEqual(team.to_JSON(), key.read())
        key.close()