87 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# -*- 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 .base import BaseTest
 | 
						|
 | 
						|
try:
 | 
						|
    from django.test import override_settings
 | 
						|
except ImportError:
 | 
						|
    from django.test.utils import override_settings
 | 
						|
 | 
						|
 | 
						|
@override_settings(BLOG_AUTO_SETUP=True)
 | 
						|
class SetupTest(BaseTest):
 | 
						|
 | 
						|
    @classmethod
 | 
						|
    def setUpClass(cls):
 | 
						|
        # Skipping initialization to start with clean database
 | 
						|
        super(BaseTest, cls).setUpClass()
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        super(SetupTest, self).setUp()
 | 
						|
        from cms.apphook_pool import apphook_pool
 | 
						|
 | 
						|
        delete = [
 | 
						|
            'djangocms_blog',
 | 
						|
            'djangocms_blog.cms_app',
 | 
						|
            'djangocms_blog.cms_apps',
 | 
						|
        ]
 | 
						|
        for module in delete:
 | 
						|
            if module in sys.modules:
 | 
						|
                del sys.modules[module]
 | 
						|
        BlogConfig.cmsapp = None
 | 
						|
        apphook_pool.clear()
 | 
						|
 | 
						|
    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 cms_app triggers the auto setup
 | 
						|
        from djangocms_blog import cms_apps  # NOQA
 | 
						|
 | 
						|
        # Home and blog, published and draft
 | 
						|
        self.assertEqual(Page.objects.count(), 4)
 | 
						|
        self.assertEqual(BlogConfig.objects.count(), 1)
 | 
						|
 | 
						|
    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='blog.html', in_navigation=True, published=True
 | 
						|
                    )
 | 
						|
                else:
 | 
						|
                    create_title(
 | 
						|
                        language=lang, title='a new home', page=home
 | 
						|
                    )
 | 
						|
                    home.publish(lang)
 | 
						|
 | 
						|
        # importing cms_app triggers the auto setup
 | 
						|
        from djangocms_blog import cms_apps  # 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')
 |