コード例 #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
コード例 #2
0
 def test_get_play_type(self):
     # Successful
     self.assertEqual(get_play_type("--"), None)
     self.assertEqual(
             get_play_type("""Isaac Newton punts 52 yards, returned by
                 Gottfried Wilhelm von Leibniz for -7 yards (tackle by Royal
                 Society)"""),
             "punt"
             )
     self.assertEqual(
             get_play_type("""Two Point Attempt: Saul Perlmutter pass
                 incomplete, conversion fails. Penalty on SFO : Illegal
                 Touch Pass (Declined)"""),
             "two point conversion with incomplete pass"
             )
     self.assertEqual(
             get_play_type("""Two Point Attempt: Wolfgang Amadeus Mozart
                 pass complete to Antonio Salieri, conversion succeeds"""),
             "two point conversion with complete pass"
             )
     self.assertEqual(
             get_play_type("""Two Point Attempt: Pheidippides up the middle,
                 conversion succeeds"""),
             "two point conversion with run"
             )
     self.assertEqual(
             get_play_type("""Julius Caesar kicks off 70 yards, muffed catch
                 by Mark Antony, recovered by Gaius Octavius and returned
                 for no gain"""),
             "kick off"
             )
     self.assertEqual(
             get_play_type("""Neville Chamberlain kicks onside, recovered by
                 the Axis."""),
             "onside kick"
             )
     self.assertEqual(
             get_play_type("""Nikolai Yezhov sacked by Joseph Stalin and
                 Ivan Serov for -7 yards"""),
             "sack"
             )
     self.assertEqual(
             get_play_type("Albert Einstein 52 yard field goal no good"),
             "field goal"
             )
     self.assertEqual(
             get_play_type("""Antinous pass incomplete short middle intended
                 for Penelope. (defended by Odysseus).  Penalty on Odysseus:
                 Defensive Pass Interference, 9 yards (no play)"""),
             "incomplete pass"
             )
     self.assertEqual(
             get_play_type("""Bill Gates pass complete short right to Steve
                 Ballmer for 9 yards (tackle by Steve Jobs)"""),
             "complete pass"
             )
     self.assertEqual(
             get_play_type("Bruce Springsteen kicks extra point good"),
             "extra point"
             )
     self.assertEqual(
             get_play_type("Timeout #1 by The E Street Band"),
             "timeout"
             )
     self.assertEqual(
             get_play_type("Superman kneels before Zod for -1 yards"),
             "kneel"
             )
     self.assertEqual(
             get_play_type("Arthur C. Clarke spiked the ball"),
             "spike"
             )
     self.assertEqual(
             get_play_type("Aborted snap. G. Khan fumbles, recovered by K. Tolui at EUR -23 (tackled by Ögödei Kahn )."),
             "aborted snap"
             )
     self.assertEqual(
             get_play_type("""Isaac Asimov up the middle for 11 yards
                 (tackle by Ray Bradbury)"""),
             "run"
             )
     # 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_play_type("What are you even talking about?"),
                 None
                 )
         # Return stdout
         sys.stdout = oldstdout
         f.close()
コード例 #3
0
 def test_get_play_type(self):
     # Successful
     self.assertEqual(get_play_type("--"), None)
     self.assertEqual(
         get_play_type("""Isaac Newton punts 52 yards, returned by
                 Gottfried Wilhelm von Leibniz for -7 yards (tackle by Royal
                 Society)"""), "punt")
     self.assertEqual(
         get_play_type("""Two Point Attempt: Saul Perlmutter pass
                 incomplete, conversion fails. Penalty on SFO : Illegal
                 Touch Pass (Declined)"""),
         "two point conversion with incomplete pass")
     self.assertEqual(
         get_play_type("""Two Point Attempt: Wolfgang Amadeus Mozart
                 pass complete to Antonio Salieri, conversion succeeds"""),
         "two point conversion with complete pass")
     self.assertEqual(
         get_play_type("""Two Point Attempt: Pheidippides up the middle,
                 conversion succeeds"""), "two point conversion with run")
     self.assertEqual(
         get_play_type("""Julius Caesar kicks off 70 yards, muffed catch
                 by Mark Antony, recovered by Gaius Octavius and returned
                 for no gain"""), "kick off")
     self.assertEqual(
         get_play_type("""Neville Chamberlain kicks onside, recovered by
                 the Axis."""), "onside kick")
     self.assertEqual(
         get_play_type("""Nikolai Yezhov sacked by Joseph Stalin and
                 Ivan Serov for -7 yards"""), "sack")
     self.assertEqual(
         get_play_type("Albert Einstein 52 yard field goal no good"),
         "field goal")
     self.assertEqual(
         get_play_type("""Antinous pass incomplete short middle intended
                 for Penelope. (defended by Odysseus).  Penalty on Odysseus:
                 Defensive Pass Interference, 9 yards (no play)"""),
         "incomplete pass")
     self.assertEqual(
         get_play_type("""Bill Gates pass complete short right to Steve
                 Ballmer for 9 yards (tackle by Steve Jobs)"""),
         "complete pass")
     self.assertEqual(
         get_play_type("Bruce Springsteen kicks extra point good"),
         "extra point")
     self.assertEqual(get_play_type("Timeout #1 by The E Street Band"),
                      "timeout")
     self.assertEqual(
         get_play_type("Superman kneels before Zod for -1 yards"), "kneel")
     self.assertEqual(get_play_type("Arthur C. Clarke spiked the ball"),
                      "spike")
     self.assertEqual(
         get_play_type(
             "Aborted snap. G. Khan fumbles, recovered by K. Tolui at EUR -23 (tackled by Ögödei Kahn )."
         ), "aborted snap")
     self.assertEqual(
         get_play_type("""Isaac Asimov up the middle for 11 yards
                 (tackle by Ray Bradbury)"""), "run")
     # 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_play_type("What are you even talking about?"),
                          None)
         # Return stdout
         sys.stdout = oldstdout
         f.close()
コード例 #4
0
 def test_get_play_type(self):
     self.__set_play_consts()
     # Successful
     self.assertEqual(get_play_type(self.plays[0]), "punt")
     self.assertEqual(get_play_type(self.plays[1]),
                      "two point conversion with incomplete pass")
     self.assertEqual(get_play_type(self.plays[2]),
                      "two point conversion with complete pass")
     self.assertEqual(get_play_type(self.plays[3]),
                      "two point conversion with run")
     self.assertEqual(get_play_type(self.plays[4]), "kick off")
     self.assertEqual(get_play_type(self.plays[5]), "onside kick")
     self.assertEqual(get_play_type(self.plays[6]), "sack")
     self.assertEqual(get_play_type(self.plays[7]), "field goal")
     self.assertEqual(get_play_type(self.plays[8]), "incomplete pass")
     self.assertEqual(get_play_type(self.plays[9]), "complete pass")
     self.assertEqual(get_play_type(self.plays[10]), "extra point")
     self.assertEqual(get_play_type(self.plays[11]), "timeout")
     self.assertEqual(get_play_type(self.plays[12]), "kneel")
     self.assertEqual(get_play_type(self.plays[13]), "spike")
     self.assertEqual(get_play_type(self.plays[14]), "aborted snap")
     self.assertEqual(get_play_type(self.plays[15]), "run")
     # 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_play_type(self.plays[16]), None)
         self.assertEqual(get_play_type(self.plays[17]), None)
         # Return stdout
         sys.stdout = oldstdout
コード例 #5
0
 def test_get_play_type(self):
     self.__set_play_consts()
     # Successful
     self.assertEqual(
             get_play_type(self.plays[0]),
             "punt"
             )
     self.assertEqual(
             get_play_type(self.plays[1]),
             "two point conversion with incomplete pass"
             )
     self.assertEqual(
             get_play_type(self.plays[2]),
             "two point conversion with complete pass"
             )
     self.assertEqual(
             get_play_type(self.plays[3]),
             "two point conversion with run"
             )
     self.assertEqual(
             get_play_type(self.plays[4]),
             "kick off"
             )
     self.assertEqual(
             get_play_type(self.plays[5]),
             "onside kick"
             )
     self.assertEqual(
             get_play_type(self.plays[6]),
             "sack"
             )
     self.assertEqual(
             get_play_type(self.plays[7]),
             "field goal"
             )
     self.assertEqual(
             get_play_type(self.plays[8]),
             "incomplete pass"
             )
     self.assertEqual(
             get_play_type(self.plays[9]),
             "complete pass"
             )
     self.assertEqual(
             get_play_type(self.plays[10]),
             "extra point"
             )
     self.assertEqual(
             get_play_type(self.plays[11]),
             "timeout"
             )
     self.assertEqual(
             get_play_type(self.plays[12]),
             "kneel"
             )
     self.assertEqual(
             get_play_type(self.plays[13]),
             "spike"
             )
     self.assertEqual(
             get_play_type(self.plays[14]),
             "aborted snap"
             )
     self.assertEqual(
             get_play_type(self.plays[15]),
             "run"
             )
     # 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_play_type(self.plays[16]),
                 None
                 )
         self.assertEqual(
                 get_play_type(self.plays[17]),
                 None
                 )
         # Return stdout
         sys.stdout = oldstdout