aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2019-12-18 21:03:28 -0800
committerGravatar MarkKoz <[email protected]>2019-12-18 21:36:43 -0800
commit309acd3982fa0c28c9cb65dd38618067e3c6f4d4 (patch)
tree81f53d5b07506c5d8e2bdb39c83ba592c442d9c2
parentTest that new infractions pass validation (diff)
Output errors more clearly for infraction serializer test failures
-rw-r--r--pydis_site/apps/api/tests/test_infractions.py16
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)