def test_multiple_set_schema(self): self.assertEqual(queryInterface(PREFIX+"S"), None) self.assertEqual(queryInterface(PREFIX+"S2"), None) declaration = ('''<content class="%s"> <require permission="%s" set_schema="%s %s"/> </content>''' % (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 testImplements(self): self.assertEqual(queryInterface( "zope.app.component.tests.exampleclass.IExample"), None) f = configfile(""" <content class="zope.app.component.tests.exampleclass.ExampleClass"> <implements interface="zope.app.component.tests.exampleclass.IExample" /> </content> """) xmlconfig(f) self.failUnless(IExample.implementedBy(ExampleClass)) self.assertEqual(queryInterface( "zope.app.component.tests.exampleclass.IExample"), IExample)
def testSimpleInterface(self): self.assertEqual(queryInterface(PREFIX+"I"), None) declaration = ('''<content class="%s"> <require permission="%s" interface="%s"/> </content>''' % (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 = ('''<content class="%s"> <require permission="%s" interface=" %s %s "/> </content>''' % (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): """See zope.app.interfaces.container.IReadContainer""" 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