From 5223c188c3535ca97859036a87139291139d5516 Mon Sep 17 00:00:00 2001 From: Peter Inglesby Date: Sat, 18 May 2013 18:28:31 +0200 Subject: [PATCH] Add tests to core --- djadmin2/core.py | 8 +++++++- djadmin2/tests/__init__.py | 1 + djadmin2/tests/test_core.py | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 djadmin2/tests/test_core.py diff --git a/djadmin2/core.py b/djadmin2/core.py index f4e2ae8..58e2050 100644 --- a/djadmin2/core.py +++ b/djadmin2/core.py @@ -1,5 +1,6 @@ from django.conf.urls import patterns, include, url from django.conf import settings +from django.core.exceptions import ImproperlyConfigured from django.utils.importlib import import_module @@ -16,12 +17,17 @@ class Admin2(object): self.app_name = app_name def register(self, model, modeladmin=None, **kwargs): + if model in self.registry: + raise ImproperlyConfigured if not modeladmin: modeladmin = models.ModelAdmin2 self.registry[model] = modeladmin(model, **kwargs) def deregister(self, model): - del self.registry[model] + try: + del self.registry[model] + except KeyError: + raise ImproperlyConfigured def autodiscover(self): apps = [] diff --git a/djadmin2/tests/__init__.py b/djadmin2/tests/__init__.py index 308d28a..d8ab18f 100644 --- a/djadmin2/tests/__init__.py +++ b/djadmin2/tests/__init__.py @@ -1,3 +1,4 @@ from test_models import * from test_utils import * from test_views import * +from test_core import * diff --git a/djadmin2/tests/test_core.py b/djadmin2/tests/test_core.py new file mode 100644 index 0000000..be17459 --- /dev/null +++ b/djadmin2/tests/test_core.py @@ -0,0 +1,34 @@ +import unittest + +from django.db import models +from django.core.exceptions import ImproperlyConfigured + +from ..models import ModelAdmin2 +from ..core import Admin2 + +class Thing(models.Model): + pass + +class Admin2Test(unittest.TestCase): + def setUp(self): + self.admin2 = Admin2() + + def test_register(self): + self.admin2.register(Thing) + self.assertTrue(isinstance(self.admin2.registry[Thing], ModelAdmin2)) + + def test_register_error(self): + self.admin2.register(Thing) + self.assertRaises(ImproperlyConfigured, self.admin2.register, Thing) + + def test_deregister(self): + self.admin2.register(Thing) + self.admin2.deregister(Thing) + self.assertTrue(Thing not in self.admin2.registry) + + def test_deregister_error(self): + self.assertRaises(ImproperlyConfigured, self.admin2.deregister, Thing) + + def test_get_urls(self): + self.admin2.register(Thing) + self.assertEquals(2, len(self.admin2.get_urls()))