Add pytest-warning to tests and correct some warnings, complete coverage (essentially branch)
This commit is contained in:
@ -51,6 +51,22 @@ MIDDLEWARE_CLASSES = [
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
]
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
'APP_DIRS': True,
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [],
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
'django.template.context_processors.debug',
|
||||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages'
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
ROOT_URLCONF = 'cas_server.tests.urls'
|
||||
|
||||
# Database
|
||||
|
@ -60,6 +60,24 @@ class FederatedUserTestCase(TestCase, UserModels, FederatedIendityProviderModel)
|
||||
with self.assertRaises(models.FederatedUser.DoesNotExist):
|
||||
models.FederatedUser.objects.get(username="test2")
|
||||
|
||||
def test_json_attributes(self):
|
||||
"""test the json storage of ``atrributs`` in ``_attributs``"""
|
||||
provider = models.FederatedIendityProvider.objects.get(suffix="example.com")
|
||||
user = models.FederatedUser.objects.create(
|
||||
username=settings.CAS_TEST_USER,
|
||||
provider=provider,
|
||||
attributs=settings.CAS_TEST_ATTRIBUTES,
|
||||
ticket=""
|
||||
)
|
||||
self.assertEqual(utils.json_encode(settings.CAS_TEST_ATTRIBUTES), user._attributs)
|
||||
user.delete()
|
||||
user = models.FederatedUser.objects.create(
|
||||
username=settings.CAS_TEST_USER,
|
||||
provider=provider,
|
||||
ticket=""
|
||||
)
|
||||
self.assertIsNone(user._attributs)
|
||||
self.assertIsNone(user.attributs)
|
||||
|
||||
class FederateSLOTestCase(TestCase, UserModels):
|
||||
"""test for the federated SLO model"""
|
||||
@ -231,3 +249,25 @@ class TicketTestCase(TestCase, UserModels, BaseServicePattern):
|
||||
self.assertTrue(b'logoutRequest' in params and params[b'logoutRequest'])
|
||||
# only 1 ticket remain in the db
|
||||
self.assertEqual(len(models.ServiceTicket.objects.all()), 1)
|
||||
|
||||
def test_json_attributes(self):
|
||||
"""test the json storage of ``atrributs`` in ``_attributs``"""
|
||||
# ge an authenticated client
|
||||
client = get_auth_client()
|
||||
# get the user associated to the client
|
||||
user = self.get_user(client)
|
||||
ticket = models.ServiceTicket.objects.create(
|
||||
user=user,
|
||||
service=self.service,
|
||||
attributs=settings.CAS_TEST_ATTRIBUTES,
|
||||
service_pattern=self.service_pattern
|
||||
)
|
||||
self.assertEqual(utils.json_encode(settings.CAS_TEST_ATTRIBUTES), ticket._attributs)
|
||||
ticket.delete()
|
||||
ticket = models.ServiceTicket.objects.create(
|
||||
user=user,
|
||||
service=self.service,
|
||||
service_pattern=self.service_pattern
|
||||
)
|
||||
self.assertIsNone(ticket._attributs)
|
||||
self.assertIsNone(ticket.attributs)
|
||||
|
@ -12,16 +12,21 @@
|
||||
"""Some utils functions for tests"""
|
||||
from cas_server.default_settings import settings
|
||||
|
||||
import django
|
||||
from django.test import Client
|
||||
from django.template import loader, Context
|
||||
from django.template import loader
|
||||
from django.utils import timezone
|
||||
if django.VERSION < (1, 8):
|
||||
from django.template import Context
|
||||
else:
|
||||
Context = lambda x:x
|
||||
|
||||
import cgi
|
||||
import six
|
||||
from threading import Thread
|
||||
from lxml import etree
|
||||
from six.moves import BaseHTTPServer
|
||||
from six.moves.urllib.parse import urlparse, parse_qsl
|
||||
from six.moves.urllib.parse import urlparse, parse_qsl, parse_qs
|
||||
from datetime import timedelta
|
||||
|
||||
from cas_server import models
|
||||
@ -166,7 +171,7 @@ class HttpParamsHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
postvars = cgi.parse_multipart(self.rfile, pdict)
|
||||
elif ctype == 'application/x-www-form-urlencoded':
|
||||
length = int(self.headers.get('content-length'))
|
||||
postvars = cgi.parse_qs(self.rfile.read(length), keep_blank_values=1)
|
||||
postvars = parse_qs(self.rfile.read(length), keep_blank_values=1)
|
||||
else:
|
||||
postvars = {}
|
||||
self.server.PARAMS = postvars
|
||||
|
Reference in New Issue
Block a user