Add toolbar test for publish button
This commit is contained in:
parent
33d2371647
commit
1b42655d97
1 changed files with 32 additions and 1 deletions
|
@ -1,8 +1,9 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import, print_function, unicode_literals
|
from __future__ import absolute_import, print_function, unicode_literals
|
||||||
|
|
||||||
from cms.toolbar.items import ModalItem
|
from cms.toolbar.items import ButtonList, ModalItem
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
from django.utils.encoding import force_text
|
||||||
|
|
||||||
from djangocms_blog.models import BLOG_CURRENT_POST_IDENTIFIER
|
from djangocms_blog.models import BLOG_CURRENT_POST_IDENTIFIER
|
||||||
|
|
||||||
|
@ -20,9 +21,39 @@ class ToolbarTest(BaseTest):
|
||||||
pages = self.get_pages()
|
pages = self.get_pages()
|
||||||
request = self.get_page_request(pages[0], self.user, r'/en/blog/', edit=True)
|
request = self.get_page_request(pages[0], self.user, r'/en/blog/', edit=True)
|
||||||
setattr(request, BLOG_CURRENT_POST_IDENTIFIER, posts[0])
|
setattr(request, BLOG_CURRENT_POST_IDENTIFIER, posts[0])
|
||||||
|
|
||||||
|
posts[0].publish = False
|
||||||
|
posts[0].save()
|
||||||
toolbar = CMSToolbar(request)
|
toolbar = CMSToolbar(request)
|
||||||
|
toolbar.populate()
|
||||||
|
toolbar.post_template_populate()
|
||||||
toolbar.get_left_items()
|
toolbar.get_left_items()
|
||||||
blog_menu = toolbar.menus['djangocms_blog']
|
blog_menu = toolbar.menus['djangocms_blog']
|
||||||
self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_changelist'))), 1)
|
self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_changelist'))), 1)
|
||||||
self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_add'))), 1)
|
self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_add'))), 1)
|
||||||
self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_change', args=(posts[0].pk,)))), 1)
|
self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_change', args=(posts[0].pk,)))), 1)
|
||||||
|
|
||||||
|
# Publish button only appears if current post is unpublished
|
||||||
|
right = toolbar.get_right_items()
|
||||||
|
buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
|
||||||
|
self.assertTrue([button for button in buttons if force_text(button.name) == 'Publish Blog now'])
|
||||||
|
|
||||||
|
# Publish button does not appears if current post is published
|
||||||
|
posts[0].publish = True
|
||||||
|
posts[0].save()
|
||||||
|
toolbar = CMSToolbar(request)
|
||||||
|
toolbar.populate()
|
||||||
|
toolbar.post_template_populate()
|
||||||
|
right = toolbar.get_right_items()
|
||||||
|
buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
|
||||||
|
self.assertFalse([button for button in buttons if force_text(button.name) == 'Publish Blog now'])
|
||||||
|
|
||||||
|
# Publish button does not appears if other posts but the current one are unpublished
|
||||||
|
posts[1].publish = True
|
||||||
|
posts[1].save()
|
||||||
|
toolbar = CMSToolbar(request)
|
||||||
|
toolbar.populate()
|
||||||
|
toolbar.post_template_populate()
|
||||||
|
right = toolbar.get_right_items()
|
||||||
|
buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
|
||||||
|
self.assertFalse([button for button in buttons if force_text(button.name) == 'Publish Blog now'])
|
||||||
|
|
Loading…
Reference in a new issue