@@ -227,6 +227,73 @@ class Query(ObjectType):
227227 assert_not_orderable (articles_field )
228228
229229
230+ def test_filter_filterset_class_filter_fields_exception ():
231+ with pytest .raises (Exception ):
232+ class ReporterFilter (FilterSet ):
233+ class Meta :
234+ model = Reporter
235+ fields = ["first_name" , "articles" ]
236+
237+ class ReporterFilterNode (DjangoObjectType ):
238+ class Meta :
239+ model = Reporter
240+ interfaces = (Node ,)
241+ filterset_class = ReporterFilter
242+ filter_fields = ["first_name" , "articles" ]
243+
244+
245+ def test_filter_filterset_class_information_on_meta ():
246+ class ReporterFilter (FilterSet ):
247+ class Meta :
248+ model = Reporter
249+ fields = ["first_name" , "articles" ]
250+
251+ class ReporterFilterNode (DjangoObjectType ):
252+ class Meta :
253+ model = Reporter
254+ interfaces = (Node ,)
255+ filterset_class = ReporterFilter
256+
257+ field = DjangoFilterConnectionField (ReporterFilterNode )
258+ assert_arguments (field , "first_name" , "articles" )
259+ assert_not_orderable (field )
260+
261+
262+ def test_filter_filterset_class_information_on_meta_related ():
263+ class ReporterFilter (FilterSet ):
264+ class Meta :
265+ model = Reporter
266+ fields = ["first_name" , "articles" ]
267+
268+ class ArticleFilter (FilterSet ):
269+ class Meta :
270+ model = Article
271+ fields = ["headline" , "reporter" ]
272+
273+ class ReporterFilterNode (DjangoObjectType ):
274+ class Meta :
275+ model = Reporter
276+ interfaces = (Node ,)
277+ filterset_class = ReporterFilter
278+
279+ class ArticleFilterNode (DjangoObjectType ):
280+ class Meta :
281+ model = Article
282+ interfaces = (Node ,)
283+ filterset_class = ArticleFilter
284+
285+ class Query (ObjectType ):
286+ all_reporters = DjangoFilterConnectionField (ReporterFilterNode )
287+ all_articles = DjangoFilterConnectionField (ArticleFilterNode )
288+ reporter = Field (ReporterFilterNode )
289+ article = Field (ArticleFilterNode )
290+
291+ schema = Schema (query = Query )
292+ articles_field = ReporterFilterNode ._meta .fields ["articles" ].get_type ()
293+ assert_arguments (articles_field , "headline" , "reporter" )
294+ assert_not_orderable (articles_field )
295+
296+
230297def test_filter_filterset_related_results ():
231298 class ReporterFilterNode (DjangoObjectType ):
232299 class Meta :
0 commit comments