Commit c1ec0899 authored by e0ne's avatar e0ne Committed by Tim Graham
Browse files

Fixed #12288 -- Validated that app names in INSTALLED_APPS are unique

parent ad6fcdb8
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -109,8 +109,9 @@ class BaseSettings(object):
                "to a tuple, not a string.")
        elif name == "INSTALLED_APPS":
            value = list(value)  # force evaluation of generators on Python 3
            if len(value) != len(set(value)):
                raise ImproperlyConfigured("The INSTALLED_APPS setting must contain unique values.")
            apps = [s.split('.')[-1] for s in value]
            if len(value) != len(set(apps)):
                raise ImproperlyConfigured("The INSTALLED_APPS setting must contain unique app names.")

        object.__setattr__(self, name, value)

+4 −1
Original line number Diff line number Diff line
@@ -241,11 +241,14 @@ class UniqueSettingsTests(TestCase):
    def test_unique(self):
        """
        An ImproperlyConfigured exception is raised if the INSTALLED_APPS contains
        any duplicate strings.
        any duplicate appication names.
        """
        with self.assertRaises(ImproperlyConfigured):
            self.settings_module.INSTALLED_APPS = ("myApp1", "myApp1", "myApp2", "myApp3")

        with self.assertRaises(ImproperlyConfigured):
            self.settings_module.INSTALLED_APPS = ("package1.myApp1", "package2.myApp1")


class TrailingSlashURLTests(TestCase):
    """