class testOracleScraper(unittest.TestCase): def setUp(self): self.St = OracleScraper(databaseName = ":memory:", fetchData = False,fr = 2009, to = 2012,calc = False) def test_getSeasonUrls(self): urls = self.St.getSeasonUrls(fr=1969,to=2012) self.assertIn("http://www.basketball-reference.com/leagues/NBA_1969_games.html",urls) self.assertNotIn("http://www.basketball-reference.com/leagues/NBA_984_games.html",urls) def test_parseSeasons(self): urls = ["http://www.basketball-reference.com/leagues/NBA_1969_games.html"] results = self.St.parseSeasons(urls) results = results[("NBA","1969")] results = results["playoffs"] self.assertIn(["Tue, Apr 29, 1969", "Los Angeles Lakers", "88", "Boston Celtics","89"],results) self.assertNotIn(["Tue, Apr 29, 1969", "Los Angeles Lakers", "88", "Boston Celtics","87"],results) self.assertIn(["Fri, Apr 18, 1969", "New York Knicks", "105", "Boston Celtics","106"],results) def test_seasonsToSql(self): urls = ["http://www.basketball-reference.com/leagues/NBA_1969_games.html"] results = self.St.parseSeasons(urls) self.St.seasonsToSql(seasons = results, dbTableName = "testdata") res = list(self.St.dbConn.execute("select date,visitor_team,visitor_points from testdata where home_team='Boston Celtics'")) self.assertIn((str(date(1969,4,29)),'Los Angeles Lakers',88),res) self.assertNotIn((str(date(1969,4,15)),'Boston Celtics',87),res) self.assertIn((str(date(1969,4,18)),'New York Knicks',105),res) def test_getTeams(self): lis = self.St.getTeams() self.assertIn(["Atlanta Hawks","Atlanta Hawks", "St. Louis Hawks", "Milwaukee Hawks", "Tri-Cities Blackhawks"],lis) self.assertIn(["Boston Celtics"],lis) self.assertNotIn(["Reykjavik Penguins"],lis) def test_getTeamUrls(self): urls = self.St.getTeamUrls() self.assertIn("http://www.basketball-reference.com/teams/ATL/",urls) self.assertNotIn("http://www.basketball-reference.com/leagues/RPG/",urls) def test_teamNamesToSql(self): self.St.teamNamesToSql(self.St.getTeams()) results = map(lambda x: list(x)[0],list(self.St.dbConn.execute("select name from teamNames"))) self.assertIn("Boston Celtics",results) self.assertIn("Chicago Bulls",results) self.assertNotIn("Reykjavik Penguins",results) def test_teamsToSql(self): self.St.teamNamesToSql(self.St.getTeams()) self.St.teamsToSql() results = map(lambda x: list(x), list(self.St.dbConn.execute("select * from teams"))) self.assertTrue(len(results[0]) == 14) self.assertIn("Atlanta Hawks", results[0]) self.assertNotIn("Reykjavik Polar", results[0]) def test_parseTeamStats(self): results = self.St.parseTeamStats(["http://www.basketball-reference.com/teams/ATL/"]) self.assertIn("Atlanta Hawks", results) self.assertTrue(len(results["Atlanta Hawks"][0]) == 10) self.assertNotIn("Reykjavik Polar", results) def test_teamStatsToSql(self): self.St.teamStatsToSql(self.St.parseTeamStats(["http://www.basketball-reference.com/teams/DEN/"])) results = map(lambda x: list(x), list(self.St.dbConn.execute("select * from teamStats"))) self.assertTrue(len(results[0]) == 10) self.assertIn([1990,'NBA', 'Denver Nuggets', 43, 39,0.524,4.0,1.56,108.0,106.7], results)