home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- __all__ = [
- 'TestBase',
- 'ImplementationChecks',
- 'ProviderChecks',
- 'InstanceImplementationChecks',
- 'makeClassTests',
- 'ClassProvidesChecks',
- 'AdaptiveChecks',
- 'SimpleAdaptiveChecks',
- 'makeMetaClassProvidesTests',
- 'BasicClassProvidesChecks']
- from unittest import TestCase, makeSuite, TestSuite
- from protocols import *
-
- def a1(ob):
- return ('a1', ob)
-
-
- def a2(ob):
- return ('a2', ob)
-
-
- class TestBase(TestCase):
- a1 = staticmethod(a1)
- a2 = staticmethod(a2)
-
- def assertObProvidesOnlyA(self):
- pass
-
-
- def assertObProvidesAandB(self):
- pass
-
-
- def assertAmbiguous(self, a1, a2, d1, d2, ifaces):
-
- try:
- self.declareObAdapts(a2, ifaces)
- except TypeError:
- v = None
-
-
-
- def make(self, klass):
- return klass()
-
-
- def assertObProvidesSubsetOfA(self):
-
- class IC((self.Interface,)):
- advise(protocolIsSubsetOf = [
- self.IA])
- if 'self' in locals():
- del locals()['self']
-
-
-
-
- def setupBases(self, base):
-
- class M1(base):
- pass
-
-
- class M2(base):
- pass
-
- return (M1, M2)
-
-
- def assertM1ProvidesOnlyAandM2ProvidesB(self, M1, M2):
- pass
-
-
- def assertChangingBasesChangesInterface(self, M1, M2, m1, m2):
-
- try:
- M1.__bases__ = (M2,)
- except TypeError:
- pass
-
-
-
- def assertObProvidesABCD(self, IC, ID):
- pass
-
-
- def assertObProvidesCandDnotAorB(self, IC, ID):
- pass
-
-
-
- class ProviderChecks(TestBase):
-
- def declareObImplements(self, ifaces):
- adviseObject(self.ob, provides = ifaces)
-
-
- def declareObAdapts(self, factory, ifaces):
- declareAdapter(factory, provides = ifaces, forObjects = [
- self.ob])
-
-
- def checkSimpleRegister(self):
- self.declareObImplements([
- self.IA])
- self.assertObProvidesOnlyA()
-
-
- def checkImpliedRegister(self):
- self.declareObImplements([
- self.IB])
- self.assertObProvidesAandB()
-
-
-
- class SimpleAdaptiveChecks:
-
- def checkDelayedImplication(self):
- self.declareObImplements([
- self.IA])
- self.assertObProvidesSubsetOfA()
-
-
- def checkIndirectImplication(self):
-
- class IC(self.Interface):
- pass
-
-
- class ID(IC):
- pass
-
- self.declareObImplements([
- ID])
- self.assertObProvidesCandDnotAorB(IC, ID)
- declareAdapter(NO_ADAPTER_NEEDED, provides = [
- self.IB], forProtocols = [
- IC])
- self.assertObProvidesABCD(IC, ID)
-
-
-
- class AdaptiveChecks(SimpleAdaptiveChecks):
-
- def checkAmbiguity(self):
- self.declareObAdapts(self.a1, [
- self.IA])
- self.assertAmbiguous(self.a1, self.a2, 1, 1, [
- self.IA])
-
-
- def checkOverrideDepth(self):
- self.declareObAdapts(self.a1, [
- self.IB])
- self.assertEquals(self.IA(self.ob, None), ('a1', self.ob))
- self.declareObAdapts(self.a2, [
- self.IA])
- self.assertEquals(self.IA(self.ob, None), ('a2', self.ob))
-
-
- def checkComposed(self):
-
- class IC(self.Interface):
- pass
-
- declareAdapter(self.a2, provides = [
- IC], forProtocols = [
- self.IA])
- self.declareObAdapts(self.a1, [
- self.IA])
- self.assertEqual(IC(self.ob, None), ('a2', ('a1', self.ob)))
-
-
- def checkLateDefinition(self):
- self.declareObAdapts(DOES_NOT_SUPPORT, [
- self.IA])
- self.declareObImplements([
- self.IA])
- self.declareObAdapts(DOES_NOT_SUPPORT, [
- self.IA])
-
-
-
- class InstanceImplementationChecks(TestBase):
-
- def declareObImplements(self, ifaces):
- declareImplementation(self.klass, ifaces)
-
-
- def declareObAdapts(self, factory, ifaces):
- declareAdapter(factory, provides = ifaces, forTypes = [
- self.klass])
-
-
- def checkSimpleRegister(self):
- self.declareObImplements([
- self.IA])
- self.assertObProvidesOnlyA()
-
-
- def checkImpliedRegister(self):
- self.declareObImplements([
- self.IB])
- self.assertObProvidesAandB()
-
-
-
- class ImplementationChecks(InstanceImplementationChecks):
-
- def checkNoClassPassThru(self):
- self.declareObImplements([
- self.IA])
-
-
- def checkInheritedDeclaration(self):
- self.declareObImplements([
- self.IB])
-
- class Sub(self.klass):
- pass
-
- inst = self.make(Sub)
-
-
- def checkRejectInheritanceAndReplace(self):
- self.declareObImplements([
- self.IB])
-
- class Sub((self.klass,)):
- advise(instancesDoNotProvide = [
- self.IB])
-
- inst = self.make(Sub)
- declareImplementation(Sub, instancesProvide = [
- self.IB])
-
-
-
- class BasicClassProvidesChecks:
-
- def checkNoInstancePassThru(self):
- inst = self.ob()
- adviseObject(self.ob, provides = [
- self.IA])
-
-
- def checkChangingBases(self):
- (M1, M2) = self.setupBases(self.ob)
- adviseObject(M1, provides = [
- self.IA])
- adviseObject(M2, provides = [
- self.IB])
- self.assertM1ProvidesOnlyAandM2ProvidesB(M1, M2)
- self.assertChangingBasesChangesInterface(M1, M2, M1, M2)
-
-
-
- class ClassProvidesChecks(BasicClassProvidesChecks):
-
- def checkInheritedDeclaration(self):
-
- class Sub(self.ob):
- pass
-
- adviseObject(self.ob, provides = [
- self.IB])
-
-
- def checkRejectInheritanceAndReplace(self):
- adviseObject(self.ob, provides = [
- self.IB])
-
- class Sub((self.ob,)):
- advise(classDoesNotProvide = [
- self.IB])
-
- adviseObject(Sub, provides = [
- self.IB])
-
-
-
- def makeInstanceTests(base, Picklable, NewStyle):
-
- class AdviseFunction((base,)):
- __module__ = base.__module__
-
- def setUp(self):
-
- def aFunc(foo, bar):
- pass
-
- self.ob = aFunc
-
-
- AdviseFunction.__name__ = base.__name__ + '.AdviseFunction'
-
- class AdviseModule((base,)):
- __module__ = base.__module__
-
- def setUp(self):
- ModuleType = ModuleType
- import types
- self.ob = ModuleType('x')
-
-
- AdviseModule.__name__ = base.__name__ + '.AdviseModule'
-
- class AdviseInstance('AdviseInstance', (base,)):
- __module__ = base.__module__
-
- def setUp(self):
- self.ob = Picklable()
-
-
- def checkPickling(self):
- loads = loads
- dumps = dumps
- import cPickle
- adviseObject(self.ob, provides = [
- self.IPure])
- newOb = loads(dumps(self.ob))
-
-
- AdviseInstance.__name__ = base.__name__ + '.AdviseInstance'
-
- class AdviseNewInstance('AdviseNewInstance', (AdviseInstance,)):
- __module__ = base.__module__
-
- def setUp(self):
- self.ob = NewStyle()
-
-
- AdviseNewInstance.__name__ = base.__name__ + '.AdviseNewInstance'
- return (AdviseFunction, AdviseModule, AdviseInstance, AdviseNewInstance)
-
-
- def makeClassProvidesTests(base):
-
- class AdviseClass(base):
-
- def setUp(self):
-
- class Classic:
- pass
-
- self.ob = Classic
-
-
-
- class AdviseType(AdviseClass):
-
- def setUp(self):
-
- class Class(object):
- pass
-
- self.ob = Class
-
-
- return (AdviseClass, AdviseType)
-
-
- def makeMetaClassProvidesTests(base):
-
- class AdviseMixinClass(base):
-
- def setUp(self):
-
- class Meta(ProviderMixin, type):
- pass
-
-
- class Test((object,)):
- __metaclass__ = Meta
-
- self.ob = Test
-
-
-
- class AdviseMixinMultiMeta2(base):
-
- def setUp(self):
-
- class Meta(ProviderMixin, type):
- pass
-
-
- class Test((ProviderMixin, object)):
- __metaclass__ = Meta
-
- self.ob = Test
-
-
- return (AdviseMixinClass, AdviseMixinMultiMeta2)
-
-
- def makeClassTests(base):
-
- class TestClassic((base,)):
- __module__ = base.__module__
-
- def setUp(self):
-
- class Classic:
- pass
-
- self.klass = Classic
- self.ob = Classic()
-
-
- TestClassic.__name__ = base.__name__ + '.TestClassic'
-
- class TestBuiltin((base,)):
- __module__ = base.__module__
-
- def setUp(self):
-
- class Newstyle(list):
- __slots__ = ()
-
- self.klass = Newstyle
- self.ob = Newstyle()
-
-
- TestBuiltin.__name__ = base.__name__ + '.TestBuiltin'
-
- class TestMetaclass((base,)):
- __module__ = base.__module__
-
- def setUp(self):
-
- class Meta(type):
- pass
-
- self.klass = Meta
-
- class Base((object,)):
- __metaclass__ = Meta
-
- self.ob = Base
-
-
- def make(self, klass):
- return klass('Dummy', (object,), { })
-
-
- TestMetaclass.__name__ = base.__name__ + '.TestMetaclass'
-
- class TestMetaInstance((base,)):
- __module__ = base.__module__
-
- def setUp(self):
-
- class Meta(type):
- pass
-
-
- class Base((object,)):
- __metaclass__ = Meta
-
- self.klass = Base
- self.ob = Base()
-
-
- TestMetaInstance.__name__ = base.__name__ + '.TestMetaInstance'
- return (TestClassic, TestBuiltin, TestMetaclass, TestMetaInstance)
-
-