Ejemplo n.º 1
0
 def get_game(self, id: int = None, espn_id: int = None):
     validate_xor(id=id, espn_id=espn_id)
     if id:
         return self.game_client.get_resource_by_id(id=id)
     games = self.game_client.search("espnId", "=", espn_id)
     if not games:
         raise MissingResourceException(f"no game with ESPN id = {espn_id}")
     return games[0]
Ejemplo n.º 2
0
def list_games(team_id: int = None,
               season: int = None,
               date: dt.date = None) -> List[models.Game]:
    logger.warning(f"queries games with season={season} and date={date}")
    query = models.Game.query
    if team_id:
        query = query.filter(models.Game.participants.any(team_id=team_id))
    if season or date:
        validate_xor(season=season, date=date)
        if season:
            season = models.Season.query.filter_by(id=season).one()
            end_date = season.end_date + dt.timedelta(days=1)
            date = season.start_date
        else:
            end_date = date + dt.timedelta(days=1)
        query = query.filter(models.Game.game_time <= end_date)
        query = query.filter(models.Game.game_time >= date)
    query = query.order_by(models.Game.game_time)
    return query.all()
Ejemplo n.º 3
0
def test_validate_xor_fails_with_multiple_ints():
    with pytest.raises(ValueError):
        validate_xor(x=1, y=2, z=3)
Ejemplo n.º 4
0
def test_validate_xor_fails_with_two_nulls():
    with pytest.raises(ValueError):
        validate_xor(x=None, y=None)
Ejemplo n.º 5
0
def test_validate_xor_passes_with_single_int_param():
    validate_xor(x=1, y=None)
    validate_xor(x=None, y=2)
Ejemplo n.º 6
0
def test_validate_xor_fails_with_multiple_strings():
    with pytest.raises(ValueError):
        validate_xor(x='x', y='y', z='z')