Show ill-formed clipper uids in error messages #19

Merged
mpepin merged 2 commits from Kerl/isalnum into master 2018-10-06 16:58:34 +02:00
2 changed files with 14 additions and 1 deletions

View file

@ -9,6 +9,7 @@ from django.core import mail
from django.test import TestCase, override_settings
from allauth.socialaccount.models import SocialAccount
from allauth_ens.utils import get_ldap_infos
import six
from allauth_cas.test.testcases import CASTestCase
@ -367,3 +368,11 @@ class LongTermClipperTests(CASTestCase):
self.assertEqual(nu0, nu1)
self.assertEqual(nsa0, nsa1)
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)
self.assertIn(uid, cm.exception.message)

View file

@ -69,7 +69,11 @@ def extract_infos_from_ldap(infos):
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 = {}
try:
ldap_connection = init_ldap()