django-analytical/analytical/tests/services/test_base.py
Joost Cassee 39c205f546 Updated analytical
* Added Chartbeat.
* Added settings context processor.
* Added identification.
* Prepared events.
* Updated tests.
2011-01-25 00:13:44 +01:00

74 lines
2.3 KiB
Python

"""
Tests for the base service.
"""
import re
from django.contrib.auth.models import User, AnonymousUser
from django.core.exceptions import ImproperlyConfigured
from django.http import HttpRequest
from django.test import TestCase
from analytical.services.base import AnalyticalService
from analytical.tests.utils import TestSettingsManager
class DummyService(AnalyticalService):
def render_test(self, context):
return context
class BaseServiceTestCase(TestCase):
"""
Tests for the base service.
"""
def setUp(self):
self.settings_manager = TestSettingsManager()
self.service = DummyService()
def tearDown(self):
self.settings_manager.revert()
def test_render(self):
r = self.service.render('test', 'foo')
self.assertEqual('foo', r)
def test_get_required_setting(self):
self.settings_manager.set(TEST='test')
r = self.service.get_required_setting('TEST', re.compile('es'), 'fail')
self.assertEqual('test', r)
def test_get_required_setting_missing(self):
self.settings_manager.delete('TEST')
self.assertRaises(ImproperlyConfigured,
self.service.get_required_setting, 'TEST', re.compile('es'),
'fail')
def test_get_required_setting_wrong(self):
self.settings_manager.set(TEST='test')
self.assertRaises(ImproperlyConfigured,
self.service.get_required_setting, 'TEST', re.compile('foo'),
'fail')
def test_get_identity_none(self):
context = {}
self.assertEqual(None, self.service.get_identity(context))
def test_get_identity_authenticated(self):
context = {'user': User(username='test')}
self.assertEqual('test', self.service.get_identity(context))
def test_get_identity_authenticated_request(self):
req = HttpRequest()
req.user = User(username='test')
context = {'request': req}
self.assertEqual('test', self.service.get_identity(context))
def test_get_identity_anonymous(self):
context = {'user': AnonymousUser()}
self.assertEqual(None, self.service.get_identity(context))
def test_get_identity_non_user(self):
context = {'user': object()}
self.assertEqual(None, self.service.get_identity(context))