diff --git a/djangocms_blog/__init__.py b/djangocms_blog/__init__.py index e34aa06..74b54bb 100644 --- a/djangocms_blog/__init__.py +++ b/djangocms_blog/__init__.py @@ -4,4 +4,3 @@ __email__ = 'i.spalletti@nephila.it' __version__ = '0.6.0.dev1' default_app_config = 'djangocms_blog.apps.BlogAppConfig' - diff --git a/djangocms_blog/apps.py b/djangocms_blog/apps.py index d232d49..3da17b3 100644 --- a/djangocms_blog/apps.py +++ b/djangocms_blog/apps.py @@ -2,6 +2,7 @@ from __future__ import absolute_import, print_function, unicode_literals from django.utils.translation import ugettext_lazy as _ + try: from django.apps import AppConfig except ImportError: @@ -46,7 +47,7 @@ class BlogAppConfig(AppConfig): get_setting('AUTO_HOME_TITLE'), language=lang, template=default_template, in_navigation=True, published=True ) - else: + elif lang not in home.get_languages(): create_title( language=lang, title=get_setting('AUTO_HOME_TITLE'), page=home ) diff --git a/djangocms_blog/urls.py b/djangocms_blog/urls.py index 2a5e0b7..0a76e27 100644 --- a/djangocms_blog/urls.py +++ b/djangocms_blog/urls.py @@ -2,6 +2,7 @@ from __future__ import absolute_import, print_function, unicode_literals from django.conf.urls import patterns, url + from .apps import BlogAppConfig from .feeds import LatestEntriesFeed, TagFeed from .settings import get_setting diff --git a/tests/test_setup.py b/tests/test_setup.py new file mode 100644 index 0000000..fa8f1e7 --- /dev/null +++ b/tests/test_setup.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +from __future__ import absolute_import, print_function, unicode_literals + +import sys + +from cms.api import create_page, create_title +from cms.models import Page +from cms.utils import get_language_list +from django.utils.translation import override + +from djangocms_blog.cms_appconfig import BlogConfig + +from . import BaseTest + + +class SetupTest(BaseTest): + + @classmethod + def setUpClass(cls): + super(BaseTest, cls).setUpClass() + + def test_setup_from_url(self): + + # Tests starts with no page and no config + self.assertFalse(Page.objects.exists()) + self.assertFalse(BlogConfig.objects.exists()) + + # importing urls triggers the auto setup + from djangocms_blog import urls # NOQA + + # Home and blog, published and draft + self.assertEqual(Page.objects.count(), 4) + self.assertEqual(BlogConfig.objects.count(), 1) + + def setUp(self): + self.reload_urlconf() + delete = [ + 'djangocms_blog', + 'djangocms_blog.urls', + ] + for module in delete: + del sys.modules[module] + + def test_setup_filled(self): + + # Tests starts with no page and no config + self.assertFalse(Page.objects.exists()) + self.assertFalse(BlogConfig.objects.exists()) + + langs = get_language_list() + home = None + for lang in langs: + with override(lang): + if not home: + home = create_page( + 'a new home', language=lang, + template='page.html', in_navigation=True, published=True + ) + else: + create_title( + language=lang, title='a new home', page=home + ) + home.publish(lang) + + # importing urls triggers the auto setup + from djangocms_blog import urls # NOQA + + # Home and blog, published and draft + self.assertEqual(Page.objects.count(), 4) + self.assertEqual(BlogConfig.objects.count(), 1) + + home = Page.objects.get_home() + for lang in langs: + self.assertEqual(home.get_title(lang), 'a new home')