def testMulImplements(self): from zope.component.interface import queryInterface from zope.configuration.xmlconfig import xmlconfig from zope.security.tests.exampleclass import ExampleClass from zope.security.tests.exampleclass import IExample from zope.security.tests.exampleclass import IExample2 self._meta() self.assertEqual( queryInterface("zope.security.tests.exampleclass.IExample"), None) self.assertEqual( queryInterface("zope.security.tests.exampleclass.IExample2"), None) f = configfile(""" <class class="zope.security.tests.exampleclass.ExampleClass"> <implements interface=" zope.security.tests.exampleclass.IExample zope.security.tests.exampleclass.IExample2 " /> </class> """) xmlconfig(f) self.assertTrue(IExample.implementedBy(ExampleClass)) self.assertTrue(IExample2.implementedBy(ExampleClass)) self.assertEqual( queryInterface("zope.security.tests.exampleclass.IExample"), IExample) self.assertEqual( queryInterface("zope.security.tests.exampleclass.IExample2"), IExample2)
def testMulImplements(self): from zope.component.interface import queryInterface from zope.configuration.xmlconfig import xmlconfig from zope.security.tests.exampleclass import ExampleClass from zope.security.tests.exampleclass import IExample from zope.security.tests.exampleclass import IExample2 self._meta() self.assertEqual(queryInterface( "zope.security.tests.exampleclass.IExample"), None) self.assertEqual(queryInterface( "zope.security.tests.exampleclass.IExample2"), None) f = configfile(""" <class class="zope.security.tests.exampleclass.ExampleClass"> <implements interface=" zope.security.tests.exampleclass.IExample zope.security.tests.exampleclass.IExample2 " /> </class> """) xmlconfig(f) self.assertTrue(IExample.implementedBy(ExampleClass)) self.assertTrue(IExample2.implementedBy(ExampleClass)) self.assertEqual(queryInterface( "zope.security.tests.exampleclass.IExample"), IExample) self.assertEqual(queryInterface( "zope.security.tests.exampleclass.IExample2"), IExample2)
def testEmptyDirective(self): from zope.configuration.xmlconfig import xmlconfig self._meta() f = configfile(""" <class class="zope.security.tests.exampleclass.ExampleClass"> </class> """) xmlconfig(f)
def testMimic(self): from zope.configuration.xmlconfig import xmlconfig self._meta() f = configfile(""" <class class="zope.security.tests.exampleclass.ExampleClass"> <require like_class="zope.security.tests.exampleclass.ExampleClass" /> </class> """) xmlconfig(f)
def testAllow(self): from zope.configuration.xmlconfig import xmlconfig self._meta() f = configfile(""" <class class="zope.security.tests.exampleclass.ExampleClass"> <allow attributes="anAttribute anotherAttribute" /> </class> """) xmlconfig(f)
def testRequire(self): from zope.configuration.xmlconfig import xmlconfig self._meta() f = configfile(""" <permission id="zope.View" title="Zope view permission" /> <class class="zope.security.tests.exampleclass.ExampleClass"> <require permission="zope.View" attributes="anAttribute anotherAttribute" /> </class> """) xmlconfig(f)
def defineDirectives(): from zope.security._compat import StringIO from zope.configuration.xmlconfig import XMLConfig from zope.configuration.xmlconfig import xmlconfig import zope.security XMLConfig('meta.zcml', zope.security)() xmlconfig(StringIO("""<configure xmlns='http://namespaces.zope.org/zope' i18n_domain='zope'> <permission id="zope.Extravagant" title="extravagant" /> <permission id="zope.Paltry" title="paltry" /> </configure>"""))
def defineDirectives(): from zope.security._compat import StringIO from zope.configuration.xmlconfig import XMLConfig from zope.configuration.xmlconfig import xmlconfig import zope.security XMLConfig('meta.zcml', zope.security)() xmlconfig( StringIO("""<configure xmlns='http://namespaces.zope.org/zope' i18n_domain='zope'> <permission id="zope.Extravagant" title="extravagant" /> <permission id="zope.Paltry" title="paltry" /> </configure>"""))
def testFactoryPublicPermission(self): from zope.component import getUtility from zope.component.interfaces import IFactory from zope.configuration.xmlconfig import xmlconfig self._meta() f = configfile(""" <class class="zope.security.tests.exampleclass.ExampleClass"> <factory id="test.Example" title="Example content" description="Example description" /> </class> """) xmlconfig(f) factory = getUtility(IFactory, 'test.Example') self.assertTrue(hasattr(factory, '__Security_checker__'))
def testFactory(self): from zope.component import createObject from zope.configuration.xmlconfig import xmlconfig from zope.security import proxy from zope.security.tests import exampleclass self.meta() f = configfile(''' <permission id="zope.Foo" title="Zope Foo Permission" /> <class class="zope.security.tests.exampleclass.ExampleClass"> <factory id="test.Example" title="Example content" description="Example description" /> </class>''') xmlconfig(f) obj = createObject('test.Example') self.assertTrue(proxy.isinstance(obj, exampleclass.ExampleClass))
def testFactory(self): from zope.component import getUtility from zope.component.interfaces import IFactory from zope.configuration.xmlconfig import xmlconfig self._meta() f = configfile(""" <permission id="zope.Foo" title="Zope Foo Permission" /> <class class="zope.security.tests.exampleclass.ExampleClass"> <factory id="test.Example" title="Example content" description="Example description" /> </class> """) xmlconfig(f) factory = getUtility(IFactory, 'test.Example') self.assertEqual(factory.title, "Example content") self.assertEqual(factory.description, "Example description")
def apply_declaration(declaration): '''Apply the xmlconfig machinery.''' from zope.security._compat import StringIO from zope.configuration.xmlconfig import xmlconfig return xmlconfig(StringIO(declaration))
def _callFUT(self, *args, **kw): from zope.configuration.xmlconfig import xmlconfig return xmlconfig(*args, **kw)