mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-13 19:18: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(' ', '_')
|
base_name = self.model._meta.verbose_name.lower().replace(' ', '_')
|
||||||
return getattr(self, 'graphql_base_name', base_name)
|
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)
|
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
|
# Compile list of fields to include
|
||||||
fields_string = ''
|
fields_string = ''
|
||||||
@ -492,6 +487,24 @@ class APIViewTestCases:
|
|||||||
|
|
||||||
return query
|
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(LOGIN_REQUIRED=True)
|
||||||
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user'])
|
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user'])
|
||||||
def test_graphql_get_object(self):
|
def test_graphql_get_object(self):
|
||||||
@ -558,7 +571,7 @@ class APIViewTestCases:
|
|||||||
|
|
||||||
url = reverse('graphql')
|
url = reverse('graphql')
|
||||||
field_name = f'{self._get_graphql_base_name()}_list'
|
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
|
# Add object-level permission
|
||||||
obj_perm = ObjectPermission(
|
obj_perm = ObjectPermission(
|
||||||
|
Loading…
Reference in New Issue
Block a user