def __set_play(self, cols): """ Takes a list of columns from an HTML table and sets the "play" dictionary for the play. args: cols: BS4 columns. returns: A score dictionary with the following fields: "play": { "type": "complete pass", "scoring": { "type": "touchdown", "team": "home" } } """ play = {} # Set the type play["type"] = get_play_type(self.current_play_info["description"]) self.current_play_info["type"] = play["type"] if not self.is_scoring: return play else: play["scoring"] = {} play["scoring"]["type"] = get_scoring_type(self.current_play_info["description"]) # Assign team based on how the score changed home_scored = self.current_play_info["home score"] - self.last_play_info["home score"] if home_scored: play["scoring"]["team"] = "home" away_scored = self.current_play_info["away score"] - self.last_play_info["away score"] if away_scored: play["scoring"]["team"] = "away" return play
def test_get_score_type(self): # Successful self.assertEqual( get_scoring_type("""Edson Arantes do Nascimento (Pelé) kicks extra point good"""), "extra point") self.assertEqual( get_scoring_type("""Sauron punts 52 yards, returned by Frodo for 90 yards, touchdown"""), "touchdown") self.assertEqual( get_scoring_type("""Abraham Lincoln pass complete deep right to Andrew Johnson for 59 yards, touchdown"""), "touchdown") self.assertEqual( get_scoring_type("""Hephaestus for no gain. Ares fumbles, recovered by Aphrodite at OLY --8, safety. Penalty on Hephaestus : Illegal Motion (Declined)"""), "safety") self.assertEqual( get_scoring_type("""Two Point Attempt: George Washington pass complete to John Adams, conversion succeeds"""), "two point conversion") self.assertEqual(get_scoring_type("Perseus 31 yard field goal good"), "field goal") # We squelch the warning from this test, we want the warning when # running on data, but not when testing with open(os.devnull, 'w') as f: oldstdout = sys.stdout f = open(os.devnull, 'w') sys.stdout = f self.assertEqual( get_scoring_type("""Paul McCartney pass incomplete short right intended for Ringo Starr (defended by George Harrison). Penalty on John Lennon : Defensive Pass Interference, 4 yards (no play)"""), None) # Return stdout sys.stdout = oldstdout f.close()
def test_get_score_type(self): # Successful self.assertEqual( get_scoring_type("""Edson Arantes do Nascimento (Pelé) kicks extra point good"""), "extra point" ) self.assertEqual( get_scoring_type("""Sauron punts 52 yards, returned by Frodo for 90 yards, touchdown"""), "touchdown" ) self.assertEqual( get_scoring_type("""Abraham Lincoln pass complete deep right to Andrew Johnson for 59 yards, touchdown"""), "touchdown" ) self.assertEqual( get_scoring_type("""Hephaestus for no gain. Ares fumbles, recovered by Aphrodite at OLY --8, safety. Penalty on Hephaestus : Illegal Motion (Declined)"""), "safety" ) self.assertEqual( get_scoring_type("""Two Point Attempt: George Washington pass complete to John Adams, conversion succeeds"""), "two point conversion" ) self.assertEqual( get_scoring_type("Perseus 31 yard field goal good"), "field goal" ) # We squelch the warning from this test, we want the warning when # running on data, but not when testing with open(os.devnull, 'w') as f: oldstdout = sys.stdout f = open(os.devnull, 'w') sys.stdout = f self.assertEqual( get_scoring_type("""Paul McCartney pass incomplete short right intended for Ringo Starr (defended by George Harrison). Penalty on John Lennon : Defensive Pass Interference, 4 yards (no play)"""), None ) # Return stdout sys.stdout = oldstdout f.close()
def test_get_score_type(self): self.__set_play_consts() # Successful self.assertEqual(get_scoring_type(self.scoring[0]), "extra point") self.assertEqual(get_scoring_type(self.scoring[1]), "touchdown") self.assertEqual(get_scoring_type(self.scoring[2]), "touchdown") self.assertEqual(get_scoring_type(self.scoring[3]), "safety") self.assertEqual(get_scoring_type(self.scoring[4]), "two point conversion") self.assertEqual(get_scoring_type(self.scoring[5]), "field goal") # We squelch the warning from this test, we want the warning when # running on data, but not when testing with open(os.devnull, 'w') as f: oldstdout = sys.stdout sys.stdout = f self.assertEqual(get_scoring_type(self.scoring[6]), None) # Return stdout sys.stdout = oldstdout
def test_get_score_type(self): self.__set_play_consts() # Successful self.assertEqual( get_scoring_type(self.scoring[0]), "extra point" ) self.assertEqual( get_scoring_type(self.scoring[1]), "touchdown" ) self.assertEqual( get_scoring_type(self.scoring[2]), "touchdown" ) self.assertEqual( get_scoring_type(self.scoring[3]), "safety" ) self.assertEqual( get_scoring_type(self.scoring[4]), "two point conversion" ) self.assertEqual( get_scoring_type(self.scoring[5]), "field goal" ) # We squelch the warning from this test, we want the warning when # running on data, but not when testing with open(os.devnull, 'w') as f: oldstdout = sys.stdout sys.stdout = f self.assertEqual( get_scoring_type(self.scoring[6]), None ) # Return stdout sys.stdout = oldstdout