django-watson/src/watson/tests.py

66 lines
1.7 KiB
Python
Raw Normal View History

"""Tests for django-watson."""
2011-08-21 14:15:15 +00:00
from django.db import models
from django.test import TestCase
from watson.registration import register, unregister, is_registered, get_registered_models, get_adaptor, RegistrationError, SearchAdaptor
class TestModelBase(models.Model):
title = models.CharField(
max_length = 200,
)
content = models.TextField(
blank = True,
)
description = models.TextField(
blank = True,
)
def __unicode__(self):
return self.title
2011-08-21 14:15:15 +00:00
class Meta:
abstract = True
2011-08-21 14:15:15 +00:00
app_label = "auth" # Hack: Cannot use an app_label that is under South control, due to http://south.aeracode.org/ticket/520
class TestModel1(TestModelBase):
pass
class TestModel2(TestModelBase):
pass
2011-08-21 14:15:15 +00:00
class RegistrationText(TestCase):
def testRegistration(self):
# Register the model and test.
register(TestModel1)
self.assertTrue(is_registered(TestModel1))
self.assertRaises(RegistrationError, lambda: register(TestModel1))
self.assertEqual(get_registered_models(), [TestModel1])
self.assertTrue(isinstance(get_adaptor(TestModel1), SearchAdaptor))
2011-08-21 14:15:15 +00:00
# Unregister the model and text.
unregister(TestModel1)
self.assertFalse(is_registered(TestModel1))
self.assertRaises(RegistrationError, lambda: unregister(TestModel1))
2011-08-21 14:15:15 +00:00
self.assertEqual(get_registered_models(), [])
self.assertRaises(RegistrationError, lambda: isinstance(get_adaptor(TestModel1)))
class SearchTest(TestCase):
def setUp(self):
register(TestModel1)
register(TestModel2)
def tearDown(self):
unregister(TestModel1)
unregister(TestModel2)