mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-12 10:38:16 -06:00
16078 add tests for graphql filtering
This commit is contained in:
parent
27a2bc21ad
commit
b3dd5576cd
@ -440,13 +440,8 @@ class APIViewTestCases:
|
||||
base_name = self.model._meta.verbose_name.lower().replace(' ', '_')
|
||||
return getattr(self, 'graphql_base_name', base_name)
|
||||
|
||||
def _build_query(self, name, **filters):
|
||||
def _build_query_with_filter(self, name, filter_string):
|
||||
type_class = get_graphql_type_for_model(self.model)
|
||||
if filters:
|
||||
filter_string = ', '.join(f'{k}: "{v}"' for k, v in filters.items())
|
||||
filter_string = f'(filters: {{{filter_string}}})'
|
||||
else:
|
||||
filter_string = ''
|
||||
|
||||
# Compile list of fields to include
|
||||
fields_string = ''
|
||||
@ -492,6 +487,24 @@ class APIViewTestCases:
|
||||
|
||||
return query
|
||||
|
||||
def _build_filtered_query(self, name, **filters):
|
||||
if filters:
|
||||
filter_string = ', '.join(f'{k}: "{v}"' for k, v in filters.items())
|
||||
filter_string = f'(filters: {{{filter_string}}})'
|
||||
else:
|
||||
filter_string = ''
|
||||
|
||||
return self._build_query_with_filter(name, filter_string)
|
||||
|
||||
def _build_query(self, name, **filters):
|
||||
if filters:
|
||||
filter_string = ', '.join(f'{k}:{v}' for k, v in filters.items())
|
||||
filter_string = f'({filter_string})'
|
||||
else:
|
||||
filter_string = ''
|
||||
|
||||
return self._build_query_with_filter(name, filter_string)
|
||||
|
||||
@override_settings(LOGIN_REQUIRED=True)
|
||||
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user'])
|
||||
def test_graphql_get_object(self):
|
||||
@ -558,7 +571,7 @@ class APIViewTestCases:
|
||||
|
||||
url = reverse('graphql')
|
||||
field_name = f'{self._get_graphql_base_name()}_list'
|
||||
query = self._build_query(field_name, **self.graphql_filter)
|
||||
query = self._build_filtered_query(field_name, **self.graphql_filter)
|
||||
|
||||
# Add object-level permission
|
||||
obj_perm = ObjectPermission(
|
||||
|
Loading…
Reference in New Issue
Block a user