source: products/quintagroup.portlet.pfg/trunk/quintagroup/portlet/pfg/tests/test_portlet.py @ 3635

Last change on this file since 3635 was 3635, checked in by kroman0, 11 years ago

Pep8,pyflakes

  • Property svn:eol-style set to native
File size: 3.9 KB
Line 
1from zope.component import getUtility, getMultiAdapter
2
3from plone.portlets.interfaces import IPortletType
4from plone.portlets.interfaces import IPortletManager
5from plone.portlets.interfaces import IPortletAssignment
6from plone.portlets.interfaces import IPortletDataProvider
7from plone.portlets.interfaces import IPortletRenderer
8
9from plone.app.portlets.storage import PortletAssignmentMapping
10
11from quintagroup.portlet.pfg import pfg
12
13from quintagroup.portlet.pfg.tests.base import TestCase
14
15
16class TestPFGPortlet(TestCase):
17
18    def afterSetUp(self):
19        self.setRoles(('Manager',))
20        self.portal.invokeFactory('FormFolder', 'test_form')
21
22    def testPortletTypeRegistered(self):
23        portlet = getUtility(
24            IPortletType, name='quintagroup.portlet.pfg.PFGPortlet')
25        self.assertEquals(
26            portlet.addview, 'quintagroup.portlet.pfg.PFGPortlet')
27
28    def testInterfaces(self):
29        portlet = pfg.Assignment(target_form=u"/test_form")
30        self.failUnless(IPortletAssignment.providedBy(portlet))
31        self.failUnless(IPortletDataProvider.providedBy(portlet.data))
32
33    def testInvokeAddview(self):
34        portlet = getUtility(
35            IPortletType, name='quintagroup.portlet.pfg.PFGPortlet')
36        mapping = self.portal.restrictedTraverse(
37            '++contextportlets++plone.leftcolumn')
38        for m in mapping.keys():
39            del mapping[m]
40        addview = mapping.restrictedTraverse('+/' + portlet.addview)
41
42        addview.createAndAdd(data={'target_form': u"/test_form"})
43
44        self.assertEquals(len(mapping), 1)
45        self.failUnless(isinstance(mapping.values()[0], pfg.Assignment))
46
47    def testInvokeEditView(self):
48        mapping = PortletAssignmentMapping()
49        request = self.folder.REQUEST
50
51        mapping['foo'] = pfg.Assignment(target_form=u"/test_form")
52        editview = getMultiAdapter((mapping['foo'], request), name='edit')
53        self.failUnless(isinstance(editview, pfg.EditForm))
54
55    def testRenderer(self):
56        context = self.folder
57        request = self.folder.REQUEST
58        view = self.folder.restrictedTraverse('@@plone')
59        manager = getUtility(
60            IPortletManager, name='plone.rightcolumn', context=self.portal)
61        assignment = pfg.Assignment(target_form=u"/test_form")
62
63        renderer = getMultiAdapter(
64            (context, request, view, manager, assignment), IPortletRenderer)
65        self.failUnless(isinstance(renderer, pfg.Renderer))
66
67
68class TestPFGPortletRenderer(TestCase):
69
70    def afterSetUp(self):
71        self.loginAsPortalOwner()
72        self.setRoles(('Manager',))
73        self.portal.invokeFactory('FormFolder', 'test_form')
74
75    def renderer(self, context=None, request=None, view=None, manager=None,
76                 assignment=None):
77        context = context or self.folder
78        request = request or self.folder.REQUEST
79        view = view or self.folder.restrictedTraverse('@@plone')
80        manager = manager or getUtility(
81            IPortletManager, name='plone.rightcolumn', context=self.portal)
82        assignment = assignment or pfg.Assignment(target_form="/test_form")
83
84        return getMultiAdapter((context, request, view, manager, assignment),
85                               IPortletRenderer)
86
87    def test_portletStyle(self):
88        assignment = pfg.Assignment(target_form="/test_form")
89        renderer = self.renderer(context=self.portal,
90                                 request=self.portal.REQUEST,
91                                 assignment=assignment)
92        renderer = renderer.__of__(self.portal)
93        renderer.update()
94
95        self.failUnless('Your E-Mail Address' in renderer.render())
96        self.failUnless('Subject' in renderer.render())
97        self.failUnless('Comments' in renderer.render())
98
99
100def test_suite():
101    from unittest import TestSuite, makeSuite
102    suite = TestSuite()
103    suite.addTest(makeSuite(TestPFGPortlet))
104    suite.addTest(makeSuite(TestPFGPortletRenderer))
105    return suite
Note: See TracBrowser for help on using the repository browser.