Skip to content

Commit

Permalink
Add test to confirm that get_queryset gets called for related foreign…
Browse files Browse the repository at this point in the history
… keys
  • Loading branch information
jkimbo committed Apr 12, 2020
1 parent 68462b7 commit 9aca4a9
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions graphene_django/tests/test_fields.py
Expand Up @@ -316,3 +316,63 @@ def resolve_reporters(_, info):

assert not result.errors
assert result.data == {"reporters": [{"firstName": "Debra"},]}

def test_get_queryset_foreign_key(self):
class Article(DjangoObjectType):
class Meta:
model = ArticleModel
fields = ("headline",)

@classmethod
def get_queryset(cls, queryset, info):
# Rose tinted glasses
return queryset.exclude(headline__contains="Not so good")

class Reporter(DjangoObjectType):
class Meta:
model = ReporterModel
fields = ("first_name", "articles")

class Query(ObjectType):
reporters = DjangoListField(Reporter)

schema = Schema(query=Query)

query = """
query {
reporters {
firstName
articles {
headline
}
}
}
"""

r1 = ReporterModel.objects.create(first_name="Tara", last_name="West")
ReporterModel.objects.create(first_name="Debra", last_name="Payne")

ArticleModel.objects.create(
headline="Amazing news",
reporter=r1,
pub_date=datetime.date.today(),
pub_date_time=datetime.datetime.now(),
editor=r1,
)
ArticleModel.objects.create(
headline="Not so good news",
reporter=r1,
pub_date=datetime.date.today(),
pub_date_time=datetime.datetime.now(),
editor=r1,
)

result = schema.execute(query)

assert not result.errors
assert result.data == {
"reporters": [
{"firstName": "Tara", "articles": [{"headline": "Amazing news"},],},
{"firstName": "Debra", "articles": []},
]
}

0 comments on commit 9aca4a9

Please sign in to comment.