diff --git a/CHANGELOG b/CHANGELOG index 0bd5d1a1ca3a48efe9e24bafb4e576dbd2d813f8..cc90f9e3ad4d06c5e5afb91292c75b8e02869493 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,12 @@ django-ucamlookup changelog ============================= +3.0.3 - 09/05/2019 +------------------ + +- Fixed a problem where validate_groupid_list() failed to validate a group id if it had leading +zeroes. + 3.0.2 - 30/04/2019 ------------------ diff --git a/setup.py b/setup.py index d63c0e78e895b0cd7aa018ac1f27becbd1fed7c4..d0b08504d51f79691b8fc4a8603569c15db79016 100755 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( long_description=open('README.md').read(), long_description_content_type='text/markdown', url='https://gitlab.developers.cam.ac.uk/uis/devops/django/ucamlookup', - version='3.0.2', + version='3.0.3', license='MIT', author='DevOps Division, University Information Services, University of Cambridge', author_email='devops@uis.cam.ac.uk', diff --git a/ucamlookup/tests.py b/ucamlookup/tests.py index 8c1ec6e6c71c9bb1af64c9bfdf85ec3b9d12a6a8..71cab5e5d437012b2e5d13600771272741a21174 100644 --- a/ucamlookup/tests.py +++ b/ucamlookup/tests.py @@ -71,6 +71,8 @@ class UcamLookupTests(TestCase): mock_result.group.title = 'CS Information Systems team' elif path == 'api/v1/group/101923': mock_result.group.title = 'UIS Finance team' + elif path == 'api/v1/group/001161': + mock_result.group.title = 'Members of "Magdalene College".' elif path == 'api/v1/group/203840928304982': mock_result.group = None elif path == 'api/v1/person/search': @@ -267,6 +269,12 @@ class UcamLookupTests(TestCase): with self.assertRaises(ValidationError): validate_groupid_list(["kaskvdkam20e9mciasmdimadf"]) + def test_validate_groupid_list_leading_zeroes(self): + """Check that group ids with leading zeroes are correctly validated""" + user_list = validate_groupid_list(['001161']) + self.assertEqual(user_list[0].lookup_id, '001161') + self.assertEqual(user_list[0].name, 'Members of "Magdalene College".') + def test_get_user_lookupgroups(self): amc203 = User.objects.create_user(username="amc203") groups = get_user_lookupgroups(amc203) diff --git a/ucamlookup/utils.py b/ucamlookup/utils.py index 2f20b28ff9dd92dfc7e5b839ea82157decc3d07b..751d6fa133e991288f490f0940568cd5dec1d837 100644 --- a/ucamlookup/utils.py +++ b/ucamlookup/utils.py @@ -241,7 +241,7 @@ def validate_groupid_list(groupids): for groupid in groupids: if groupid_re.match(groupid): - groups += (get_or_create_group_by_groupid(int(groupid)),) + groups += (get_or_create_group_by_groupid(groupid),) else: raise ValidationError("The list of groups contains an invalid group")