[Checkins] SVN: zope.interface/trunk/src/zope/interface/tests/test_interface.py Clean out module-scope imports of MUT, other cruft.
Tres Seaver
tseaver at palladion.com
Wed Dec 16 20:30:55 EST 2009
Log message for revision 106685:
Clean out module-scope imports of MUT, other cruft.
Changed:
U zope.interface/trunk/src/zope/interface/tests/test_interface.py
-=-
Modified: zope.interface/trunk/src/zope/interface/tests/test_interface.py
===================================================================
--- zope.interface/trunk/src/zope/interface/tests/test_interface.py 2009-12-16 23:40:45 UTC (rev 106684)
+++ zope.interface/trunk/src/zope/interface/tests/test_interface.py 2009-12-17 01:30:54 UTC (rev 106685)
@@ -12,27 +12,56 @@
#
##############################################################################
"""Test Interface implementation
-
-$Id$
"""
+import unittest
import sys
-import unittest
-from zope.testing.doctestunit import DocTestSuite
-from zope.interface.tests.unitfixtures import * # hehehe
-from zope.interface.exceptions import BrokenImplementation, Invalid
-from zope.interface import implementedBy, providedBy
-from zope.interface import Interface, directlyProvides, Attribute
-from zope import interface
class InterfaceTests(unittest.TestCase):
+ def _makeDerivedInterface(self):
+ from zope.interface import Interface
+ from zope.interface import Attribute
+ class _I1(Interface):
+
+ a1 = Attribute("This is an attribute")
+
+ def f11():
+ pass
+ def f12():
+ pass
+ f12.optional = 1
+
+ class _I1_(_I1):
+ pass
+
+ class _I1__(_I1_):
+ pass
+
+ class _I2(_I1__):
+ def f21():
+ pass
+ def f22():
+ pass
+ f23 = f22
+
+ return _I2
+
def testInterfaceSetOnAttributes(self):
+ from zope.interface.tests.unitfixtures import FooInterface
self.assertEqual(FooInterface['foobar'].interface,
FooInterface)
self.assertEqual(FooInterface['aMethod'].interface,
FooInterface)
def testClassImplements(self):
+ from zope.interface.tests.unitfixtures import A
+ from zope.interface.tests.unitfixtures import B
+ from zope.interface.tests.unitfixtures import C
+ from zope.interface.tests.unitfixtures import D
+ from zope.interface.tests.unitfixtures import E
+ from zope.interface.tests.unitfixtures import I1
+ from zope.interface.tests.unitfixtures import I2
+ from zope.interface.tests.unitfixtures import IC
self.assert_(IC.implementedBy(C))
self.assert_(I1.implementedBy(A))
@@ -51,6 +80,14 @@
self.assert_(not I2.implementedBy(E))
def testUtil(self):
+ from zope.interface import implementedBy
+ from zope.interface import providedBy
+ from zope.interface.tests.unitfixtures import A
+ from zope.interface.tests.unitfixtures import B
+ from zope.interface.tests.unitfixtures import C
+ from zope.interface.tests.unitfixtures import I1
+ from zope.interface.tests.unitfixtures import I2
+ from zope.interface.tests.unitfixtures import IC
self.assert_(IC in implementedBy(C))
self.assert_(I1 in implementedBy(A))
self.assert_(not I1 in implementedBy(C))
@@ -65,6 +102,14 @@
def testObjectImplements(self):
+ from zope.interface.tests.unitfixtures import A
+ from zope.interface.tests.unitfixtures import B
+ from zope.interface.tests.unitfixtures import C
+ from zope.interface.tests.unitfixtures import D
+ from zope.interface.tests.unitfixtures import E
+ from zope.interface.tests.unitfixtures import I1
+ from zope.interface.tests.unitfixtures import I2
+ from zope.interface.tests.unitfixtures import IC
self.assert_(IC.providedBy(C()))
self.assert_(I1.providedBy(A()))
@@ -83,11 +128,17 @@
self.assert_(not I2.providedBy(E()))
def testDeferredClass(self):
+ from zope.interface.tests.unitfixtures import A
+ from zope.interface.exceptions import BrokenImplementation
a = A()
self.assertRaises(BrokenImplementation, a.ma)
def testInterfaceExtendsInterface(self):
+ from zope.interface.tests.unitfixtures import BazInterface
+ from zope.interface.tests.unitfixtures import BarInterface
+ from zope.interface.tests.unitfixtures import BobInterface
+ from zope.interface.tests.unitfixtures import FunInterface
self.assert_(BazInterface.extends(BobInterface))
self.assert_(BazInterface.extends(BarInterface))
self.assert_(BazInterface.extends(FunInterface))
@@ -98,67 +149,95 @@
def testVerifyImplementation(self):
from zope.interface.verify import verifyClass
+ from zope.interface import Interface
+ from zope.interface.tests.unitfixtures import Foo
+ from zope.interface.tests.unitfixtures import FooInterface
+ from zope.interface.tests.unitfixtures import I1
self.assert_(verifyClass(FooInterface, Foo))
self.assert_(Interface.providedBy(I1))
def test_names(self):
- names = list(_I2.names()); names.sort()
+ iface = self._makeDerivedInterface()
+ names = list(iface.names())
+ names.sort()
self.assertEqual(names, ['f21', 'f22', 'f23'])
- names = list(_I2.names(all=True)); names.sort()
- self.assertEqual(names, ['a1', 'f11', 'f12', 'f21', 'f22', 'f23'])
+ all = list(iface.names(all=True))
+ all.sort()
+ self.assertEqual(all, ['a1', 'f11', 'f12', 'f21', 'f22', 'f23'])
def test_namesAndDescriptions(self):
- names = [nd[0] for nd in _I2.namesAndDescriptions()]; names.sort()
+ iface = self._makeDerivedInterface()
+ names = [nd[0] for nd in iface.namesAndDescriptions()]
+ names.sort()
self.assertEqual(names, ['f21', 'f22', 'f23'])
- names = [nd[0] for nd in _I2.namesAndDescriptions(1)]; names.sort()
+ names = [nd[0] for nd in iface.namesAndDescriptions(1)]
+ names.sort()
self.assertEqual(names, ['a1', 'f11', 'f12', 'f21', 'f22', 'f23'])
- for name, d in _I2.namesAndDescriptions(1):
+ for name, d in iface.namesAndDescriptions(1):
self.assertEqual(name, d.__name__)
def test_getDescriptionFor(self):
- self.assertEqual(_I2.getDescriptionFor('f11').__name__, 'f11')
- self.assertEqual(_I2.getDescriptionFor('f22').__name__, 'f22')
- self.assertEqual(_I2.queryDescriptionFor('f33', self), self)
- self.assertRaises(KeyError, _I2.getDescriptionFor, 'f33')
+ iface = self._makeDerivedInterface()
+ self.assertEqual(iface.getDescriptionFor('f11').__name__, 'f11')
+ self.assertEqual(iface.getDescriptionFor('f22').__name__, 'f22')
+ self.assertEqual(iface.queryDescriptionFor('f33', self), self)
+ self.assertRaises(KeyError, iface.getDescriptionFor, 'f33')
def test___getitem__(self):
- self.assertEqual(_I2['f11'].__name__, 'f11')
- self.assertEqual(_I2['f22'].__name__, 'f22')
- self.assertEqual(_I2.get('f33', self), self)
- self.assertRaises(KeyError, _I2.__getitem__, 'f33')
+ iface = self._makeDerivedInterface()
+ self.assertEqual(iface['f11'].__name__, 'f11')
+ self.assertEqual(iface['f22'].__name__, 'f22')
+ self.assertEqual(iface.get('f33', self), self)
+ self.assertRaises(KeyError, iface.__getitem__, 'f33')
def test___contains__(self):
- self.failUnless('f11' in _I2)
- self.failIf('f33' in _I2)
+ iface = self._makeDerivedInterface()
+ self.failUnless('f11' in iface)
+ self.failIf('f33' in iface)
def test___iter__(self):
- names = list(iter(_I2))
+ iface = self._makeDerivedInterface()
+ names = list(iter(iface))
names.sort()
self.assertEqual(names, ['a1', 'f11', 'f12', 'f21', 'f22', 'f23'])
def testAttr(self):
- description = _I2.getDescriptionFor('a1')
+ iface = self._makeDerivedInterface()
+ description = iface.getDescriptionFor('a1')
self.assertEqual(description.__name__, 'a1')
self.assertEqual(description.__doc__, 'This is an attribute')
def testFunctionAttributes(self):
# Make sure function attributes become tagged values.
- meth = _I1['f12']
- self.assertEqual(meth.getTaggedValue('optional'), 1)
+ from zope.interface import Interface
+ class ITest(Interface):
+ def method():
+ pass
+ method.optional = 1
+ method = ITest['method']
+ self.assertEqual(method.getTaggedValue('optional'), 1)
+
def testInvariant(self):
+ from zope.interface.exceptions import Invalid
+ from zope.interface import directlyProvides
+ from zope.interface.tests.unitfixtures import BarGreaterThanFoo
+ from zope.interface.tests.unitfixtures import ifFooThenBar
+ from zope.interface.tests.unitfixtures import IInvariant
+ from zope.interface.tests.unitfixtures import InvariantC
+ from zope.interface.tests.unitfixtures import ISubInvariant
# set up
o = InvariantC()
directlyProvides(o, IInvariant)
# a helper
- def errorsEqual(self, o, error_len, error_msgs, interface=None):
- if interface is None:
- interface = IInvariant
- self.assertRaises(Invalid, interface.validateInvariants, o)
+ def errorsEqual(self, o, error_len, error_msgs, iface=None):
+ if iface is None:
+ iface = IInvariant
+ self.assertRaises(Invalid, iface.validateInvariants, o)
e = []
try:
- interface.validateInvariants(o, e)
+ iface.validateInvariants(o, e)
except Invalid, error:
self.assertEquals(error.args[0], e)
else:
@@ -239,6 +318,8 @@
IInvariant.setTaggedValue('invariants', old_invariants)
def test___doc___element(self):
+ from zope.interface import Interface
+ from zope.interface import Attribute
class I(Interface):
"xxx"
@@ -254,6 +335,7 @@
self.assertEqual(list(I), ['__doc__'])
def testIssue228(self):
+ from zope.interface import Interface
# Test for http://collector.zope.org/Zope3-dev/228
class I(Interface):
"xxx"
@@ -263,40 +345,29 @@
self.failUnlessRaises(AttributeError, I.providedBy, Bad)
-class _I1(Interface):
- a1 = Attribute("This is an attribute")
+if sys.version_info >= (2, 4):
- def f11(): pass
- def f12(): pass
- f12.optional = 1
-
-class _I1_(_I1): pass
-class _I1__(_I1_): pass
-
-class _I2(_I1__):
- def f21(): pass
- def f22(): pass
- f23 = f22
-
-
-
-if sys.version_info >= (2, 4):
def test_invariant_as_decorator():
"""Invaiants can be deined in line
- >>> class IRange(interface.Interface):
- ... min = interface.Attribute("Lower bound")
- ... max = interface.Attribute("Upper bound")
+ >>> from zope.interface.exceptions import Invalid
+ >>> from zope.interface import Interface
+ >>> from zope.interface import Attribute
+ >>> from zope.interface import implements
+ >>> from zope.interface import invariant
+ >>> class IRange(Interface):
+ ... min = Attribute("Lower bound")
+ ... max = Attribute("Upper bound")
...
- ... @interface.invariant
+ ... @invariant
... def range_invariant(ob):
... if ob.max < ob.min:
... raise Invalid('max < min')
>>> class Range(object):
- ... interface.implements(IRange)
+ ... implements(IRange)
...
... def __init__(self, min, max):
... self.min, self.max = min, max
@@ -311,22 +382,6 @@
"""
-def duplicate_bases_management():
- """
-There was a bug that surfaced when an interface was repeated in
-a set of bases and the bases were changed:
-
- >>> class I(interface.Interface):
- ... pass
-
- >>> class I2(I, I):
- ... pass
-
- >>> I2.__bases__ = (I,)
-
-
-"""
-
def test_suite():
from zope.testing import doctest
suite = unittest.makeSuite(InterfaceTests)
@@ -344,9 +399,3 @@
optionflags=doctest.NORMALIZE_WHITESPACE,
))
return suite
-
-def main():
- unittest.TextTestRunner().run(test_suite())
-
-if __name__=="__main__":
- main()
More information about the checkins
mailing list