/tests/regressiontests/admin_registration/tests.py

https://code.google.com/p/mango-py/ · Python · 61 lines · 47 code · 10 blank · 4 comment · 0 complexity · 6863daa3f26e403ad3d75c4edeee22ae MD5 · raw file

  1. from django.test import TestCase
  2. from django.core.exceptions import ImproperlyConfigured
  3. from django.contrib import admin
  4. from models import Person, Place, Location
  5. class NameAdmin(admin.ModelAdmin):
  6. list_display = ['name']
  7. save_on_top = True
  8. class TestRegistration(TestCase):
  9. def setUp(self):
  10. self.site = admin.AdminSite()
  11. def test_bare_registration(self):
  12. self.site.register(Person)
  13. self.assertTrue(
  14. isinstance(self.site._registry[Person], admin.options.ModelAdmin)
  15. )
  16. def test_registration_with_model_admin(self):
  17. self.site.register(Person, NameAdmin)
  18. self.assertTrue(
  19. isinstance(self.site._registry[Person], NameAdmin)
  20. )
  21. def test_prevent_double_registration(self):
  22. self.site.register(Person)
  23. self.assertRaises(admin.sites.AlreadyRegistered,
  24. self.site.register,
  25. Person)
  26. def test_registration_with_star_star_options(self):
  27. self.site.register(Person, search_fields=['name'])
  28. self.assertEqual(self.site._registry[Person].search_fields, ['name'])
  29. def test_star_star_overrides(self):
  30. self.site.register(Person, NameAdmin,
  31. search_fields=["name"], list_display=['__str__'])
  32. self.assertEqual(self.site._registry[Person].search_fields, ['name'])
  33. self.assertEqual(self.site._registry[Person].list_display,
  34. ['action_checkbox', '__str__'])
  35. self.assertTrue(self.site._registry[Person].save_on_top)
  36. def test_iterable_registration(self):
  37. self.site.register([Person, Place], search_fields=['name'])
  38. self.assertTrue(
  39. isinstance(self.site._registry[Person], admin.options.ModelAdmin)
  40. )
  41. self.assertEqual(self.site._registry[Person].search_fields, ['name'])
  42. self.assertTrue(
  43. isinstance(self.site._registry[Place], admin.options.ModelAdmin)
  44. )
  45. self.assertEqual(self.site._registry[Place].search_fields, ['name'])
  46. def test_abstract_model(self):
  47. """
  48. Exception is raised when trying to register an abstract model.
  49. Refs #12004.
  50. """
  51. self.assertRaises(ImproperlyConfigured, self.site.register, Location)