def test_multiple_set_schema(self): self.assertEqual(queryInterface(PREFIX + "S"), None) self.assertEqual(queryInterface(PREFIX + "S2"), None) declaration = """<class class="%s"> <require permission="%s" set_schema="%s %s"/> </class>""" % ( PREFIX + "test_class", P1, PREFIX + "S", PREFIX + "S2", ) apply_declaration(module.template_bracket % declaration) self.assertEqual(queryInterface(PREFIX + "S"), module.S) self.assertEqual(queryInterface(PREFIX + "S2"), module.S2) checker = selectChecker(module.test_instance) self.assertEqual(checker.setattr_permission_id("m1"), None) self.assertEqual(checker.setattr_permission_id("m2"), None) self.assertEqual(checker.setattr_permission_id("m3"), None) self.assertEqual(checker.setattr_permission_id("foo"), P1) self.assertEqual(checker.setattr_permission_id("bar"), P1) self.assertEqual(checker.setattr_permission_id("foo2"), P1) self.assertEqual(checker.setattr_permission_id("bar2"), P1) self.assertEqual(checker.setattr_permission_id("baro"), None)
def test_multiple_set_schema(self): self.assertEqual(queryInterface(PREFIX+"S"), None) self.assertEqual(queryInterface(PREFIX+"S2"), None) declaration = ('''<class class="%s"> <require permission="%s" set_schema="%s %s"/> </class>''' % (PREFIX+"test_class", P1, PREFIX+"S", PREFIX+"S2")) apply_declaration(module.template_bracket % declaration) self.assertEqual(queryInterface(PREFIX+"S"), module.S) self.assertEqual(queryInterface(PREFIX+"S2"), module.S2) checker = selectChecker(module.test_instance) self.assertEqual(checker.setattr_permission_id('m1'), None) self.assertEqual(checker.setattr_permission_id('m2'), None) self.assertEqual(checker.setattr_permission_id('m3'), None) self.assertEqual(checker.setattr_permission_id('foo'), P1) self.assertEqual(checker.setattr_permission_id('bar'), P1) self.assertEqual(checker.setattr_permission_id('foo2'), P1) self.assertEqual(checker.setattr_permission_id('bar2'), P1) self.assertEqual(checker.setattr_permission_id('baro'), None)
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 test_multiple_set_schema(self): from zope.component.interface import queryInterface from zope.security.checker import selectChecker from zope.security.tests import module self.assertEqual(queryInterface(_pfx("S")), None) self.assertEqual(queryInterface(_pfx("S2")), None) declaration = ('''<class class="%s"> <require permission="%s" set_schema="%s %s"/> </class>''' % (_pfx("test_class"), P1, _pfx("S"), _pfx("S2"))) apply_declaration(module.template_bracket % declaration) self.assertEqual(queryInterface(_pfx("S")), module.S) self.assertEqual(queryInterface(_pfx("S2")), module.S2) checker = selectChecker(module.test_instance) self.assertEqual(checker.setattr_permission_id('m1'), None) self.assertEqual(checker.setattr_permission_id('m2'), None) self.assertEqual(checker.setattr_permission_id('m3'), None) self.assertEqual(checker.setattr_permission_id('foo'), P1) self.assertEqual(checker.setattr_permission_id('bar'), P1) self.assertEqual(checker.setattr_permission_id('foo2'), P1) self.assertEqual(checker.setattr_permission_id('bar2'), P1) self.assertEqual(checker.setattr_permission_id('baro'), None)
def test_multiple_set_schema(self): self.assertEqual(queryInterface(PREFIX + "S"), None) self.assertEqual(queryInterface(PREFIX + "S2"), None) declaration = ( '''<class class="%s"> <require permission="%s" set_schema="%s %s"/> </class>''' % (PREFIX + "test_class", P1, PREFIX + "S", PREFIX + "S2")) apply_declaration(module.template_bracket % declaration) self.assertEqual(queryInterface(PREFIX + "S"), module.S) self.assertEqual(queryInterface(PREFIX + "S2"), module.S2) checker = selectChecker(module.test_instance) self.assertEqual(checker.setattr_permission_id('m1'), None) self.assertEqual(checker.setattr_permission_id('m2'), None) self.assertEqual(checker.setattr_permission_id('m3'), None) self.assertEqual(checker.setattr_permission_id('foo'), P1) self.assertEqual(checker.setattr_permission_id('bar'), P1) self.assertEqual(checker.setattr_permission_id('foo2'), P1) self.assertEqual(checker.setattr_permission_id('bar2'), P1) self.assertEqual(checker.setattr_permission_id('baro'), None)
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 testImplements(self): self.assertEqual(queryInterface( "zope.security.tests.exampleclass.IExample"), None) f = configfile(""" <class class="zope.security.tests.exampleclass.ExampleClass"> <implements interface="zope.security.tests.exampleclass.IExample" /> </class> """) xmlconfig(f) self.failUnless(IExample.implementedBy(ExampleClass)) self.assertEqual(queryInterface( "zope.security.tests.exampleclass.IExample"), IExample)
def testSimpleInterface(self): self.assertEqual(queryInterface(PREFIX + "I"), None) declaration = ('''<class class="%s"> <require permission="%s" interface="%s"/> </class>''' % (PREFIX + "test_class", P1, PREFIX + "I")) # m1 and m2 are in the interface, so should be set, and m3 should not: self.assertDeclaration(declaration, m1P=P1, m2P=P1) # Make sure we know about the interfaces self.assertEqual(queryInterface(PREFIX + "I"), module.I)
def testSimpleInterface(self): from zope.component.interface import queryInterface from zope.security.tests import module self.assertEqual(queryInterface(_pfx("I")), None) declaration = ('''<class class="%s"> <require permission="%s" interface="%s"/> </class>''' % (_pfx("test_class"), P1, _pfx("I"))) # m1 and m2 are in the interface, so should be set, and m3 should not: self.assertDeclaration(declaration, m1P=P1, m2P=P1) # Make sure we know about the interfaces self.assertEqual(queryInterface(_pfx("I")), module.I)
def testSimpleInterface(self): self.assertEqual(queryInterface(PREFIX+"I"), None) declaration = ('''<class class="%s"> <require permission="%s" interface="%s"/> </class>''' % (PREFIX+"test_class", P1, PREFIX+"I")) # m1 and m2 are in the interface, so should be set, and m3 should not: self.assertDeclaration(declaration, m1P=P1, m2P=P1) # Make sure we know about the interfaces self.assertEqual(queryInterface(PREFIX+"I"), module.I)
def testMultipleInterface(self): self.assertEqual(queryInterface(PREFIX+"I3"), None) self.assertEqual(queryInterface(PREFIX+"I4"), None) declaration = ('''<class class="%s"> <require permission="%s" interface=" %s %s "/> </class>''' % (PREFIX+"test_class", P1, PREFIX+"I3", PREFIX+"I4")) self.assertDeclaration(declaration, m3P=P1, m2P=P1) # Make sure we know about the interfaces self.assertEqual(queryInterface(PREFIX+"I3"), module.I3) self.assertEqual(queryInterface(PREFIX+"I4"), module.I4)
def testMultipleInterface(self): from zope.component.interface import queryInterface from zope.security.tests import module self.assertEqual(queryInterface(_pfx("I3")), None) self.assertEqual(queryInterface(_pfx("I4")), None) declaration = ('''<class class="%s"> <require permission="%s" interface=" %s %s "/> </class>''' % (_pfx("test_class"), P1, _pfx("I3"), _pfx("I4"))) self.assertDeclaration(declaration, m3P=P1, m2P=P1) # Make sure we know about the interfaces self.assertEqual(queryInterface(_pfx("I3")), module.I3) self.assertEqual(queryInterface(_pfx("I4")), module.I4)
def testMultipleInterface(self): self.assertEqual(queryInterface(PREFIX + "I3"), None) self.assertEqual(queryInterface(PREFIX + "I4"), None) declaration = ( '''<class class="%s"> <require permission="%s" interface=" %s %s "/> </class>''' % (PREFIX + "test_class", P1, PREFIX + "I3", PREFIX + "I4")) self.assertDeclaration(declaration, m3P=P1, m2P=P1) # Make sure we know about the interfaces self.assertEqual(queryInterface(PREFIX + "I3"), module.I3) self.assertEqual(queryInterface(PREFIX + "I4"), module.I4)
def get(self, key, default=None): iface = queryInterface(key, default) if iface is default: # Yeah, we find more items than we claim to have! This way we can # handle all interfaces using this module. :-) parts = key.split('.') try: mod = __import__('.'.join(parts[:-1]), {}, {}, ('*',)) except ImportError: iface = default else: iface = getattr(mod, parts[-1], default) if not iface is default: iface = LocationProxy(iface, self, key) return iface
def _callFUT(self, *args, **kw): from zope.component.interface import queryInterface return queryInterface(*args, **kw)