from unittest import TestCase

from django.contrib import admin


class Bug8245Test(TestCase):
    """
    Test for bug #8245 - don't raise an AlreadyRegistered exception when using
    autodiscover() and an admin.py module contains an error.
    """
    def test_bug_8245(self):
        # The first time autodiscover is called, we should get our real error.
        try:
            admin.autodiscover()
        except Exception, e:
            self.assertEqual(str(e), "Bad admin module")
        else:
            self.fail(
                'autodiscover should have raised a "Bad admin module" error.')

        # Calling autodiscover again should raise the very same error it did
        # the first time, not an AlreadyRegistered error.
        try:
            admin.autodiscover()
        except Exception, e:
            self.assertEqual(str(e), "Bad admin module")
        else:
            self.fail(
                'autodiscover should have raised a "Bad admin module" error.')
