diff options
author | 2019-12-18 21:03:28 -0800 | |
---|---|---|
committer | 2019-12-18 21:36:43 -0800 | |
commit | 309acd3982fa0c28c9cb65dd38618067e3c6f4d4 (patch) | |
tree | 81f53d5b07506c5d8e2bdb39c83ba592c442d9c2 /pydis_site | |
parent | Test that new infractions pass validation (diff) |
Output errors more clearly for infraction serializer test failures
Diffstat (limited to 'pydis_site')
-rw-r--r-- | pydis_site/apps/api/tests/test_infractions.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/pydis_site/apps/api/tests/test_infractions.py b/pydis_site/apps/api/tests/test_infractions.py index da2171d5..4ed5ac25 100644 --- a/pydis_site/apps/api/tests/test_infractions.py +++ b/pydis_site/apps/api/tests/test_infractions.py @@ -4,7 +4,6 @@ from urllib.parse import quote from django.db.utils import IntegrityError from django_hosts.resolvers import reverse -from rest_framework.exceptions import ValidationError from .base import APISubdomainTestCase from ..models import Infraction, User @@ -600,7 +599,7 @@ class SerializerTests(APISubdomainTestCase): data = {'reason': 'hello'} serializer = InfractionSerializer(instance, data=data, partial=True) - self.assertTrue(serializer.is_valid()) + self.assertTrue(serializer.is_valid(), msg=serializer.errors) def test_validation_error_if_active_duplicate(self): self.create_infraction('ban', active=True) @@ -609,9 +608,14 @@ class SerializerTests(APISubdomainTestCase): data = {'active': True} serializer = InfractionSerializer(instance, data=data, partial=True) - msg = 'This user already has an active infraction of this type' - with self.assertRaisesRegex(ValidationError, msg): - serializer.is_valid(raise_exception=True) + if not serializer.is_valid(): + self.assertIn('non_field_errors', serializer.errors) + + code = serializer.errors['non_field_errors'][0].code + msg = f'Expected failure on unique validator but got {serializer.errors}' + self.assertEqual(code, 'unique', msg=msg) + else: + self.fail('Validation unexpectedly succeeded.') def test_is_valid_for_new_active_infraction(self): self.create_infraction('ban', active=False) @@ -625,4 +629,4 @@ class SerializerTests(APISubdomainTestCase): } serializer = InfractionSerializer(data=data) - self.assertTrue(serializer.is_valid()) + self.assertTrue(serializer.is_valid(), msg=serializer.errors) |