17170 test fixes

This commit is contained in:
Arthur 2025-03-13 10:58:33 -07:00
parent 5782ad813d
commit e331be39f9
6 changed files with 40 additions and 9 deletions

View File

@ -46,6 +46,11 @@ class ContactGroupFilterSet(OrganizationalModelFilterSet):
to_field_name='slug', to_field_name='slug',
label=_('Contact group (slug)'), label=_('Contact group (slug)'),
) )
contact_id = django_filters.ModelMultipleChoiceFilter(
field_name='contact',
queryset=Contact.objects.all(),
label=_('Contact (ID)'),
)
class Meta: class Meta:
model = ContactGroup model = ContactGroup
@ -60,13 +65,13 @@ class ContactRoleFilterSet(OrganizationalModelFilterSet):
class ContactFilterSet(NetBoxModelFilterSet): class ContactFilterSet(NetBoxModelFilterSet):
group_id = TreeNodeMultipleChoiceFilter( contact_group_id = TreeNodeMultipleChoiceFilter(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
field_name='groups', field_name='groups',
lookup_expr='in', lookup_expr='in',
label=_('Contact group (ID)'), label=_('Contact group (ID)'),
) )
group = TreeNodeMultipleChoiceFilter( contact_group = TreeNodeMultipleChoiceFilter(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
field_name='groups', field_name='groups',
to_field_name='slug', to_field_name='slug',

View File

@ -71,7 +71,7 @@ class ContactRoleFilterForm(NetBoxModelFilterSetForm):
class ContactFilterForm(NetBoxModelFilterSetForm): class ContactFilterForm(NetBoxModelFilterSetForm):
model = Contact model = Contact
group_id = DynamicModelMultipleChoiceField( contact_group_id = DynamicModelMultipleChoiceField(
queryset=ContactGroup.objects.all(), queryset=ContactGroup.objects.all(),
required=False, required=False,
null_option='None', null_option='None',

View File

@ -66,4 +66,29 @@ class Migration(migrations.Migration):
blank=True, related_name='contacts', through='tenancy.ContactGroupMembership', to='tenancy.contactgroup' blank=True, related_name='contacts', through='tenancy.ContactGroupMembership', to='tenancy.contactgroup'
), ),
), ),
migrations.AlterField(
model_name='contactgroupmembership',
name='contact',
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, related_name='+', to='tenancy.contact'
),
),
migrations.AlterField(
model_name='contactgroupmembership',
name='group',
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, related_name='+', to='tenancy.contactgroup'
),
),
migrations.AlterField(
model_name='contact',
name='groups',
field=models.ManyToManyField(
blank=True,
related_name='contacts',
related_query_name='contact',
through='tenancy.ContactGroupMembership',
to='tenancy.contactgroup',
),
),
] ]

View File

@ -51,6 +51,7 @@ class Contact(PrimaryModel):
to='tenancy.ContactGroup', to='tenancy.ContactGroup',
related_name='contacts', related_name='contacts',
through='tenancy.ContactGroupMembership', through='tenancy.ContactGroupMembership',
related_query_name='contact',
blank=True blank=True
) )
name = models.CharField( name = models.CharField(
@ -96,8 +97,8 @@ class Contact(PrimaryModel):
class ContactGroupMembership(models.Model): class ContactGroupMembership(models.Model):
group = models.ForeignKey(ContactGroup, on_delete=models.CASCADE) group = models.ForeignKey(ContactGroup, related_name="+", on_delete=models.CASCADE)
contact = models.ForeignKey(Contact, on_delete=models.CASCADE) contact = models.ForeignKey(Contact, related_name="+", on_delete=models.CASCADE)
class Meta: class Meta:
constraints = [ constraints = [

View File

@ -277,9 +277,9 @@ class ContactTestCase(TestCase, ChangeLoggedFilterSetTests):
def test_group(self): def test_group(self):
group = ContactGroup.objects.all()[:2] group = ContactGroup.objects.all()[:2]
params = {'group_id': [group[0].pk, group[1].pk]} params = {'contact_group_id': [group[0].pk, group[1].pk]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
params = {'group': [group[0].slug, group[1].slug]} params = {'contact_group': [group[0].slug, group[1].slug]}
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)

View File

@ -144,8 +144,8 @@ class BaseFilterSetTests:
# Check that the filter class is correct # Check that the filter class is correct
filter = filters[filter_name] filter = filters[filter_name]
if filter_class is not None: if filter_class is not None:
self.assertIs( self.assertIsInstance(
type(filter), filter,
filter_class, filter_class,
f"Invalid filter class {type(filter)} for {filter_name} (should be {filter_class})!" f"Invalid filter class {type(filter)} for {filter_name} (should be {filter_class})!"
) )