FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
Commit 2e275464 authored by Dr Abraham Martin's avatar Dr Abraham Martin
Browse files

Added support for django 1.9 and 1.10 and python 3.5. Dropped support for django 1.7 and python 3.3

parent dcb39197
No related branches found
No related tags found
No related merge requests found
language: python
python:
- 2.7
- 3.3
- 3.4
- 3.5
env:
- DJANGO="django>=1.7,<1.8"
- DJANGO="django>=1.8,<1.9"
- DJANGO="django>=1.9,<1.10"
- DJANGO="django>=1.10,<1.11"
install:
- pip install $DJANGO
- pip install requests
......
django-ucamlookup changelog
=============================
1.7.1 - 13/06/2016
------------------
- Dropped support for django 1.7
- Added support for django 1.9 and 1.10
- Dropped support for python 3.3
- Added support for python 3.5
1.7.1 - 13/06/2016
------------------
......
......@@ -5,8 +5,10 @@ import django
from django.conf import settings
from django.test.runner import DiscoverRunner
DIRNAME = os.path.dirname(__file__)
settings.configure(
DEBUG=False,
DATABASES={'default': {'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'test.db', }},
......
......@@ -8,13 +8,13 @@ setup(
description='A Django module for the University of Cambridge Lookup service',
long_description=open('README.rst').read(),
url='https://git.csx.cam.ac.uk/x/ucs/u/amc203/django-ucamlookup.git',
version='1.7.1',
version='1.8',
license='MIT',
author='Information Systems Group, University Information Services, University of Cambridge',
author_email='information-systems@ucs.cam.ac.uk',
packages=find_packages(),
include_package_data=True,
install_requires=['django>=1.7'],
install_requires=['django>=1.8'],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
......
import json
import sys
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.core.urlresolvers import reverse
......@@ -39,7 +41,7 @@ class UcamLookupTests(TestCase):
self.assertEqual(results[0]['crsid'], "amc203")
self.assertEqual(results[0]['visibleName'], "Dr Abraham Martin Campillo")
results = get_users_from_query("Martin Campillo")
results = get_users_from_query("Abraham Martin Campillo")
self.assertEqual(len(results), 1)
self.assertEqual(results[0]['crsid'], "amc203")
self.assertEqual(results[0]['visibleName'], "Dr Abraham Martin Campillo")
......@@ -95,28 +97,42 @@ class UcamLookupTests(TestCase):
def test_views_without_login(self):
response = self.client.get(reverse('ucamlookup_find_people'), {'query': 'amc203', 'searchId_u': '1'})
self.assertEqual(response.status_code, 302)
self.assertTrue(response.url.startswith('/accounts/login/'))
self.assertIn('/accounts/login/', response.url)
response = self.client.get(reverse('ucamlookup_find_groups'), {'query': 'Information Systems',
'searchId_g': '1'})
self.assertEqual(response.status_code, 302)
self.assertTrue(response.url.startswith('/accounts/login/'))
self.assertIn('/accounts/login/', response.url)
def test_findpeople_view(self):
User.objects.create_user(username="amc203", password="test")
self.assertTrue(self.client.login(username='amc203', password="test"))
response = self.client.get(reverse('ucamlookup_find_people'), {'query': 'amc203', 'searchId_u': '1'})
self.assertEqual(response.content,
'{"persons": [{"visibleName": "Dr Abraham Martin Campillo", "crsid": "amc203"}], '
'"searchId_u": "1"}')
if sys.version_info >= (3,0):
jsonresponse = json.loads(response.content.decode('utf-8'))
else:
jsonresponse = json.loads(response.content)
self.assertIn('persons', jsonresponse)
self.assertIn('searchId_u', jsonresponse)
self.assertEqual(jsonresponse['searchId_u'], "1")
self.assertEqual(len(jsonresponse['persons']), 1)
self.assertEqual(jsonresponse['persons'][0]['visibleName'], "Dr Abraham Martin Campillo")
self.assertEqual(jsonresponse['persons'][0]['crsid'], "amc203")
def test_findgroups_view(self):
User.objects.create_user(username="amc203", password="test")
self.assertTrue(self.client.login(username='amc203', password="test"))
response = self.client.get(reverse('ucamlookup_find_groups'), {'query': 'Information Systems',
'searchId_g': '1'})
self.assertEqual(response.content,
'{"groups": [{"groupid": "101888", "title": "CS Information Systems team"}], '
'"searchId_g": "1"}')
if sys.version_info >= (3,0):
jsonresponse = json.loads(response.content.decode('utf-8'))
else:
jsonresponse = json.loads(response.content)
self.assertIn('groups', jsonresponse)
self.assertIn('searchId_g', jsonresponse)
self.assertEqual(jsonresponse['searchId_g'], "1")
self.assertEqual(len(jsonresponse['groups']), 1)
self.assertEqual(jsonresponse['groups'][0]['groupid'], "101888")
self.assertEqual(jsonresponse['groups'][0]['title'], "CS Information Systems team")
def test_validate_crsids(self):
# users do not exist in the DB
......
import django
from django.conf.urls import patterns, url
from django.conf.urls import url
from ucamlookup.views import find_people, find_groups
if django.VERSION[0] <= 1 and django.VERSION[1] <= 7:
urlpatterns = patterns(
'',
url(r'findPeople$', find_people, name='ucamlookup_find_people'),
url(r'findGroups$', find_groups, name='ucamlookup_find_groups'),
)
else:
urlpatterns = [
url(r'findPeople$', find_people, name='ucamlookup_find_people'),
url(r'findGroups$', find_groups, name='ucamlookup_find_groups'),
]
urlpatterns = [
url(r'findPeople$', find_people, name='ucamlookup_find_people'),
url(r'findGroups$', find_groups, name='ucamlookup_find_groups'),
]
......@@ -14,8 +14,7 @@ def get_users_from_query(search_string):
"""
persons = PersonMethods(conn).search(query=search_string)
return map((lambda person: {'crsid': person.identifier.value, 'visibleName': person.visibleName}),
persons)
return list(map((lambda person: {'crsid': person.identifier.value, 'visibleName': person.visibleName}), persons))
def return_visibleName_by_crsid(crsid):
......@@ -29,8 +28,7 @@ def get_groups_from_query(search_string):
"""
groups = GroupMethods(conn).search(query=search_string)
return map((lambda group: {'groupid': group.groupid, 'title': group.title}),
groups)
return list(map((lambda group: {'groupid': group.groupid, 'title': group.title}), groups))
def return_title_by_groupid(groupid):
......@@ -49,7 +47,7 @@ def get_group_ids_of_a_user_in_lookup(user):
"""
try:
group_list = PersonMethods(conn).getGroups(scheme="crsid", identifier=user.username)
return map(lambda group: group.groupid, group_list)
return list(map(lambda group: group.groupid, group_list))
except IbisException:
return []
......@@ -74,7 +72,7 @@ def get_user_lookupgroups(user):
"""
try:
group_list = PersonMethods(conn).getGroups(scheme="crsid", identifier=user.username)
return map(lambda group: get_or_create_group_by_groupid(group.groupid), group_list)
return list(map(lambda group: get_or_create_group_by_groupid(group.groupid), group_list))
except IbisException:
return []
......@@ -87,7 +85,8 @@ def get_institutions(user=None):
all_institutions = InstitutionMethods(conn).allInsts(includeCancelled=False)
# filter all the institutions that were created for store year students
all_institutions = filter(lambda institution: re.match(r'.*\d{2}$', institution.id) is None, all_institutions)
all_institutions = list(filter(lambda institution: re.match(r'.*\d{2}$', institution.id) is None,
all_institutions))
if user is not None:
try:
......@@ -95,7 +94,7 @@ def get_institutions(user=None):
except IbisException:
pass
return map((lambda institution: (institution.instid, institution.name)), all_institutions)
return list(map((lambda institution: (institution.instid, institution.name)), all_institutions))
def get_institution_name_by_id(institution_id, all_institutions=None):
......@@ -116,7 +115,7 @@ def user_in_groups(user, lookup_groups):
"""
user_group_list = get_group_ids_of_a_user_in_lookup(user)
groups = filter(lambda group: group.lookup_id in user_group_list, lookup_groups)
groups = list(filter(lambda group: group.lookup_id in user_group_list, lookup_groups))
if len(groups) > 0:
return True
else:
......@@ -169,5 +168,5 @@ def get_users_of_a_group(group):
:return: the list of Users
"""
return map(lambda user: get_or_create_user_by_crsid(user.identifier),
GroupMethods(conn).getMembers(groupid=group.groupid))
return list(map(lambda user: get_or_create_user_by_crsid(user.identifier),
GroupMethods(conn).getMembers(groupid=group.groupid)))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment