def setup_method(self, *args, **kwargs):
     flexmock(Boxscores) \
         .should_receive('_get_team_details') \
         .and_return((None, None, None, None, None, None))
     flexmock(Boxscores) \
         .should_receive('_find_games') \
         .and_return(None)
     self.boxscores = Boxscores(None)
class TestMLBBoxscores:
    @patch('requests.get', side_effect=mock_pyquery)
    def setup_method(self, *args, **kwargs):
        flexmock(Boxscores) \
            .should_receive('_get_team_details') \
            .and_return((None, None, None, None, None, None))
        flexmock(Boxscores) \
            .should_receive('_find_games') \
            .and_return(None)
        self.boxscores = Boxscores(None)

    def test_improper_loser_boxscore_format_skips_game(self):
        mock_html = pq("""<table class="teams">
<tbody>
<tr class="loser">
    <td class="right">1</td>
    <td class="right gamelink">
    </td>
</tr>
<tr class="winner">
    <td><a href="/teams/DET/2019.html">Detroit Red Wings</a></td>
    <td class="right">3</td>
    <td class="right">&nbsp;
    </td>
</tr>
</tbody>
</table>""")
        games = self.boxscores._extract_game_info([mock_html])

        assert len(games) == 0

    def test_improper_winner_boxscore_format_skips_game(self):
        mock_html = pq("""<table class="teams">
<tbody>
<tr class="loser">
    <td><a href="/teams/LAK/2019.html">Los Angeles Kings</a></td>
    <td class="right">1</td>
    <td class="right gamelink">
        <a href="/boxscores/201812100DET.html">Final</a>
    </td>
</tr>
<tr class="winner">
    <td class="right">3</td>
    <td class="right">&nbsp;
    </td>
</tr>
</tbody>
</table>""")
        games = self.boxscores._extract_game_info([mock_html])

        assert len(games) == 0
    def test_boxscores_search_multiple_days(self, *args, **kwargs):
        expected = {
            '2-4-2017': [
                {'boxscore': '201702040BOS',
                 'away_name': 'Toronto Maple Leafs',
                 'away_abbr': 'TOR',
                 'away_score': 6,
                 'home_name': 'Boston Bruins',
                 'home_abbr': 'BOS',
                 'home_score': 5,
                 'winning_name': 'Toronto Maple Leafs',
                 'winning_abbr': 'TOR',
                 'losing_name': 'Boston Bruins',
                 'losing_abbr': 'BOS'},
                {'boxscore': '201702040BUF',
                 'away_name': 'Ottawa Senators',
                 'away_abbr': 'OTT',
                 'away_score': 0,
                 'home_name': 'Buffalo Sabres',
                 'home_abbr': 'BUF',
                 'home_score': 4,
                 'winning_name': 'Buffalo Sabres',
                 'winning_abbr': 'BUF',
                 'losing_name': 'Ottawa Senators',
                 'losing_abbr': 'OTT'},
                {'boxscore': '201702040CBJ',
                 'away_name': 'New Jersey Devils',
                 'away_abbr': 'NJD',
                 'away_score': 5,
                 'home_name': 'Columbus Blue Jackets',
                 'home_abbr': 'CBJ',
                 'home_score': 1,
                 'winning_name': 'New Jersey Devils',
                 'winning_abbr': 'NJD',
                 'losing_name': 'Columbus Blue Jackets',
                 'losing_abbr': 'CBJ'},
                {'boxscore': '201702040COL',
                 'away_name': 'Winnipeg Jets',
                 'away_abbr': 'WPG',
                 'away_score': 2,
                 'home_name': 'Colorado Avalanche',
                 'home_abbr': 'COL',
                 'home_score': 5,
                 'winning_name': 'Colorado Avalanche',
                 'winning_abbr': 'COL',
                 'losing_name': 'Winnipeg Jets',
                 'losing_abbr': 'WPG'},
                {'boxscore': '201702040DAL',
                 'away_name': 'Chicago Blackhawks',
                 'away_abbr': 'CHI',
                 'away_score': 5,
                 'home_name': 'Dallas Stars',
                 'home_abbr': 'DAL',
                 'home_score': 3,
                 'winning_name': 'Chicago Blackhawks',
                 'winning_abbr': 'CHI',
                 'losing_name': 'Dallas Stars',
                 'losing_abbr': 'DAL'},
                {'boxscore': '201702040MTL',
                 'away_name': 'Washington Capitals',
                 'away_abbr': 'WSH',
                 'away_score': 3,
                 'home_name': 'Montreal Canadiens',
                 'home_abbr': 'MTL',
                 'home_score': 2,
                 'winning_name': 'Washington Capitals',
                 'winning_abbr': 'WSH',
                 'losing_name': 'Montreal Canadiens',
                 'losing_abbr': 'MTL'},
                {'boxscore': '201702040NSH',
                 'away_name': 'Detroit Red Wings',
                 'away_abbr': 'DET',
                 'away_score': 1,
                 'home_name': 'Nashville Predators',
                 'home_abbr': 'NSH',
                 'home_score': 0,
                 'winning_name': 'Detroit Red Wings',
                 'winning_abbr': 'DET',
                 'losing_name': 'Nashville Predators',
                 'losing_abbr': 'NSH'},
                {'boxscore': '201702040NYI',
                 'away_name': 'Carolina Hurricanes',
                 'away_abbr': 'CAR',
                 'away_score': 5,
                 'home_name': 'New York Islanders',
                 'home_abbr': 'NYI',
                 'home_score': 4,
                 'winning_name': 'Carolina Hurricanes',
                 'winning_abbr': 'CAR',
                 'losing_name': 'New York Islanders',
                 'losing_abbr': 'NYI'},
                {'boxscore': '201702040PHI',
                 'away_name': 'Los Angeles Kings',
                 'away_abbr': 'LAK',
                 'away_score': 1,
                 'home_name': 'Philadelphia Flyers',
                 'home_abbr': 'PHI',
                 'home_score': 0,
                 'winning_name': 'Los Angeles Kings',
                 'winning_abbr': 'LAK',
                 'losing_name': 'Philadelphia Flyers',
                 'losing_abbr': 'PHI'},
                {'boxscore': '201702040SJS',
                 'away_name': 'Arizona Coyotes',
                 'away_abbr': 'ARI',
                 'away_score': 3,
                 'home_name': 'San Jose Sharks',
                 'home_abbr': 'SJS',
                 'home_score': 2,
                 'winning_name': 'Arizona Coyotes',
                 'winning_abbr': 'ARI',
                 'losing_name': 'San Jose Sharks',
                 'losing_abbr': 'SJS'},
                {'boxscore': '201702040STL',
                 'away_name': 'Pittsburgh Penguins',
                 'away_abbr': 'PIT',
                 'away_score': 4,
                 'home_name': 'St. Louis Blues',
                 'home_abbr': 'STL',
                 'home_score': 1,
                 'winning_name': 'Pittsburgh Penguins',
                 'winning_abbr': 'PIT',
                 'losing_name': 'St. Louis Blues',
                 'losing_abbr': 'STL'},
                {'boxscore': '201702040TBL',
                 'away_name': 'Anaheim Ducks',
                 'away_abbr': 'ANA',
                 'away_score': 2,
                 'home_name': 'Tampa Bay Lightning',
                 'home_abbr': 'TBL',
                 'home_score': 3,
                 'winning_name': 'Tampa Bay Lightning',
                 'winning_abbr': 'TBL',
                 'losing_name': 'Anaheim Ducks',
                 'losing_abbr': 'ANA'},
                {'boxscore': '201702040VAN',
                 'away_name': 'Minnesota Wild',
                 'away_abbr': 'MIN',
                 'away_score': 6,
                 'home_name': 'Vancouver Canucks',
                 'home_abbr': 'VAN',
                 'home_score': 3,
                 'winning_name': 'Minnesota Wild',
                 'winning_abbr': 'MIN',
                 'losing_name': 'Vancouver Canucks',
                 'losing_abbr': 'VAN'}
            ],
            '2-5-2017': [
                {'boxscore': '201702050MTL',
                 'away_name': 'Edmonton Oilers',
                 'away_abbr': 'EDM',
                 'away_score': 1,
                 'home_name': 'Montreal Canadiens',
                 'home_abbr': 'MTL',
                 'home_score': 0,
                 'winning_name': 'Edmonton Oilers',
                 'winning_abbr': 'EDM',
                 'losing_name': 'Montreal Canadiens',
                 'losing_abbr': 'MTL'},
                {'boxscore': '201702050NYR',
                 'away_name': 'Calgary Flames',
                 'away_abbr': 'CGY',
                 'away_score': 3,
                 'home_name': 'New York Rangers',
                 'home_abbr': 'NYR',
                 'home_score': 4,
                 'winning_name': 'New York Rangers',
                 'winning_abbr': 'NYR',
                 'losing_name': 'Calgary Flames',
                 'losing_abbr': 'CGY'},
                {'boxscore': '201702050WSH',
                 'away_name': 'Los Angeles Kings',
                 'away_abbr': 'LAK',
                 'away_score': 0,
                 'home_name': 'Washington Capitals',
                 'home_abbr': 'WSH',
                 'home_score': 5,
                 'winning_name': 'Washington Capitals',
                 'winning_abbr': 'WSH',
                 'losing_name': 'Los Angeles Kings',
                 'losing_abbr': 'LAK'}
            ]
        }
        result = Boxscores(datetime(2017, 2, 4), datetime(2017, 2, 5)).games

        assert result == expected
    def test_boxscores_search_invalid_end(self, *args, **kwargs):
        result = Boxscores(datetime(2017, 2, 4), datetime(2017, 2, 3)).games

        assert result == self.expected
예제 #5
0
    def test_boxscores_search_string_representation(self, *args, **kwargs):
        result = Boxscores(datetime(2017, 2, 4))

        assert result.__repr__() == 'NHL games for 2-4-2017'