Я пытаюсь проверить, что определенный экземпляр модели вызовет одно из двух исключений, но я не могу понять, как заставить его работать. Вот что у меня есть:
Модель
class AvailablePermissions(models.Model):
# Main Checkbox.
category = models.CharField(
max_length=100,
)
# Checkboxes under Main Checkbox.
subcategory = models.CharField(
max_length=100,
)
# The view to grant permission to.
view_name= models.CharField(
max_length=255,
unique=True,
)
def full_clean_save(self):
try:
name = resolve(reverse(f'{self.view_name}'))
self.full_clean()
self.save()
except NoReverseMatch as nrme:
raise nrme
except ValidationError as ve:
raise ve
return self
Test
# Default permission object "(**permission)"
permission = {
'category': 'Category',
'subcategory': 'Subcategory',
'view_name': 'employee:create_profile',
}
available_permission = AvailablePermissions(**permission)
class AvailablePermissionsValidationTest(TestCase):
def test_AvailablePermissions_will_not_save_blank_permissions(self):
for field in permission:
original_value = permission[field]
permission[field] = ''
with self.assertRaises(ValidationError or NoReverseMatch):
AvailablePermissions(
**permission
).full_clean_save()
permission[field] = original_value
Выдает ошибку NoReverseMatch
, но я не могу понять, как искать исключение «или» или «*».