Commit 95e5e559 authored by 's avatar

save start on 2.1 unit tests for EC, Acquisition

parent 8447707c
"""Acquisition unit tests."""
import unittest, string
from operator import truth
from testExtensionClass import MagicMethodTests
from Acquisition import Implicit
from Acquisition import Explicit
from operator import truth
import unittest, string
class AcquisitionTests (unittest.TestCase):
def testImplicitTruthSemanticsDefault(self):
"""Check wrapper truth semantics against those of python objects
without __len__ or __nonzero__ definitions."""
class PyObject:
# plain object, no __len__ or __nonzero__
pass
class AqObject(Implicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
def testImplicitTruthSemanticsWithNonZero(self):
"""Check wrapper truth semantics against those of python objects
with __nonzero__ defined."""
class PyObject:
def __nonzero__(self):
return 0
class AqObject(Implicit, PyObject):
pass
object = PyObject()
assert truth(object) == 0
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 0
class PyObject:
def __nonzero__(self):
return 1
class AqObject(Implicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
def testImplicitTruthSemanticsWithLen(self):
"""Check wrapper truth semantics against those of python objects
with __len__ defined."""
class PyObject:
def __len__(self):
return 0
class AqObject(Implicit, PyObject):
pass
object = PyObject()
assert truth(object) == 0
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 0
class PyObject:
def __len__(self):
return 1
class AqObject(Implicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
def testImplicitTruthSemanticsWithNonZeroAndLen(self):
"""Check wrapper truth semantics against those of python objects
with __nonzero__ and __len__ defined."""
class PyObject:
def __nonzero__(self):
return 0
def __len__(self):
return 1
class AqObject(Implicit, PyObject):
pass
object = PyObject()
assert truth(object) == 0
assert len(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 0
assert len(object) == 1
class PyObject:
def __nonzero__(self):
return 1
def __len__(self):
return 0
class AqObject(Implicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
assert len(object) == 0
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
assert len(object) == 0
def testExplicitTruthSemanticsDefault(self):
"""Check wrapper truth semantics against those of python objects
without __len__ or __nonzero__ definitions."""
class PyObject:
# plain object, no __len__ or __nonzero__
pass
class AqObject(Explicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
def testExplicitTruthSemanticsWithNonZero(self):
"""Check wrapper truth semantics against those of python objects
with __nonzero__ defined."""
class PyObject:
def __nonzero__(self):
return 0
class AqObject(Explicit, PyObject):
pass
object = PyObject()
assert truth(object) == 0
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 0
class PyObject:
def __nonzero__(self):
return 1
class AqObject(Explicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
def testExplicitTruthSemanticsWithLen(self):
"""Check wrapper truth semantics against those of python objects
with __len__ defined."""
class PyObject:
def __len__(self):
return 0
class AqObject(Explicit, PyObject):
pass
object = PyObject()
assert truth(object) == 0
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 0
class PyObject:
def __len__(self):
return 1
class AqObject(Explicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
def testExplicitTruthSemanticsWithNonZeroAndLen(self):
"""Check wrapper truth semantics against those of python objects
with __nonzero__ and __len__ defined."""
class PyObject:
def __nonzero__(self):
return 0
class ImplicitWrapperTests(MagicMethodTests):
"""Implicit acquisition wrapper tests."""
def __len__(self):
return 1
BaseClass = Implicit
class AqObject(Explicit, PyObject):
def fixup_inst(self, object):
"""Create a simple acquisition chain."""
class GenericWrapper(self.BaseClass):
pass
object = PyObject()
assert truth(object) == 0
assert len(object) == 1
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 0
assert len(object) == 1
parent = GenericWrapper()
parent.object = object
return parent.object
class PyObject:
def __nonzero__(self):
return 1
class ExplicitWrapperTests(ImplicitWrapperTests):
"""Explicit acquisition wrapper tests."""
def __len__(self):
return 0
class AqObject(Explicit, PyObject):
pass
object = PyObject()
assert truth(object) == 1
assert len(object) == 0
parent = AqObject()
parent.object = AqObject()
object = parent.object
assert truth(object) == 1
assert len(object) == 0
BaseClass = Explicit
def test_suite():
suite_01 = unittest.makeSuite(ImplicitWrapperTests)
suite_02 = unittest.makeSuite(ExplicitWrapperTests)
return unittest.TestSuite((suite_01, suite_02))
def main():
unittest.TextTestRunner().run(test_suite())
def test_suite():
return unittest.makeSuite(AcquisitionTests)
if __name__ == '__main__':
main()
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment