Show ill-formed clipper uids in error messages

This commit is contained in:
Martin Pépin 2018-10-06 11:57:36 +02:00
parent 28a8127d35
commit 4a119c7d13
2 changed files with 15 additions and 1 deletions

View file

@ -9,6 +9,7 @@ from django.core import mail
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from allauth.socialaccount.models import SocialAccount from allauth.socialaccount.models import SocialAccount
from allauth_ens.utils import get_ldap_infos
import six import six
from allauth_cas.test.testcases import CASTestCase from allauth_cas.test.testcases import CASTestCase
@ -367,3 +368,12 @@ class LongTermClipperTests(CASTestCase):
self.assertEqual(nu0, nu1) self.assertEqual(nu0, nu1)
self.assertEqual(nsa0, nsa1) self.assertEqual(nsa0, nsa1)
ldap_patcher.start() ldap_patcher.start()
def test_invalid_uid(self):
self._setup_ldap(12, "test")
uids = [" test", "test ", "\\test", "test)"]
for uid in uids:
with self.assertRaises(ValueError) as cm:
get_ldap_infos(uid)
print(cm.exception)
self.assertIn(uid, cm.exception.message)

View file

@ -69,7 +69,11 @@ def extract_infos_from_ldap(infos):
def get_ldap_infos(clipper_uid): def get_ldap_infos(clipper_uid):
assert clipper_uid.isalnum() if not clipper_uid.isalnum():
raise ValueError(
'Invalid uid "{}": contains non-alphanumeric characters'
.format(clipper_uid)
)
data = {} data = {}
try: try:
ldap_connection = init_ldap() ldap_connection = init_ldap()