Fix combined search filter semantics across player season joins
This commit is contained in:
@ -154,3 +154,45 @@ def test_player_detail_api_includes_origin_fields(client):
|
||||
payload = response.json()
|
||||
assert payload["origin_competition"] == competition.name
|
||||
assert payload["origin_team"] == team.name
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_api_combined_filters_respect_same_player_season_context(client):
|
||||
nationality = Nationality.objects.create(name="Poland", iso2_code="PL", iso3_code="POL")
|
||||
competition = Competition.objects.create(
|
||||
name="PLK",
|
||||
slug="plk",
|
||||
competition_type=Competition.CompetitionType.LEAGUE,
|
||||
gender=Competition.Gender.MEN,
|
||||
country=nationality,
|
||||
)
|
||||
season = Season.objects.create(label="2024-2025", start_date=date(2024, 9, 1), end_date=date(2025, 6, 30))
|
||||
team_a = Team.objects.create(name="Warsaw", slug="warsaw", country=nationality)
|
||||
team_b = Team.objects.create(name="Gdansk", slug="gdansk", country=nationality)
|
||||
|
||||
player = Player.objects.create(first_name="Piotr", last_name="Filter", full_name="Piotr Filter", nationality=nationality)
|
||||
ps_a = PlayerSeason.objects.create(
|
||||
player=player,
|
||||
season=season,
|
||||
team=team_a,
|
||||
competition=competition,
|
||||
games_played=10,
|
||||
minutes_played=200,
|
||||
)
|
||||
PlayerSeasonStats.objects.create(player_season=ps_a, points=7, rebounds=2, assists=3, steals=1, blocks=0, turnovers=1)
|
||||
ps_b = PlayerSeason.objects.create(
|
||||
player=player,
|
||||
season=season,
|
||||
team=team_b,
|
||||
competition=competition,
|
||||
games_played=10,
|
||||
minutes_played=300,
|
||||
)
|
||||
PlayerSeasonStats.objects.create(player_season=ps_b, points=21, rebounds=4, assists=5, steals=1, blocks=0, turnovers=2)
|
||||
|
||||
response = client.get(
|
||||
reverse("api:players"),
|
||||
data={"team": team_a.id, "season": season.id, "competition": competition.id, "points_per_game_min": "20"},
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert response.json()["count"] == 0
|
||||
|
||||
Reference in New Issue
Block a user