Esempio n. 1
0
    def test_create_file(self):
        grok_component('ITest2', ITest2)

        # mock stuf
        mock_context = self.providing_stub([
            ITabbedviewUploadable,
        ])
        named_file = NamedFile('bla bla', filename=u'test.txt')

        obj = self.providing_stub([ITest1, ITest2])
        request = self.stub()
        self.expect(obj.REQUEST).result(request)

        iterSchemata = self.mocker.replace(
            'plone.dexterity.utils.iterSchemata')
        self.expect(iterSchemata(obj)).result([ITest1, ITest2])

        self.replay()

        # test if it's sets the default value and
        # also if it add the created file to the primary field
        adapter = IQuickUploadFileFactory(mock_context)
        named_file = adapter.create_file(u'hugo.jpeg', u'data data', obj)

        self.assertEquals(named_file.data, u'data data')
    def test_full_init_persistent(self):
        class MyTile(tiles.PersistentTile):
            grok.context(IDummyContext)
            grok.require('dummy.ViewPermission')

            grok.name('my.tile')
            grok.title(u"My title")
            grok.description(u"My description")

            tiles.add_permission(DummyAddPermission)
            tiles.schema(IDummySchema)

        grok_component('MyTile', MyTile)

        # Check for view
        context = DummyContext()
        request = TestRequest()

        tileView = getMultiAdapter((context, request,), name='my.tile')
        tileType = getUtility(ITileType, name='my.tile')

        self.failUnless(isinstance(tileView, MyTile))
        self.assertEquals(u"My title", tileType.title)
        self.assertEquals(u"My description", tileType.description)
        self.assertEquals(IDummySchema, tileType.schema)
        self.assertEquals('dummy.AddPermission', tileType.add_permission)
    def test_inherited_schema_still_has_tagged_value(self):
        """An inherited schema should still have the tagged value information
        inherited from its superclass.
        """

        class IFoo(form.Schema):
            """Class with a searchable field
            """
            searchable('baz')
            baz = schema.TextLine(title=u'baz')

        class IBar(IFoo):
            """Schema class which inherits a field from IFoo.
            """

        self.assertEquals([], mergedTaggedValueList(IFoo, SEARCHABLE_KEY))
        self.assertEquals([], mergedTaggedValueList(IBar, SEARCHABLE_KEY))

        grok_component('IFoo', IFoo)
        grok_component('IBar', IBar)

        self.assertEquals([(Interface, 'baz', 'true')],
                          mergedTaggedValueList(IFoo, SEARCHABLE_KEY))
        self.assertEquals([(Interface, 'baz', 'true')],
                          mergedTaggedValueList(IBar, SEARCHABLE_KEY))
Esempio n. 4
0
def test_inject():

    foo = Library('foo', '')
    x1 = Resource(foo, 'a.js')
    x2 = Resource(foo, 'b.css')

    class MyResources(ResourceViewlet):
        view(MyView)
        slot(Resources)
        resources = [x1, x2]

    expected = '''
    <html>
      <head>
        <link rel="stylesheet" type="text/css"
              href="/fanstatic/foo/b.css" />
          <script type="text/javascript"
                  src="/fanstatic/foo/a.js"></script>
      </head>
      <body>A view</body>
    </html>
    '''

    testing.grok_component('myresources', MyResources)

    app = TestApp(Injector(MyApp(object(), MyView)))
    res = app.get('/')
    assert XMLDiff(res.body, expected) is None

    app = TestApp(Injector(MyApp(object(), AnotherView)))
    res = app.get('/')
    assert res.body == '<html><head></head><body>A view</body></html>'
def test_no_name():
    """A role has to have a name to be defined.
    """
    class MissingName(components.Role):
        pass

    with pytest.raises(martian.error.GrokError):
        testing.grok_component('fail', MissingName)
    def test_url(self):
        class MyOtherTile(tiles.Tile):
            grok.context(IDummyContext)
            grok.require('dummy.ViewPermission')

            grok.name('my.tile')
            grok.title(u"My title")
            tiles.add_permission('dummy.AddPermission')

            def render(self):
                return '<html><body><b>Good bye %s</b></body></html>' % self.id

        class DummyAbsoluteURL(grok.MultiAdapter):
            grok.provides(IAbsoluteURL)
            grok.adapts(IDummyContext, Interface)

            def __init__(self, context, request):
                self.context = context
                self.request = request

            def __unicode__(self):
                return u"http://example.com/context"

            def __str__(self):
                return u"http://example.com/context"

            def __call__(self):
                return self.__str__()

            def breadcrumbs(self):
                return ({'name': u'context',
                         'url': 'http://example.com/context'},)

        grok_component('MyOtherTile', MyOtherTile)
        grok_component('DummyAbsoluteURL', DummyAbsoluteURL)

        from plone.tiles.absoluteurl import TransientTileAbsoluteURL
        provideAdapter(TransientTileAbsoluteURL, adapts=(ITile, Interface,),
                       provides=IAbsoluteURL)

        from plone.tiles.data import TransientTileDataManager
        provideAdapter(TransientTileDataManager)

        context = DummyContext()
        request = TestRequest()

        tileView = getMultiAdapter((context, request,), name='my.tile')
        self.assertEquals(None, tileView.id)
        self.assertEquals('http://example.com/context/@@my.tile', tileView.url)

        tileView = tileView['tile1']
        self.assertEquals('tile1', tileView.id)
        self.assertEquals('http://example.com/context/@@my.tile/tile1',
                          tileView.url)
Esempio n. 7
0
    def test_class_security_initialised(self):

        class Content(Item):
            pass

        InitializeClass_mock = self.mocker.replace(
            'App.class_init.InitializeClass')
        self.expect(InitializeClass_mock(Content))

        self.replay()

        grok_component('Content', Content)
Esempio n. 8
0
    def test_editform_with_defaults(self):
        class IDummyContent(Interface):
            pass

        class EditForm(form.EditForm):
            five.grok.context(IDummyContent)

        if DEFAULT_WRAP:  # Plone < 4

            wrapped = self.create_dummy()

            wrap_form_mock = self.mocker.replace(
                'plone.z3cform.layout.wrap_form')
            self.expect(wrap_form_mock(EditForm)).result(wrapped)

            factory = wrapped

        else:  # Plone >= 4

            factory = EditForm

        page_mock = self.mocker.replace(
            'Products.Five.browser.metaconfigure.page')
        self.expect(
            page_mock(mocker.ANY,
                      name='edit',
                      permission='cmf.ModifyPortalContent',
                      for_=IDummyContent,
                      layer=IDefaultBrowserLayer,
                      class_=factory))

        self.replay()

        self.assertEquals(True, grok_component('EditForm', EditForm))
Esempio n. 9
0
    def test_addform_registered_with_factory_layer_and_permission(self):
        class ITestLayer(Interface):
            pass

        class AddForm(form.AddForm):
            five.grok.name('my.type')
            five.grok.layer(ITestLayer)
            five.grok.require('my.permission')

        def match_addview():
            return mocker.MATCH(lambda x: issubclass(x, add.DefaultAddView))

        protectClass_mock = self.mocker.replace(protectClass_method)
        self.expect(protectClass_mock(match_addview(), "my.permission"))

        protectName_mock = self.mocker.replace(protectName_method)
        self.expect(
            protectName_mock(match_addview(), '__call__', "my.permission"))

        self.expect(
            protectName_mock(match_addview(), self.match_type(basestring),
                             'zope2.Private')).count(1, None)

        self.replay()

        self.assertEquals(True, grok_component('AddForm', AddForm))

        # Find the adapter that was registered

        view = getMultiAdapter(
            (TestContext(), TestRequest(ITestLayer), DexterityFTI(u"my.type")),
            name=u"my.type")
        self.failUnless(isinstance(view, add.DefaultAddView))
        self.assertEquals(AddForm, view.form)
Esempio n. 10
0
    def test_addform_registered_with_factory_layer_and_permission(self):

        class ITestLayer(Interface):
            pass

        class AddForm(form.AddForm):
            five.grok.name('my.type')
            five.grok.layer(ITestLayer)
            five.grok.require('my.permission')

        def match_addview():
            return mocker.MATCH(lambda x: issubclass(x, add.DefaultAddView))

        protectClass_mock = self.mocker.replace(protectClass_method)
        self.expect(protectClass_mock(match_addview(), "my.permission"))

        protectName_mock = self.mocker.replace(protectName_method)
        self.expect(protectName_mock(match_addview(), '__call__',
                                     "my.permission"))

        self.expect(protectName_mock(
            match_addview(), self.match_type(basestring), 'zope2.Private')
                    ).count(1, None)

        self.replay()

        self.assertEquals(True, grok_component('AddForm', AddForm))

        # Find the adapter that was registered

        view = getMultiAdapter((TestContext(), TestRequest(ITestLayer),
                                DexterityFTI(u"my.type")), name=u"my.type")
        self.failUnless(isinstance(view, add.DefaultAddView))
        self.assertEquals(AddForm, view.form)
Esempio n. 11
0
    def test_editform_with_defaults(self):

        class IDummyContent(Interface):
            pass

        class EditForm(form.EditForm):
            five.grok.context(IDummyContent)

        if DEFAULT_WRAP:  # Plone < 4

            wrapped = self.create_dummy()

            wrap_form_mock = self.mocker.replace(
                'plone.z3cform.layout.wrap_form')
            self.expect(wrap_form_mock(EditForm)).result(wrapped)

            factory = wrapped

        else:  # Plone >= 4

            factory = EditForm

        page_mock = self.mocker.replace(
            'Products.Five.browser.metaconfigure.page')
        self.expect(page_mock(mocker.ANY,
                              name='edit',
                              permission='cmf.ModifyPortalContent',
                              for_=IDummyContent,
                              layer=IDefaultBrowserLayer,
                              class_=factory))

        self.replay()

        self.assertEquals(True, grok_component('EditForm', EditForm))
    def test_schema_directives_store_tagged_values(self):
        """Test, if the schema directive values are stored as tagged
        values.
        """
        class IDummy(form.Schema):
            """Dummy schema class.
            """
            searchable('foo')
            foo = schema.TextLine(title=u'Foo')

        self.assertEquals([], mergedTaggedValueList(IDummy, SEARCHABLE_KEY))

        grok_component('IDummy', IDummy)

        self.assertEquals([(Interface, 'foo', 'true')],
                          mergedTaggedValueList(IDummy, SEARCHABLE_KEY))
Esempio n. 13
0
    def test_name_registers_factory(self):

        class Content(Item):
            five.grok.name('my.type')

        provideUtility_mock = self.mocker.replace(
            'zope.component.provideUtility')
        self.expect(provideUtility_mock(self.match_provides(IFactory),
                                        IFactory, 'my.type'))

        InitializeClass_mock = self.mocker.replace(
            'App.class_init.InitializeClass')
        self.expect(InitializeClass_mock(Content))

        self.replay()

        grok_component('Content', Content)
    def test_schema_directives_store_tagged_values(self):
        """Test, if the schema directive values are stored as tagged
        values.
        """

        class IDummy(form.Schema):
            """Dummy schema class.
            """
            searchable('foo')
            foo = schema.TextLine(title=u'Foo')

        self.assertEquals([], mergedTaggedValueList(IDummy, SEARCHABLE_KEY))

        grok_component('IDummy', IDummy)

        self.assertEquals([(Interface, 'foo', 'true')],
                          mergedTaggedValueList(IDummy, SEARCHABLE_KEY))
def test_registration():

    class MyRole(components.Role):
        components.name('SomeSillyRole')

    assert testing.grok_component('myrole', MyRole) == True

    role = getUtility(IRole, name='SomeSillyRole')
    assert isinstance(role, MyRole) is True
Esempio n. 16
0
    def test_template_association(self):
        class MyTile(tiles.Tile):
            grok.context(IDummyContext)
            grok.require('dummy.ViewPermission')

            grok.name('my.tile')
            grok.title(u"My title")
            tiles.add_permission('dummy.AddPermission')

        grok_component('MyTile', MyTile)

        # Check for view
        context = DummyContext()
        request = TestRequest()

        tileView = getMultiAdapter((context, request,), name='my.tile')

        self.assertEquals('<html><body><b>Hello</b></body></html>',
                          tileView().strip())
Esempio n. 17
0
    def test_edit_form_bails_without_interface_as_context(self):
        class Foo(object):
            pass

        class EditForm(form.EditForm):
            five.grok.context(Foo)

        self.replay()

        self.assertEquals(False, grok_component('EditForm', EditForm))
Esempio n. 18
0
    def test_edit_form_bails_without_interface_as_context(self):

        class Foo(object):
            pass

        class EditForm(form.EditForm):
            five.grok.context(Foo)

        self.replay()

        self.assertEquals(False, grok_component('EditForm', EditForm))
Esempio n. 19
0
    def test_name_does_not_overwrite_factory(self):

        class Content(Item):
            five.grok.name('my.type')

        factory_dummy = self.create_dummy()
        self.mock_utility(factory_dummy, IFactory, 'my.type')

        provideUtility_mock = self.mocker.replace(
            'zope.component.provideUtility')
        self.expect(provideUtility_mock(mocker.ANY, IFactory, 'my.type')
                    ).count(0)

        InitializeClass_mock = self.mocker.replace(
            'App.class_init.InitializeClass')
        self.expect(InitializeClass_mock(Content))

        self.replay()

        grok_component('Content', Content)
Esempio n. 20
0
    def test_complete_creation(self):
        grok_component('ITest2', ITest2)

        # mock stuf
        mock_context = self.providing_stub([
            ITabbedviewUploadable,
        ])

        obj = self.providing_stub([ITest1, ITest2])
        request = self.stub()
        self.expect(obj.REQUEST).result(request)
        self.expect(obj.reindexObject()).result(None)
        self.expect(obj.__parent__).result(mock_context)
        self.expect(obj.__name__).result('test_context')

        iterSchemata = self.mocker.replace(
            'plone.dexterity.utils.iterSchemata')
        self.expect(iterSchemata(obj)).result([ITest1, ITest2]).count(0, None)

        createContentInContainer = self.mocker.replace(
            'plone.dexterity.utils.createContentInContainer')
        self.expect(
            createContentInContainer(
                mock_context, 'opengever.document.document')).result(obj)

        # filedata
        filename = u'hugo.doc'
        title = None
        description = None
        content_type = None
        data = u'Data data'
        portal_type = None

        self.replay()

        adapter = IQuickUploadFileFactory(mock_context)
        result = adapter(filename, title, description, content_type, data,
                         portal_type)
        obj = result.get('success')
        self.assertEquals(obj.description, 'hanspeter')
        self.assertEquals(obj.file.data, u'Data data')
Esempio n. 21
0
    def test_no_register_class_without_add_permission(self):
        class Content(Item):
            meta_type = "ContentMT"

        try:
            from OFS.metaconfigure import registerClass
            registerClass_mock = self.mocker.replace(
                'OFS.metaconfigure.registerClass')
        except ImportError:
            # BBB
            registerClass_mock = self.mocker.replace(
                'Products.Five.fiveconfigure.registerClass')
        self.expect(registerClass_mock(mocker.ANY, Content, mocker.ANY,
                                       mocker.ANY)).count(0)

        InitializeClass_mock = self.mocker.replace(
            'App.class_init.InitializeClass')
        self.expect(InitializeClass_mock(Content))

        self.replay()

        grok_component('Content', Content)
Esempio n. 22
0
    def test_render_function(self):
        class MyOtherTile(tiles.Tile):
            grok.context(IDummyContext)
            grok.require('dummy.ViewPermission')

            grok.name('my.tile')
            grok.title(u"My title")
            tiles.add_permission('dummy.AddPermission')

            def render(self):
                return '<html><body><b>Good bye</b></body></html>'

        grok_component('MyOtherTile', MyOtherTile)

        # Check for view
        context = DummyContext()
        request = TestRequest()

        tileView = getMultiAdapter((context, request,), name='my.tile')

        self.assertEquals('<html><body><b>Good bye</b></body></html>',
                          tileView())
Esempio n. 23
0
    def test_complete_creation(self):
        grok_component('ITest2', ITest2)

        # mock stuf
        mock_context = self.providing_stub([ITabbedviewUploadable, ])

        obj = self.providing_stub([ITest1, ITest2])
        request = self.stub()
        self.expect(obj.REQUEST).result(request)
        self.expect(obj.reindexObject()).result(None)
        self.expect(obj.__parent__).result(mock_context)
        self.expect(obj.__name__).result('test_context')

        iterSchemata = self.mocker.replace(
            'plone.dexterity.utils.iterSchemata')
        self.expect(iterSchemata(obj)).result([ITest1, ITest2]).count(0, None)

        createContentInContainer = self.mocker.replace(
            'plone.dexterity.utils.createContentInContainer')
        self.expect(createContentInContainer(
                mock_context, 'opengever.document.document')).result(obj)

        # filedata
        filename = u'hugo.doc'
        title = None
        description = None
        content_type = None
        data = u'Data data'
        portal_type = None

        self.replay()

        adapter = IQuickUploadFileFactory(mock_context)
        result = adapter(filename, title, description,
                         content_type, data, portal_type)
        obj = result.get('success')
        self.assertEquals(obj.description, 'hanspeter')
        self.assertEquals(obj.file.data, u'Data data')
Esempio n. 24
0
def test_consumer_returning_view():

    class ViewReturningConsumer(grok.Subscription):
        grok.implements(IConsumer)
        grok.context(Interface)

        def __call__(self, request, obj, stack):
            view = RawView(obj, request)
            return True, view, []

    grok_component('consumer', ViewReturningConsumer)

    root = get_structure()
    publisher = DawnlightPublisher()

    req = TestRequest(path="/it_will_return_a_view")
    assert publisher.publish(req, root) == root

    # The same test fail if we don't use the provided ViewLookup
    publisher = DawnlightPublisher(
        view_lookup=ViewLookup(lookup=wrap_http_renderer))
    with pytest.raises(ResolveError) as e:
        publisher.publish(req, root) == root
Esempio n. 25
0
    def test_set_default_value(self):
        grok_component('ITest2', ITest2)

        # mock stuf
        mock_context = self.providing_stub([ITabbedviewUploadable, ])
        named_file = NamedFile('bla bla', filename=u'test.txt')

        obj = self.providing_stub([ITest1, ITest2])
        request = self.stub()
        self.expect(obj.REQUEST).result(request)

        iterSchemata = self.mocker.replace(
            'plone.dexterity.utils.iterSchemata')
        self.expect(iterSchemata(obj)).result([ITest1, ITest2])

        self.replay()

        # test if it's sets the default value and
        # also if it add the created file to the primary field
        adapter = IQuickUploadFileFactory(mock_context)
        adapter.set_default_values(obj, named_file)
        self.assertEquals(obj.description, 'hanspeter')
        self.assertEquals(obj.file, named_file)
Esempio n. 26
0
    def test_getitem(self):
        class MyOtherTile(tiles.Tile):
            grok.context(IDummyContext)
            grok.require('dummy.ViewPermission')

            grok.name('my.tile')
            grok.title(u"My title")
            tiles.add_permission('dummy.AddPermission')

            def render(self):
                return '<html><body><b>Good bye %s</b></body></html>' % self.id

        class ViewOnTile(grok.View):
            grok.context(MyOtherTile)
            grok.require('dummy.ViewPermission')
            grok.name('view-on-tile')

            def render(self):
                return 'Dummy view'

        grok_component('MyOtherTile', MyOtherTile)
        grok_component('ViewOnTile', ViewOnTile)

        context = DummyContext()
        request = TestRequest()

        tileView = getMultiAdapter((context, request,), name='my.tile')
        self.assertEquals(None, tileView.id)

        tileView = tileView['tile1']
        self.assertEquals('tile1', tileView.id)

        self.assertEquals('<html><body><b>Good bye tile1</b></body></html>',
                          tileView())

        viewOnTile = tileView['view-on-tile']
        self.assertEquals('Dummy view', viewOnTile())
Esempio n. 27
0
    def test_register_class_with_meta_type_and_add_permission(self):
        class Content(Item):
            meta_type = "ContentMT"
            add_permission(u"mock.AddPermission")

        try:
            from OFS.metaconfigure import registerClass
            registerClass_mock = self.mocker.replace(
                'OFS.metaconfigure.registerClass')
        except ImportError:
            # BBB
            registerClass_mock = self.mocker.replace(
                'Products.Five.fiveconfigure.registerClass')
        self.expect(registerClass_mock(
            self.match_provides(IConfigurationContext),
            Content, "ContentMT", u"mock.AddPermission"))

        InitializeClass_mock = self.mocker.replace(
            'App.class_init.InitializeClass')
        self.expect(InitializeClass_mock(Content))

        self.replay()

        grok_component('Content', Content)
    def test_inherited_schema_still_has_tagged_value(self):
        """An inherited schema should still have the tagged value information
        inherited from its superclass.
        """
        class IFoo(form.Schema):
            """Class with a searchable field
            """
            searchable('baz')
            baz = schema.TextLine(title=u'baz')

        class IBar(IFoo):
            """Schema class which inherits a field from IFoo.
            """

        self.assertEquals([], mergedTaggedValueList(IFoo, SEARCHABLE_KEY))
        self.assertEquals([], mergedTaggedValueList(IBar, SEARCHABLE_KEY))

        grok_component('IFoo', IFoo)
        grok_component('IBar', IBar)

        self.assertEquals([(Interface, 'baz', 'true')],
                          mergedTaggedValueList(IFoo, SEARCHABLE_KEY))
        self.assertEquals([(Interface, 'baz', 'true')],
                          mergedTaggedValueList(IBar, SEARCHABLE_KEY))
Esempio n. 29
0
 def setUp(self):
     grok('uvcsite.tests.fixtures.usermanagement')
     grok_component('Index', fixtures.views.MinimalAppIndex)
Esempio n. 30
0
def test_manager_viewlet():
    """The manager is a location (a slot) where viewlet will display.
    It supervises the rendering of each viewlet and merged the output.
    """
    # We define the actors
    mammoth = object()
    request = TestRequest()
    view = TestView(mammoth, request)
    generic_template = Template()

    class LeftColumn(dolmen.viewlet.ViewletManager):
        pass

    assert not getattr(LeftColumn, '__component_name__', None)
    assert grok_component('left', LeftColumn) is True
    assert getattr(LeftColumn, '__component_name__') == 'leftcolumn'

    # We instanciate, verify and try to render
    left = LeftColumn(mammoth, request, view)
    assert verifyObject(dolmen.viewlet.IViewletManager, left)

    left.update()
    assert left.render() == u''

    manager = getMultiAdapter((mammoth, request, view),
                              IViewSlot, name='leftcolumn')
    assert manager.__class__ == LeftColumn

    manager = dolmen.viewlet.query_viewlet_manager(view, name='leftcolumn')
    assert manager.__class__ == LeftColumn

    left.template = generic_template
    left.update()
    assert left.render() == 'A simple template for LeftColumn.'

    # We now assign a viewlet to our manager
    class WeatherBlock(dolmen.viewlet.Viewlet):
        require('zope.Public')
        dolmen.viewlet.slot(LeftColumn)

    assert dolmen.viewlet.IViewlet.implementedBy(WeatherBlock) is True
    assert grok_component('weather', WeatherBlock) is True

    newInteraction(Participation(Principal('User')))

    left.template = None
    left.update()

    assert len(list(dolmen.viewlet.query_components(
      mammoth, request, view, left))) == 1

    assert manager.__class__ == LeftColumn
    assert len(left.viewlets) == 1

    # A manager should be a valid ILocation
    assert ILocation.providedBy(manager)
    assert manager.__parent__ == view
    assert manager.__name__ == 'leftcolumn'

    # We need a template defined or it fails.
    with pytest.raises(NotImplementedError) as e:
        left.update()
        left.render()

    assert str(e.value) == (
        "<class 'dolmen.viewlet.tests.test_package.WeatherBlock'> : "
        "Provide a template or override the render method")

    # We now define a template
    WeatherBlock.template = generic_template
    left.update()
    assert left.render() == u'A simple template for WeatherBlock.'

    # Let's register another viewlet
    class AnotherBlock(dolmen.viewlet.Viewlet):
        require('zope.ManageContent')
        dolmen.viewlet.slot(LeftColumn)
        template = generic_template

    assert grok_component('another', AnotherBlock)
    left.update()
    assert left.render() == u'A simple template for WeatherBlock.'

    # A viewlet should be a valid ILocation
    viewlet = left.viewlets[0]
    assert ILocation.providedBy(viewlet)
    assert viewlet.__parent__.__class__ == LeftColumn
    assert viewlet.__name__ == 'weatherblock'

    endInteraction()

    newInteraction(Participation(Principal('Master')))

    left.update()
    assert left.render() == (u'A simple template for AnotherBlock.\n'
                      u'A simple template for WeatherBlock.')

    # We should be able to set an order
    dolmen.viewlet.order.set(AnotherBlock, (10, 10))
    left.update()
    assert left.render() == (u'A simple template for WeatherBlock.\n'
                             u'A simple template for AnotherBlock.')

    endInteraction()


    # Let's register a secured viewlet manage
    class Secured(dolmen.viewlet.ViewletManager):
        require('zope.ManageContent')

    assert grok_component('secured', Secured) is True

    newInteraction(Participation(Principal('User')))

    # We instanciate, verify and try to render
    secured = ProxyFactory(Secured(mammoth, request, view))
    with pytest.raises(Unauthorized):
        secured.update()

    endInteraction()


    newInteraction(Participation(Principal('Master')))

    # We instanciate, verify and try to render
    secured.update()
    assert secured.render() == u''

    endInteraction()
def setup_function(module):
    grok("dolmen.forms.viewlet")
    testing.grok_component('index', Index)
    testing.grok_component('manager', Manager)
    testing.grok_component('form', Form)
Esempio n. 32
0
 def setUp(self):
     self.app = self.layer.create_application('app')
     grok_component('Mockup',
                    uvcsite.plugins.tests.fixtures.plugins.MockPlugin)
Esempio n. 33
0
 def setUp(self):
     grok_component('AddressBook', fixtures.addressbook.AddressBook)