tests: added queries count check

This commit is contained in:
Laurent Riviere 2023-05-22 16:35:30 +00:00
parent 013dbbefc6
commit a2a95a4b62

View File

@ -483,7 +483,7 @@ class TestShouldCallGetQuerySetOnOneToOne:
assert len(result.errors) == 1 assert len(result.errors) == 1
assert result.errors[0].message == "Not authorized to access film details." assert result.errors[0].message == "Not authorized to access film details."
def test_get_queryset_called_on_foreignkey(self): def test_get_queryset_called_on_foreignkey(self, django_assert_num_queries):
# A user tries to access a film details through a film # A user tries to access a film details through a film
query = """ query = """
query getFilm($id: ID!) { query getFilm($id: ID!) {
@ -497,14 +497,15 @@ class TestShouldCallGetQuerySetOnOneToOne:
""" """
# With `permission_get_film_details` # With `permission_get_film_details`
result = self.schema.execute( with django_assert_num_queries(2):
query, result = self.schema.execute(
variables={"id": self.films[0].id}, query,
context_value={ variables={"id": self.films[0].id},
"permission_get_film": True, context_value={
"permission_get_film_details": True, "permission_get_film": True,
}, "permission_get_film_details": True,
) },
)
assert not result.errors assert not result.errors
assert result.data["film"] == { assert result.data["film"] == {
"genre": "DO", "genre": "DO",
@ -512,14 +513,15 @@ class TestShouldCallGetQuerySetOnOneToOne:
} }
# Without `permission_get_film_details` # Without `permission_get_film_details`
result = self.schema.execute( with django_assert_num_queries(1):
query, result = self.schema.execute(
variables={"id": self.films[0].id}, query,
context_value={ variables={"id": self.films[0].id},
"permission_get_film": True, context_value={
"permission_get_film_details": False, "permission_get_film": True,
}, "permission_get_film_details": False,
) },
)
assert len(result.errors) == 1 assert len(result.errors) == 1
assert result.errors[0].message == "Not authorized to access film details." assert result.errors[0].message == "Not authorized to access film details."
@ -536,14 +538,15 @@ class TestShouldCallGetQuerySetOnOneToOne:
""" """
# With `permission_get_film` # With `permission_get_film`
result = self.schema.execute( with django_assert_num_queries(2):
query, result = self.schema.execute(
variables={"id": self.film_details[0].id}, query,
context_value={ variables={"id": self.film_details[0].id},
"permission_get_film": True, context_value={
"permission_get_film_details": True, "permission_get_film": True,
}, "permission_get_film_details": True,
) },
)
assert not result.errors assert not result.errors
assert result.data["filmDetails"] == { assert result.data["filmDetails"] == {
"location": "", "location": "",
@ -551,13 +554,14 @@ class TestShouldCallGetQuerySetOnOneToOne:
} }
# Without `permission_get_film` # Without `permission_get_film`
result = self.schema.execute( with django_assert_num_queries(1):
query, result = self.schema.execute(
variables={"id": self.film_details[1].id}, query,
context_value={ variables={"id": self.film_details[1].id},
"permission_get_film": False, context_value={
"permission_get_film_details": True, "permission_get_film": False,
}, "permission_get_film_details": True,
) },
)
assert len(result.errors) == 1 assert len(result.errors) == 1
assert result.errors[0].message == "Not authorized to access film." assert result.errors[0].message == "Not authorized to access film."