Checked unicity of app config names when populating the app registry.

This check will miss duplicates until the check for duplicate labels is
added.

Refs #21679.
This commit is contained in:
Aymeric Augustin 2013-12-31 16:22:42 +01:00
parent 553500133c
commit 5dfec4e23b
1 changed files with 12 additions and 1 deletions

View File

@ -1,4 +1,4 @@
from collections import defaultdict, OrderedDict from collections import Counter, defaultdict, OrderedDict
import os import os
import sys import sys
import warnings import warnings
@ -79,8 +79,19 @@ class Apps(object):
app_config = entry app_config = entry
else: else:
app_config = AppConfig.create(entry) app_config = AppConfig.create(entry)
# TODO: check for duplicate app labels here (#21679).
self.app_configs[app_config.label] = app_config self.app_configs[app_config.label] = app_config
# Check for duplicate app names.
counts = Counter(
app_config.name for app_config in self.app_configs.values())
duplicates = [
name for name, count in counts.most_common() if count > 1]
if duplicates:
raise ImproperlyConfigured(
"Application names aren't unique, "
"duplicates: %s" % ", ".join(duplicates))
# Load models. # Load models.
for app_config in self.app_configs.values(): for app_config in self.app_configs.values():
all_models = self.all_models[app_config.label] all_models = self.all_models[app_config.label]