Example #1
0
    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
Example #2
0
 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()
Example #4
0
 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