Add missing filter & complete tests

This commit is contained in:
Jeremy Stretch 2024-06-26 09:51:17 -04:00
parent 400469edf2
commit d5fca3bba9
3 changed files with 23 additions and 16 deletions

View File

@ -1019,9 +1019,15 @@ class DeviceFilterSet(
label=_('VM cluster (ID)'), label=_('VM cluster (ID)'),
) )
cluster_group = django_filters.ModelMultipleChoiceFilter( cluster_group = django_filters.ModelMultipleChoiceFilter(
field_name='cluster__group__slug',
queryset=ClusterGroup.objects.all(),
to_field_name='slug',
label=_('Cluster group (slug)'),
)
cluster_group_id = django_filters.ModelMultipleChoiceFilter(
field_name='cluster__group', field_name='cluster__group',
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
label=_('Cluster group (name)'), label=_('Cluster group (ID)'),
) )
model = django_filters.ModelMultipleChoiceFilter( model = django_filters.ModelMultipleChoiceFilter(
field_name='device_type__slug', field_name='device_type__slug',

View File

@ -656,7 +656,7 @@ class DeviceFilterForm(
'console_ports', 'console_server_ports', 'power_ports', 'power_outlets', 'interfaces', 'pass_through_ports', 'console_ports', 'console_server_ports', 'power_ports', 'power_outlets', 'interfaces', 'pass_through_ports',
name=_('Components') name=_('Components')
), ),
FieldSet('cluster_group', 'cluster_id', name=_('Cluster')), FieldSet('cluster_group_id', 'cluster_id', name=_('Cluster')),
FieldSet( FieldSet(
'has_primary_ip', 'has_oob_ip', 'virtual_chassis_member', 'config_template_id', 'local_context_data', 'has_primary_ip', 'has_oob_ip', 'virtual_chassis_member', 'config_template_id', 'local_context_data',
'has_virtual_device_context', 'has_virtual_device_context',
@ -828,7 +828,7 @@ class DeviceFilterForm(
required=False, required=False,
label=_('Cluster') label=_('Cluster')
) )
cluster_group = DynamicModelMultipleChoiceField( cluster_group_id = DynamicModelMultipleChoiceField(
queryset=ClusterGroup.objects.all(), queryset=ClusterGroup.objects.all(),
required=False, required=False,
label=_('Cluster group') label=_('Cluster group')

View File

@ -1959,12 +1959,16 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
Rack.objects.bulk_create(racks) Rack.objects.bulk_create(racks)
cluster_type = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1') cluster_type = ClusterType.objects.create(name='Cluster Type 1', slug='cluster-type-1')
cluster_group_1 = ClusterGroup.objects.create(name='Cluster Group 1', slug='cluster-group-1') cluster_groups = (
cluster_group_2 = ClusterGroup.objects.create(name='Cluster Group 2', slug='cluster-group-2') ClusterGroup(name='Cluster Group 1', slug='cluster-group-1'),
ClusterGroup(name='Cluster Group 2', slug='cluster-group-2'),
ClusterGroup(name='Cluster Group 3', slug='cluster-group-3'),
)
ClusterGroup.objects.bulk_create(cluster_groups)
clusters = ( clusters = (
Cluster(name='Cluster 1', type=cluster_type, group=cluster_group_1), Cluster(name='Cluster 1', type=cluster_type, group=cluster_groups[0]),
Cluster(name='Cluster 2', type=cluster_type, group=cluster_group_1), Cluster(name='Cluster 2', type=cluster_type, group=cluster_groups[1]),
Cluster(name='Cluster 3', type=cluster_type, group=cluster_group_2), Cluster(name='Cluster 3', type=cluster_type, group=cluster_groups[2]),
) )
Cluster.objects.bulk_create(clusters) Cluster.objects.bulk_create(clusters)
@ -2215,15 +2219,12 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
params = {'cluster_id': [clusters[0].pk, clusters[1].pk]} params = {'cluster_id': [clusters[0].pk, clusters[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_cluster_group_1(self): def test_cluster_group(self):
cluster_group = ClusterGroup.objects.all() cluster_groups = ClusterGroup.objects.all()[:2]
params = {'cluster_group': [cluster_group[0].pk]} params = {'cluster_group_id': [cluster_groups[0].pk, cluster_groups[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
params = {'cluster_group': [cluster_groups[0].slug, cluster_groups[1].slug]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
def test_cluster_group_2(self):
cluster_group = ClusterGroup.objects.all()
params = {'cluster_group': [cluster_group[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
def test_model(self): def test_model(self):
params = {'model': ['model-1', 'model-2']} params = {'model': ['model-1', 'model-2']}