Rebase BaseTest class on djangocms-helper
This commit is contained in:
		
					parent
					
						
							
								28ea7a3d11
							
						
					
				
			
			
				commit
				
					
						e341948bdc
					
				
			
		
					 5 changed files with 87 additions and 206 deletions
				
			
		| 
						 | 
					@ -6,9 +6,6 @@ from tempfile import mkdtemp
 | 
				
			||||||
gettext = lambda s: s
 | 
					gettext = lambda s: s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HELPER_SETTINGS = dict(
 | 
					HELPER_SETTINGS = dict(
 | 
				
			||||||
    NOSE_ARGS=[
 | 
					 | 
				
			||||||
        '-s',
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    ROOT_URLCONF='tests.test_utils.urls',
 | 
					    ROOT_URLCONF='tests.test_utils.urls',
 | 
				
			||||||
    INSTALLED_APPS=[
 | 
					    INSTALLED_APPS=[
 | 
				
			||||||
        'filer',
 | 
					        'filer',
 | 
				
			||||||
| 
						 | 
					@ -87,8 +84,6 @@ HELPER_SETTINGS = dict(
 | 
				
			||||||
    FILE_UPLOAD_TEMP_DIR=mkdtemp(),
 | 
					    FILE_UPLOAD_TEMP_DIR=mkdtemp(),
 | 
				
			||||||
    SITE_ID=1
 | 
					    SITE_ID=1
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
if 'test' in sys.argv or len(sys.argv) == 1:
 | 
					 | 
				
			||||||
    HELPER_SETTINGS['INSTALLED_APPS'].append('django_nose')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
try:
 | 
					try:
 | 
				
			||||||
    import admin_enhancer  # pragma: no cover # NOQA
 | 
					    import admin_enhancer  # pragma: no cover # NOQA
 | 
				
			||||||
| 
						 | 
					@ -99,8 +94,6 @@ except ImportError:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def run():
 | 
					def run():
 | 
				
			||||||
    from djangocms_helper import runner
 | 
					    from djangocms_helper import runner
 | 
				
			||||||
    if 'test' in sys.argv or len(sys.argv) == 1:
 | 
					 | 
				
			||||||
        sys.argv.append('--nose-runner')
 | 
					 | 
				
			||||||
    runner.cms('djangocms_blog')
 | 
					    runner.cms('djangocms_blog')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == "__main__":
 | 
					if __name__ == "__main__":
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,22 +2,13 @@
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
Tests for `djangocms_blog` module.
 | 
					Tests for `djangocms_blog` module.
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
from cms.utils.i18n import get_language_list
 | 
					 | 
				
			||||||
from cmsplugin_filer_image.models import ThumbnailOption
 | 
					from cmsplugin_filer_image.models import ThumbnailOption
 | 
				
			||||||
from django.conf import settings
 | 
					 | 
				
			||||||
from django.contrib.auth import get_user_model
 | 
					from django.contrib.auth import get_user_model
 | 
				
			||||||
from django.contrib.sites.models import Site
 | 
					from django.contrib.sites.models import Site
 | 
				
			||||||
from django.core.files import File as DjangoFile
 | 
					 | 
				
			||||||
from django.http import SimpleCookie
 | 
					 | 
				
			||||||
from django.test import TestCase, RequestFactory
 | 
					 | 
				
			||||||
from django.utils.translation import activate
 | 
					from django.utils.translation import activate
 | 
				
			||||||
from filer.models import File, Image
 | 
					from djangocms_helper.base_test import BaseTestCase
 | 
				
			||||||
from PIL import Image as PilImage, ImageDraw
 | 
					 | 
				
			||||||
from six import StringIO
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
from djangocms_helper.utils import create_user
 | 
					 | 
				
			||||||
from djangocms_blog.models import BlogCategory, Post
 | 
					from djangocms_blog.models import BlogCategory, Post
 | 
				
			||||||
 | 
					
 | 
				
			||||||
User = get_user_model()
 | 
					User = get_user_model()
 | 
				
			||||||
| 
						 | 
					@ -27,17 +18,23 @@ def _get_cat_pk(lang, name):
 | 
				
			||||||
    return lambda: BlogCategory.objects.translated(lang, name=name).get().pk
 | 
					    return lambda: BlogCategory.objects.translated(lang, name=name).get().pk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BaseTest(TestCase):
 | 
					class BaseTest(BaseTestCase):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Base class with utility function
 | 
					    Base class with utility function
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    request_factory = None
 | 
					 | 
				
			||||||
    user = None
 | 
					 | 
				
			||||||
    languages = get_language_list()
 | 
					 | 
				
			||||||
    category_1 = None
 | 
					    category_1 = None
 | 
				
			||||||
    thumb_1 = None
 | 
					    thumb_1 = None
 | 
				
			||||||
    thumb_2 = None
 | 
					    thumb_2 = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _pages_data = (
 | 
				
			||||||
 | 
					        {'en': {'title': 'page one', 'template': 'page.html', 'publish': True},
 | 
				
			||||||
 | 
					         'fr': {'title': 'page un', 'publish': True},
 | 
				
			||||||
 | 
					         'it': {'title': 'pagina uno', 'publish': True}},
 | 
				
			||||||
 | 
					        {'en': {'title': 'page two', 'template': 'page.html', 'publish': True},
 | 
				
			||||||
 | 
					         'fr': {'title': 'page deux', 'publish': True},
 | 
				
			||||||
 | 
					         'it': {'title': 'pagina due', 'publish': True}},
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    data = {
 | 
					    data = {
 | 
				
			||||||
        'it': [
 | 
					        'it': [
 | 
				
			||||||
            {'title': u'Primo post', 'abstract': u'<p>prima riga</p>',
 | 
					            {'title': u'Primo post', 'abstract': u'<p>prima riga</p>',
 | 
				
			||||||
| 
						 | 
					@ -81,11 +78,7 @@ class BaseTest(TestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def setUpClass(cls):
 | 
					    def setUpClass(cls):
 | 
				
			||||||
        cls.request_factory = RequestFactory()
 | 
					        super(BaseTest, cls).setUpClass()
 | 
				
			||||||
        cls.user = create_user('admin', 'admin@admin.com', 'admin', is_staff=True, is_superuser=True)
 | 
					 | 
				
			||||||
        cls.user_staff = create_user('staff', 'staff@admin.com', 'staff', is_staff=True)
 | 
					 | 
				
			||||||
        cls.user_normal = create_user('normal', 'normal@admin.com', 'normal')
 | 
					 | 
				
			||||||
        cls.site_1 = Site.objects.get(pk=1)
 | 
					 | 
				
			||||||
        cls.site_2 = Site.objects.create(domain='http://example2.com', name='example 2')
 | 
					        cls.site_2 = Site.objects.create(domain='http://example2.com', name='example 2')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setUp(self):
 | 
					    def setUp(self):
 | 
				
			||||||
| 
						 | 
					@ -101,15 +94,7 @@ class BaseTest(TestCase):
 | 
				
			||||||
        self.thumb_2 = ThumbnailOption.objects.create(
 | 
					        self.thumb_2 = ThumbnailOption.objects.create(
 | 
				
			||||||
            name='main', width=200, height=200, crop=False, upscale=False
 | 
					            name='main', width=200, height=200, crop=False, upscale=False
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        img = create_image()
 | 
					        self.img = self.create_filer_image_object()
 | 
				
			||||||
        self.image_name = 'test_file.jpg'
 | 
					 | 
				
			||||||
        self.filename = os.path.join(settings.FILE_UPLOAD_TEMP_DIR,
 | 
					 | 
				
			||||||
                                     self.image_name)
 | 
					 | 
				
			||||||
        img.save(self.filename, 'JPEG')
 | 
					 | 
				
			||||||
        file_obj = DjangoFile(open(self.filename, 'rb'), name=self.image_name)
 | 
					 | 
				
			||||||
        self.img = Image.objects.create(owner=self.user,
 | 
					 | 
				
			||||||
                                        original_filename=self.image_name,
 | 
					 | 
				
			||||||
                                        file=file_obj)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get_category(self, data, category=None, lang='en'):
 | 
					    def _get_category(self, data, category=None, lang='en'):
 | 
				
			||||||
        for k, v in data.items():
 | 
					        for k, v in data.items():
 | 
				
			||||||
| 
						 | 
					@ -147,67 +132,6 @@ class BaseTest(TestCase):
 | 
				
			||||||
                post.sites.add(site)
 | 
					                post.sites.add(site)
 | 
				
			||||||
        return post
 | 
					        return post
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					 | 
				
			||||||
    def tearDownClass(cls):
 | 
					 | 
				
			||||||
        User.objects.all().delete()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def tearDown(self):
 | 
					 | 
				
			||||||
        for post in Post.objects.all():
 | 
					 | 
				
			||||||
            post.delete()
 | 
					 | 
				
			||||||
        os.remove(self.filename)
 | 
					 | 
				
			||||||
        for f in File.objects.all():
 | 
					 | 
				
			||||||
            f.delete()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def get_pages(self):
 | 
					 | 
				
			||||||
        from cms.api import create_page, create_title
 | 
					 | 
				
			||||||
        page = create_page(u'page one', 'fullwidth.html', language='en')
 | 
					 | 
				
			||||||
        page_2 = create_page(u'page two', 'fullwidth.html', language='en')
 | 
					 | 
				
			||||||
        create_title(language='fr', title=u'page un', page=page)
 | 
					 | 
				
			||||||
        create_title(language='it', title=u'pagina uno', page=page)
 | 
					 | 
				
			||||||
        for lang in self.languages:
 | 
					 | 
				
			||||||
            page.publish(lang)
 | 
					 | 
				
			||||||
        page_2.publish('en')
 | 
					 | 
				
			||||||
        return page.get_draft_object(), page_2.get_draft_object()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def get_request(self, page, lang):
 | 
					 | 
				
			||||||
        request = self.request_factory.get(page.get_path(lang))
 | 
					 | 
				
			||||||
        request.current_page = page
 | 
					 | 
				
			||||||
        request.user = self.user
 | 
					 | 
				
			||||||
        request.session = {}
 | 
					 | 
				
			||||||
        request.cookies = SimpleCookie()
 | 
					 | 
				
			||||||
        request.errors = StringIO()
 | 
					 | 
				
			||||||
        return request
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def post_request(self, page, lang, data, path=None):
 | 
					 | 
				
			||||||
        if not path:
 | 
					 | 
				
			||||||
            path = page.get_path(lang)
 | 
					 | 
				
			||||||
        request = self.request_factory.post(path, data)
 | 
					 | 
				
			||||||
        request.current_page = page
 | 
					 | 
				
			||||||
        request.user = self.user
 | 
					 | 
				
			||||||
        request.session = {}
 | 
					 | 
				
			||||||
        request.cookies = SimpleCookie()
 | 
					 | 
				
			||||||
        request.errors = StringIO()
 | 
					 | 
				
			||||||
        request._dont_enforce_csrf_checks = True
 | 
					 | 
				
			||||||
        return request
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def get_page_request(self, page, user, path=None, edit=False, lang_code='en'):
 | 
					 | 
				
			||||||
        from cms.middleware.toolbar import ToolbarMiddleware
 | 
					 | 
				
			||||||
        path = path or page and page.get_absolute_url()
 | 
					 | 
				
			||||||
        if edit:
 | 
					 | 
				
			||||||
            path += '?edit'
 | 
					 | 
				
			||||||
        request = RequestFactory().get(path)
 | 
					 | 
				
			||||||
        request.session = {}
 | 
					 | 
				
			||||||
        request.user = user
 | 
					 | 
				
			||||||
        request.LANGUAGE_CODE = lang_code
 | 
					 | 
				
			||||||
        if edit:
 | 
					 | 
				
			||||||
            request.GET = {'edit': None}
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            request.GET = {'edit_off': None}
 | 
					 | 
				
			||||||
        request.current_page = page
 | 
					 | 
				
			||||||
        mid = ToolbarMiddleware()
 | 
					 | 
				
			||||||
        mid.process_request(request)
 | 
					 | 
				
			||||||
        return request
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def get_posts(self, sites=None):
 | 
					    def get_posts(self, sites=None):
 | 
				
			||||||
        post1 = self._get_post(self.data['en'][0], sites=sites)
 | 
					        post1 = self._get_post(self.data['en'][0], sites=sites)
 | 
				
			||||||
        post1 = self._get_post(self.data['it'][0], post1, 'it')
 | 
					        post1 = self._get_post(self.data['it'][0], post1, 'it')
 | 
				
			||||||
| 
						 | 
					@ -219,12 +143,3 @@ class BaseTest(TestCase):
 | 
				
			||||||
        post2.main_image = self.img
 | 
					        post2.main_image = self.img
 | 
				
			||||||
        post2.save()
 | 
					        post2.save()
 | 
				
			||||||
        return post1, post2
 | 
					        return post1, post2
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def create_image(mode='RGB', size=(800, 600)):
 | 
					 | 
				
			||||||
    image = PilImage.new(mode, size)
 | 
					 | 
				
			||||||
    draw = ImageDraw.Draw(image)
 | 
					 | 
				
			||||||
    x_bit, y_bit = size[0] // 10, size[1] // 10
 | 
					 | 
				
			||||||
    draw.rectangle((x_bit, y_bit * 2, x_bit * 7, y_bit * 3), 'red')
 | 
					 | 
				
			||||||
    draw.rectangle((x_bit * 2, y_bit, x_bit * 3, y_bit * 8), 'red')
 | 
					 | 
				
			||||||
    return image
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,61 +54,66 @@ class AdminTest(BaseTest):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_admin_auto_author(self):
 | 
					    def test_admin_auto_author(self):
 | 
				
			||||||
        page1, page2 = self.get_pages()
 | 
					        page1, page2 = self.get_pages()
 | 
				
			||||||
        request = self.get_page_request('/', self.user_staff, r'/en/blog/', edit=False)
 | 
					 | 
				
			||||||
        data = deepcopy(self.data['en'][0])
 | 
					        data = deepcopy(self.data['en'][0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        with self.settings(BLOG_AUTHOR_DEFAULT=True):
 | 
					        with self.login_user_context(self.user):
 | 
				
			||||||
            data['date_published_0'] = now().strftime('%Y-%m-%d')
 | 
					            with self.settings(BLOG_AUTHOR_DEFAULT=True):
 | 
				
			||||||
            data['date_published_1'] = now().strftime('%H:%M:%S')
 | 
					                data['date_published_0'] = now().strftime('%Y-%m-%d')
 | 
				
			||||||
            data['categories'] = self.category_1.pk
 | 
					                data['date_published_1'] = now().strftime('%H:%M:%S')
 | 
				
			||||||
            request = self.post_request(page1, 'en', data=data)
 | 
					                data['categories'] = self.category_1.pk
 | 
				
			||||||
            msg_mid = MessageMiddleware()
 | 
					                request = self.post_request(page1, 'en', user=self.user, data=data, path='/en/?edit_fields=post_text')
 | 
				
			||||||
            msg_mid.process_request(request)
 | 
					                msg_mid = MessageMiddleware()
 | 
				
			||||||
            post_admin = admin.site._registry[Post]
 | 
					                msg_mid.process_request(request)
 | 
				
			||||||
            post_admin.add_view(request)
 | 
					                post_admin = admin.site._registry[Post]
 | 
				
			||||||
            self.assertEqual(Post.objects.count(), 1)
 | 
					                response = post_admin.add_view(request)
 | 
				
			||||||
            self.assertEqual(Post.objects.get(translations__slug='first-post').author_id,
 | 
					                self.assertEqual(response.status_code, 302)
 | 
				
			||||||
                             request.user.pk)
 | 
					                self.assertEqual(Post.objects.count(), 1)
 | 
				
			||||||
 | 
					                self.assertEqual(Post.objects.get(translations__slug='first-post').author_id,
 | 
				
			||||||
 | 
					                                 request.user.pk)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        with self.settings(BLOG_AUTHOR_DEFAULT=False):
 | 
					            with self.settings(BLOG_AUTHOR_DEFAULT=False):
 | 
				
			||||||
            data = deepcopy(self.data['en'][1])
 | 
					                data = deepcopy(self.data['en'][1])
 | 
				
			||||||
            data['date_published_0'] = now().strftime('%Y-%m-%d')
 | 
					                data['date_published_0'] = now().strftime('%Y-%m-%d')
 | 
				
			||||||
            data['date_published_1'] = now().strftime('%H:%M:%S')
 | 
					                data['date_published_1'] = now().strftime('%H:%M:%S')
 | 
				
			||||||
            data['categories'] = self.category_1.pk
 | 
					                data['categories'] = self.category_1.pk
 | 
				
			||||||
            request = self.post_request(page1, 'en', data=data)
 | 
					                request = self.post_request(page1, 'en', user=self.user, data=data, path='/en/?edit_fields=post_text')
 | 
				
			||||||
            msg_mid = MessageMiddleware()
 | 
					                msg_mid = MessageMiddleware()
 | 
				
			||||||
            msg_mid.process_request(request)
 | 
					                msg_mid.process_request(request)
 | 
				
			||||||
            post_admin = admin.site._registry[Post]
 | 
					                post_admin = admin.site._registry[Post]
 | 
				
			||||||
            post_admin.add_view(request)
 | 
					                response = post_admin.add_view(request)
 | 
				
			||||||
            self.assertEqual(Post.objects.count(), 2)
 | 
					                self.assertEqual(response.status_code, 302)
 | 
				
			||||||
            self.assertEqual(Post.objects.get(translations__slug='second-post').author_id, None)
 | 
					                self.assertEqual(Post.objects.count(), 2)
 | 
				
			||||||
 | 
					                self.assertEqual(Post.objects.get(translations__slug='second-post').author_id, None)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        with self.settings(BLOG_AUTHOR_DEFAULT='staff'):
 | 
					            with self.settings(BLOG_AUTHOR_DEFAULT='staff'):
 | 
				
			||||||
            data = deepcopy(self.data['en'][2])
 | 
					                data = deepcopy(self.data['en'][2])
 | 
				
			||||||
            data['date_published_0'] = now().strftime('%Y-%m-%d')
 | 
					                data['date_published_0'] = now().strftime('%Y-%m-%d')
 | 
				
			||||||
            data['date_published_1'] = now().strftime('%H:%M:%S')
 | 
					                data['date_published_1'] = now().strftime('%H:%M:%S')
 | 
				
			||||||
            data['categories'] = self.category_1.pk
 | 
					                data['categories'] = self.category_1.pk
 | 
				
			||||||
            request = self.post_request(page1, 'en', data=data)
 | 
					                request = self.post_request(page1, 'en', user=self.user, data=data, path='/en/?edit_fields=post_text')
 | 
				
			||||||
            msg_mid = MessageMiddleware()
 | 
					                msg_mid = MessageMiddleware()
 | 
				
			||||||
            msg_mid.process_request(request)
 | 
					                msg_mid.process_request(request)
 | 
				
			||||||
            post_admin = admin.site._registry[Post]
 | 
					                post_admin = admin.site._registry[Post]
 | 
				
			||||||
            post_admin.add_view(request)
 | 
					                response = post_admin.add_view(request)
 | 
				
			||||||
            self.assertEqual(Post.objects.count(), 3)
 | 
					                self.assertEqual(response.status_code, 302)
 | 
				
			||||||
            self.assertEqual(Post.objects.get(translations__slug='third-post').author.username, 'staff')
 | 
					                self.assertEqual(Post.objects.count(), 3)
 | 
				
			||||||
 | 
					                self.assertEqual(Post.objects.get(translations__slug='third-post').author.username, 'staff')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_admin_post_text(self):
 | 
					    def test_admin_post_text(self):
 | 
				
			||||||
        page1, page2 = self.get_pages()
 | 
					        page1, page2 = self.get_pages()
 | 
				
			||||||
        post = self._get_post(self.data['en'][0])
 | 
					        post = self._get_post(self.data['en'][0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        with self.settings(BLOG_USE_PLACEHOLDER=False):
 | 
					        with self.login_user_context(self.user):
 | 
				
			||||||
            data = {'post_text': 'ehi text'}
 | 
					            with self.settings(BLOG_USE_PLACEHOLDER=False):
 | 
				
			||||||
            request = self.post_request(page1, 'en', data=data, path='/en/?edit_fields=post_text')
 | 
					                data = {'post_text': 'ehi text'}
 | 
				
			||||||
            msg_mid = MessageMiddleware()
 | 
					                request = self.post_request(page1, 'en', user=self.user, data=data, path='/en/?edit_fields=post_text')
 | 
				
			||||||
            msg_mid.process_request(request)
 | 
					                msg_mid = MessageMiddleware()
 | 
				
			||||||
            post_admin = admin.site._registry[Post]
 | 
					                msg_mid.process_request(request)
 | 
				
			||||||
            post_admin.edit_field(request, post.pk, 'en')
 | 
					                post_admin = admin.site._registry[Post]
 | 
				
			||||||
            modified_post = Post.objects.get(pk=post.pk)
 | 
					                response = post_admin.edit_field(request, post.pk, 'en')
 | 
				
			||||||
            self.assertEqual(modified_post.safe_translation_getter('post_text'), data['post_text'])
 | 
					                self.assertEqual(response.status_code, 200)
 | 
				
			||||||
 | 
					                modified_post = Post.objects.language('en').get(pk=post.pk)
 | 
				
			||||||
 | 
					                self.assertEqual(modified_post.safe_translation_getter('post_text'), data['post_text'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ModelsTest(BaseTest):
 | 
					class ModelsTest(BaseTest):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from cms.api import add_plugin
 | 
					from cms.api import add_plugin
 | 
				
			||||||
 | 
					from cms.plugin_rendering import PluginContext, render_placeholder
 | 
				
			||||||
from django.core.urlresolvers import reverse
 | 
					from django.core.urlresolvers import reverse
 | 
				
			||||||
from django.template import RequestContext
 | 
					from django.template import RequestContext
 | 
				
			||||||
from django.template.loader import get_template
 | 
					from django.template.loader import get_template
 | 
				
			||||||
| 
						 | 
					@ -26,15 +27,9 @@ class PluginTest(BaseTest):
 | 
				
			||||||
        plugin = add_plugin(ph, 'BlogLatestEntriesPlugin', language='en')
 | 
					        plugin = add_plugin(ph, 'BlogLatestEntriesPlugin', language='en')
 | 
				
			||||||
        tag = Tag.objects.get(slug='tag-1')
 | 
					        tag = Tag.objects.get(slug='tag-1')
 | 
				
			||||||
        plugin.tags.add(tag)
 | 
					        plugin.tags.add(tag)
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/en/blog/', lang_code='en', edit=True)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        context = RequestContext(request)
 | 
					        context = self.get_plugin_context(page1, 'en', plugin, edit=True)
 | 
				
			||||||
        try:
 | 
					        rendered = plugin.render_plugin(context, ph)
 | 
				
			||||||
            template = get_template('page.html').template
 | 
					 | 
				
			||||||
            with context.bind_template(template):
 | 
					 | 
				
			||||||
                rendered = plugin.render_plugin(context, ph)
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            rendered = plugin.render_plugin(context, ph)
 | 
					 | 
				
			||||||
        self.assertTrue(rendered.find('cms_plugin-djangocms_blog-post-abstract-1') > -1)
 | 
					        self.assertTrue(rendered.find('cms_plugin-djangocms_blog-post-abstract-1') > -1)
 | 
				
			||||||
        self.assertTrue(rendered.find(reverse('djangocms_blog:posts-tagged', kwargs={'tag': tag.slug})) > -1)
 | 
					        self.assertTrue(rendered.find(reverse('djangocms_blog:posts-tagged', kwargs={'tag': tag.slug})) > -1)
 | 
				
			||||||
        self.assertTrue(rendered.find('<p>first line</p>') > -1)
 | 
					        self.assertTrue(rendered.find('<p>first line</p>') > -1)
 | 
				
			||||||
| 
						 | 
					@ -49,14 +44,9 @@ class PluginTest(BaseTest):
 | 
				
			||||||
        post2.categories.add(category_2)
 | 
					        post2.categories.add(category_2)
 | 
				
			||||||
        plugin = add_plugin(ph, 'BlogLatestEntriesPlugin', language='en')
 | 
					        plugin = add_plugin(ph, 'BlogLatestEntriesPlugin', language='en')
 | 
				
			||||||
        plugin.categories.add(category_2)
 | 
					        plugin.categories.add(category_2)
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/en/blog/', lang_code='en', edit=True)
 | 
					
 | 
				
			||||||
        context = RequestContext(request)
 | 
					        context = self.get_plugin_context(page1, 'en', plugin, edit=True)
 | 
				
			||||||
        try:
 | 
					        rendered = plugin.render_plugin(context, ph)
 | 
				
			||||||
            template = get_template('page.html').template
 | 
					 | 
				
			||||||
            with context.bind_template(template):
 | 
					 | 
				
			||||||
                rendered = plugin.render_plugin(context, ph)
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            rendered = plugin.render_plugin(context, ph)
 | 
					 | 
				
			||||||
        self.assertTrue(rendered.find('cms_plugin-djangocms_blog-post-abstract-2') > -1)
 | 
					        self.assertTrue(rendered.find('cms_plugin-djangocms_blog-post-abstract-2') > -1)
 | 
				
			||||||
        self.assertTrue(rendered.find(reverse('djangocms_blog:posts-category', kwargs={'category': category_2.slug})) > -1)
 | 
					        self.assertTrue(rendered.find(reverse('djangocms_blog:posts-category', kwargs={'category': category_2.slug})) > -1)
 | 
				
			||||||
        self.assertTrue(rendered.find('<p>second post first line</p>') > -1)
 | 
					        self.assertTrue(rendered.find('<p>second post first line</p>') > -1)
 | 
				
			||||||
| 
						 | 
					@ -74,14 +64,9 @@ class PluginTest(BaseTest):
 | 
				
			||||||
        ph = page1.placeholders.get(slot='content')
 | 
					        ph = page1.placeholders.get(slot='content')
 | 
				
			||||||
        plugin = add_plugin(ph, 'BlogAuthorPostsPlugin', language='en')
 | 
					        plugin = add_plugin(ph, 'BlogAuthorPostsPlugin', language='en')
 | 
				
			||||||
        plugin.authors.add(self.user)
 | 
					        plugin.authors.add(self.user)
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/en/blog/', lang_code='en', edit=True)
 | 
					
 | 
				
			||||||
        context = RequestContext(request)
 | 
					        context = self.get_plugin_context(page1, 'en', plugin, edit=True)
 | 
				
			||||||
        try:
 | 
					        rendered = plugin.render_plugin(context, ph)
 | 
				
			||||||
            template = get_template('page.html').template
 | 
					 | 
				
			||||||
            with context.bind_template(template):
 | 
					 | 
				
			||||||
                rendered = plugin.render_plugin(context, ph)
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            rendered = plugin.render_plugin(context, ph)
 | 
					 | 
				
			||||||
        self.assertTrue(rendered.find(reverse('djangocms_blog:posts-author', kwargs={'username': self.user.get_username()})) > -1)
 | 
					        self.assertTrue(rendered.find(reverse('djangocms_blog:posts-author', kwargs={'username': self.user.get_username()})) > -1)
 | 
				
			||||||
        self.assertTrue(rendered.find('2 articles') > -1)
 | 
					        self.assertTrue(rendered.find('2 articles') > -1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,14 +82,8 @@ class PluginTest(BaseTest):
 | 
				
			||||||
        post2.save()
 | 
					        post2.save()
 | 
				
			||||||
        ph = page1.placeholders.get(slot='content')
 | 
					        ph = page1.placeholders.get(slot='content')
 | 
				
			||||||
        plugin = add_plugin(ph, 'BlogTagsPlugin', language='en')
 | 
					        plugin = add_plugin(ph, 'BlogTagsPlugin', language='en')
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/en/blog/', lang_code='en', edit=True)
 | 
					        context = self.get_plugin_context(page1, 'en', plugin, edit=True)
 | 
				
			||||||
        context = RequestContext(request)
 | 
					        rendered = plugin.render_plugin(context, ph)
 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            template = get_template('page.html').template
 | 
					 | 
				
			||||||
            with context.bind_template(template):
 | 
					 | 
				
			||||||
                rendered = plugin.render_plugin(context, ph).replace('\n', '')
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            rendered = plugin.render_plugin(context, ph).replace('\n', '')
 | 
					 | 
				
			||||||
        for tag in Tag.objects.all():
 | 
					        for tag in Tag.objects.all():
 | 
				
			||||||
            self.assertTrue(rendered.find(reverse('djangocms_blog:posts-tagged', kwargs={'tag': tag.slug})) > -1)
 | 
					            self.assertTrue(rendered.find(reverse('djangocms_blog:posts-tagged', kwargs={'tag': tag.slug})) > -1)
 | 
				
			||||||
            if tag.slug == 'test-tag':
 | 
					            if tag.slug == 'test-tag':
 | 
				
			||||||
| 
						 | 
					@ -123,15 +102,9 @@ class PluginTest(BaseTest):
 | 
				
			||||||
        post2.save()
 | 
					        post2.save()
 | 
				
			||||||
        ph = page1.placeholders.get(slot='content')
 | 
					        ph = page1.placeholders.get(slot='content')
 | 
				
			||||||
        plugin = add_plugin(ph, 'BlogCategoryPlugin', language='en')
 | 
					        plugin = add_plugin(ph, 'BlogCategoryPlugin', language='en')
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/en/blog/', lang_code='en', edit=True)
 | 
					 | 
				
			||||||
        plugin_class = plugin.get_plugin_class_instance()
 | 
					        plugin_class = plugin.get_plugin_class_instance()
 | 
				
			||||||
        context = RequestContext(request)
 | 
					        context = self.get_plugin_context(page1, 'en', plugin, edit=True)
 | 
				
			||||||
        try:
 | 
					        context = plugin_class.render(context, plugin, ph)
 | 
				
			||||||
            template = get_template('page.html').template
 | 
					 | 
				
			||||||
            with context.bind_template(template):
 | 
					 | 
				
			||||||
                context = plugin_class.render(context, plugin, ph)
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            context = plugin_class.render(context, plugin, ph)
 | 
					 | 
				
			||||||
        self.assertTrue(context['categories'])
 | 
					        self.assertTrue(context['categories'])
 | 
				
			||||||
        self.assertEqual(list(context['categories']), [self.category_1])
 | 
					        self.assertEqual(list(context['categories']), [self.category_1])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -144,20 +117,15 @@ class PluginTest(BaseTest):
 | 
				
			||||||
        post2.save()
 | 
					        post2.save()
 | 
				
			||||||
        ph = page1.placeholders.get(slot='content')
 | 
					        ph = page1.placeholders.get(slot='content')
 | 
				
			||||||
        plugin = add_plugin(ph, 'BlogArchivePlugin', language='en')
 | 
					        plugin = add_plugin(ph, 'BlogArchivePlugin', language='en')
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/en/blog/', lang_code='en', edit=True)
 | 
					 | 
				
			||||||
        plugin_class = plugin.get_plugin_class_instance()
 | 
					        plugin_class = plugin.get_plugin_class_instance()
 | 
				
			||||||
        context = RequestContext(request)
 | 
					
 | 
				
			||||||
        try:
 | 
					        context = self.get_plugin_context(page1, 'en', plugin, edit=True)
 | 
				
			||||||
            template = get_template('page.html').template
 | 
					        context = plugin_class.render(context, plugin, ph)
 | 
				
			||||||
            with context.bind_template(template):
 | 
					 | 
				
			||||||
                context = plugin_class.render(context, plugin, ph)
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            context = plugin_class.render(context, plugin, ph)
 | 
					 | 
				
			||||||
        self.assertEqual(context['dates'][0]['date'].date(), now().replace(year=now().year, month=now().month, day=1).date())
 | 
					        self.assertEqual(context['dates'][0]['date'].date(), now().replace(year=now().year, month=now().month, day=1).date())
 | 
				
			||||||
        self.assertEqual(context['dates'][0]['count'], 2)
 | 
					        self.assertEqual(context['dates'][0]['count'], 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        post2.publish = False
 | 
					        post2.publish = False
 | 
				
			||||||
        post2.save()
 | 
					        post2.save()
 | 
				
			||||||
        context = plugin_class.render(RequestContext(request, {'request': request}), plugin, ph)
 | 
					        context = plugin_class.render(context, plugin, ph)
 | 
				
			||||||
        self.assertEqual(context['dates'][0]['date'].date(), now().replace(year=now().year, month=now().month, day=1).date())
 | 
					        self.assertEqual(context['dates'][0]['date'].date(), now().replace(year=now().year, month=now().month, day=1).date())
 | 
				
			||||||
        self.assertEqual(context['dates'][0]['count'], 1)
 | 
					        self.assertEqual(context['dates'][0]['count'], 1)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@ class ViewTest(BaseTest):
 | 
				
			||||||
        response = view_obj.render_to_response(context)
 | 
					        response = view_obj.render_to_response(context)
 | 
				
			||||||
        self.assertContains(response, context['post_list'][0].get_absolute_url())
 | 
					        self.assertContains(response, context['post_list'][0].get_absolute_url())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/it/blog/', lang_code='it', edit=True)
 | 
					        request = self.get_page_request(page1, self.user, r'/it/blog/', lang='it', edit=True)
 | 
				
			||||||
        activate('it')
 | 
					        activate('it')
 | 
				
			||||||
        view_obj.request = request
 | 
					        view_obj.request = request
 | 
				
			||||||
        view_obj.object_list = view_obj.get_queryset()
 | 
					        view_obj.object_list = view_obj.get_queryset()
 | 
				
			||||||
| 
						 | 
					@ -76,7 +76,7 @@ class ViewTest(BaseTest):
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        view_obj = PostListView()
 | 
					        view_obj = PostListView()
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/fr/blog/', lang_code='fr', edit=True)
 | 
					        request = self.get_page_request(page1, self.user, r'/fr/blog/', lang='fr', edit=True)
 | 
				
			||||||
        activate('fr')
 | 
					        activate('fr')
 | 
				
			||||||
        view_obj.request = request
 | 
					        view_obj.request = request
 | 
				
			||||||
        view_obj.kwargs = {}
 | 
					        view_obj.kwargs = {}
 | 
				
			||||||
| 
						 | 
					@ -88,7 +88,7 @@ class ViewTest(BaseTest):
 | 
				
			||||||
        with override_parler_settings(PARLER_LANGUAGES=PARLER_FALLBACK):
 | 
					        with override_parler_settings(PARLER_LANGUAGES=PARLER_FALLBACK):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            view_obj = PostListView()
 | 
					            view_obj = PostListView()
 | 
				
			||||||
            request = self.get_page_request(page1, self.user, r'/fr/blog/', lang_code='fr', edit=True)
 | 
					            request = self.get_page_request(page1, self.user, r'/fr/blog/', lang='fr', edit=True)
 | 
				
			||||||
            activate('fr')
 | 
					            activate('fr')
 | 
				
			||||||
            view_obj.request = request
 | 
					            view_obj.request = request
 | 
				
			||||||
            view_obj.kwargs = {}
 | 
					            view_obj.kwargs = {}
 | 
				
			||||||
| 
						 | 
					@ -115,7 +115,7 @@ class ViewTest(BaseTest):
 | 
				
			||||||
            self.assertEqual(post_obj.language_code, 'en')
 | 
					            self.assertEqual(post_obj.language_code, 'en')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        with switch_language(post1, 'it'):
 | 
					        with switch_language(post1, 'it'):
 | 
				
			||||||
            request = self.get_page_request(page1, AnonymousUser(), r'/it/blog/', lang_code='it', edit=False)
 | 
					            request = self.get_page_request(page1, AnonymousUser(), r'/it/blog/', lang='it', edit=False)
 | 
				
			||||||
            view_obj.request = request
 | 
					            view_obj.request = request
 | 
				
			||||||
            view_obj.kwargs = {'slug': post1.slug}
 | 
					            view_obj.kwargs = {'slug': post1.slug}
 | 
				
			||||||
            post_obj = view_obj.get_object()
 | 
					            post_obj = view_obj.get_object()
 | 
				
			||||||
| 
						 | 
					@ -230,7 +230,7 @@ class ViewTest(BaseTest):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        feed = LatestEntriesFeed()
 | 
					        feed = LatestEntriesFeed()
 | 
				
			||||||
        self.assertEqual(list(feed.items()), [post1])
 | 
					        self.assertEqual(list(feed.items()), [post1])
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/en/blog/', lang_code='en', edit=False)
 | 
					        request = self.get_page_request(page1, self.user, r'/en/blog/', lang='en', edit=False)
 | 
				
			||||||
        xml = feed(request)
 | 
					        xml = feed(request)
 | 
				
			||||||
        self.assertContains(xml, post1.get_absolute_url())
 | 
					        self.assertContains(xml, post1.get_absolute_url())
 | 
				
			||||||
        self.assertContains(xml, 'Blog articles on example.com')
 | 
					        self.assertContains(xml, 'Blog articles on example.com')
 | 
				
			||||||
| 
						 | 
					@ -239,7 +239,7 @@ class ViewTest(BaseTest):
 | 
				
			||||||
        post1.set_current_language('it')
 | 
					        post1.set_current_language('it')
 | 
				
			||||||
        feed = LatestEntriesFeed()
 | 
					        feed = LatestEntriesFeed()
 | 
				
			||||||
        self.assertEqual(list(feed.items()), [post1])
 | 
					        self.assertEqual(list(feed.items()), [post1])
 | 
				
			||||||
        request = self.get_page_request(page1, self.user, r'/it/blog/', lang_code='it', edit=False)
 | 
					        request = self.get_page_request(page1, self.user, r'/it/blog/', lang='it', edit=False)
 | 
				
			||||||
        xml = feed(request)
 | 
					        xml = feed(request)
 | 
				
			||||||
        self.assertContains(xml, post1.get_absolute_url())
 | 
					        self.assertContains(xml, post1.get_absolute_url())
 | 
				
			||||||
        self.assertContains(xml, 'Articoli del blog su example.com')
 | 
					        self.assertContains(xml, 'Articoli del blog su example.com')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue