Mercurial > public > sg101
view wiki/tests.py @ 816:97f8fab9b1a3
Tweaking the quoting algorithm a bit.
Trying to reduce trailing lines that are just ">".
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 10 Sep 2014 19:21:59 -0500 |
parents | f4c043cf55ac |
children |
line wrap: on
line source
""" Tests for the wiki integration application. """ import hashlib import datetime from django.contrib.auth.models import User from django.test import TestCase from django.test.client import RequestFactory from django.http import HttpResponse from django.conf import settings from core.services import get_redis_connection from wiki.middleware import WikiMiddleware from wiki.constants import SESSION_SET_MEMBER class MiddleWareTestCase(TestCase): def setUp(self): self.factory = RequestFactory() self.user = User.objects.create_user('test_user', 'test@example.com', 'password') self.conn = get_redis_connection() self.mw = WikiMiddleware() def tearDown(self): self.conn.delete(settings.WIKI_REDIS_SET) def create_request(self): request = self.factory.get('/contact/') request.session = {} request.user = self.user return request def test_middleware(self): request = self.create_request() response = HttpResponse() request.wiki_set_cookie = True response = self.mw.process_response(request, response) cookie = response.cookies.get(settings.WIKI_COOKIE_NAME) cookie_val = '' self.assertIsNotNone(cookie) if cookie: self.assertEqual(cookie['domain'], settings.WIKI_COOKIE_DOMAIN) self.assertEqual(cookie['path'], '/') self.assertEqual(cookie['max-age'], settings.WIKI_COOKIE_AGE) cookie_val = cookie.value try: user, email, key = cookie_val.split('#') except ValueError: self.fail('invalid cookie value') else: self.assertEqual(user, self.user.username) self.assertEqual(email, self.user.email) self.assertEqual(len(key), 64) self.assertEqual(self.conn.zcard(settings.WIKI_REDIS_SET), 1) h = hashlib.sha256() h.update(cookie_val) member = h.hexdigest() score = self.conn.zscore(settings.WIKI_REDIS_SET, member) now = datetime.datetime.utcnow() session_start = datetime.datetime.fromtimestamp(score) self.assertLess(now - session_start, datetime.timedelta(seconds=2)) session_member = request.session.get(SESSION_SET_MEMBER) self.assertTrue(session_member and session_member == member) # test the destroy session logic request = self.create_request() request.wiki_delete_cookie = member response = self.mw.process_response(request, response) cookie = response.cookies.get(settings.WIKI_COOKIE_NAME) self.assertIsNotNone(cookie) if cookie: self.assertEqual(cookie.value, '') self.assertEqual(cookie['domain'], settings.WIKI_COOKIE_DOMAIN) self.assertEqual(cookie['path'], '/') self.assertEqual(cookie['max-age'], 0) self.assertEqual(cookie['expires'], 'Thu, 01-Jan-1970 00:00:00 GMT') self.assertEqual(self.conn.zcard(settings.WIKI_REDIS_SET), 0)