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