add some tests

This commit is contained in:
Valentin Samir
2015-06-21 18:56:16 +02:00
parent c0d8550120
commit 50781dba18
13 changed files with 195 additions and 78 deletions

View File

@ -14,8 +14,8 @@ from .default_settings import settings
from django import forms
from django.utils.translation import ugettext_lazy as _
import utils
import models
import cas_server.utils as utils
import cas_server.models as models
class UserCredential(forms.Form):

View File

@ -27,7 +27,7 @@ from datetime import timedelta
from concurrent.futures import ThreadPoolExecutor
from requests_futures.sessions import FuturesSession
import utils
import cas_server.utils as utils
SessionStore = import_module(settings.SESSION_ENGINE).SessionStore

View File

@ -16,12 +16,17 @@ from django.utils.importlib import import_module
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
import urlparse
import urllib
import random
import string
try:
from urlparse import urlparse, urlunparse, parse_qsl
from urllib import urlencode
except ImportError:
from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode
def import_attr(path):
"""transform a python module.attr path to the attr"""
if not isinstance(path, str):
@ -33,26 +38,29 @@ def import_attr(path):
def redirect_params(url_name, params=None):
"""Redirect to `url_name` with `params` as querystring"""
url = reverse(url_name)
params = urllib.urlencode(params if params else {})
params = urlencode(params if params else {})
return HttpResponseRedirect(url + "?%s" % params)
def update_url(url, params):
"""update params in the `url` query string"""
if isinstance(url, unicode):
if not isinstance(url, bytes):
url = url.encode('utf-8')
for key, value in params.items():
if isinstance(key, unicode):
for key, value in list(params.items()):
if not isinstance(key, bytes):
del params[key]
key = key.encode('utf-8')
if isinstance(value, unicode):
if not isinstance(value, bytes):
value = value.encode('utf-8')
params[key] = value
url_parts = list(urlparse.urlparse(url))
query = dict(urlparse.parse_qsl(url_parts[4]))
url_parts = list(urlparse(url))
query = dict(parse_qsl(url_parts[4]))
query.update(params)
url_parts[4] = urllib.urlencode(query)
return urlparse.urlunparse(url_parts).decode('utf-8')
url_parts[4] = urlencode(query)
for i in range(len(url_parts)):
if not isinstance(url_parts[i], bytes):
url_parts[i] = url_parts[i].encode('utf-8')
return urlunparse(url_parts).decode('utf-8')
def unpack_nested_exception(error):

View File

@ -26,9 +26,9 @@ import requests
from lxml import etree
from datetime import timedelta
import utils
import forms
import models
import cas_server.utils as utils
import cas_server.forms as forms
import cas_server.models as models
from .models import ServiceTicket, ProxyTicket, ProxyGrantingTicket
from .models import ServicePattern
@ -633,7 +633,7 @@ class Proxy(View):
self.target_service,
pattern,
renew=False)
pticket.proxies.create(url=ticket.service)
models.Proxy.objects.create(proxy_ticket=pticket, url=ticket.service)
return render(
self.request,
"cas_server/proxy.xml",