[Checkins] SVN: persistent/trunk/ Zap legacy tests (we have coverage in test_persistent.
Tres Seaver
cvs-admin at zope.org
Fri Jun 29 05:20:06 UTC 2012
Log message for revision 127186:
Zap legacy tests (we have coverage in test_persistent.
Changed:
_U persistent/trunk/
D persistent/trunk/persistent/tests/testPersistent.py
-=-
Deleted: persistent/trunk/persistent/tests/testPersistent.py
===================================================================
--- persistent/trunk/persistent/tests/testPersistent.py 2012-06-29 05:19:59 UTC (rev 127185)
+++ persistent/trunk/persistent/tests/testPersistent.py 2012-06-29 05:20:03 UTC (rev 127186)
@@ -1,351 +0,0 @@
-#############################################################################
-#
-# Copyright (c) 2003 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-import unittest
-
-Picklable = None # avoid global import of Persistent; updated later
-
-class _Base(object):
-
- def _makeOne(self):
- class P(self._getTargetClass()):
- pass
-
- return P()
-
- def _makeJar(self):
- from persistent.tests.utils import ResettingJar
- jar = ResettingJar()
- jar.cache = jar._cache = self._makeCache(jar)
- return jar
-
- def test_oid_initial_value(self):
- obj = self._makeOne()
- self.assertEqual(obj._p_oid, None)
-
- def test_oid_mutable_and_deletable_when_no_jar(self):
- from persistent._compat import _b
- OID = _b('\x01' * 8)
- obj = self._makeOne()
- obj._p_oid = OID
- self.assertEqual(obj._p_oid, OID)
- del obj._p_oid
- self.assertEqual(obj._p_oid, None)
-
- def test_oid_immutable_when_in_jar(self):
- from persistent._compat import _b
- OID = _b('\x01' * 8)
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- # Can't change oid of cache object.
- def deloid():
- del obj._p_oid
- self.assertRaises(ValueError, deloid)
-
- def setoid():
- obj._p_oid = OID
- self.assertRaises(ValueError, setoid)
-
- # The value returned for _p_changed can be one of:
- # 0 -- it is not changed
- # 1 -- it is changed
- # None -- it is a ghost
-
- def test_change_via_setattr(self):
- from persistent import CHANGED
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- obj.x = 1
-
- self.assertEqual(obj._p_changed, 1)
- self.assertEqual(obj._p_state, CHANGED)
- self.assertTrue(obj in jar.registered)
-
- def test_setattr_then_mark_uptodate(self):
- from persistent import UPTODATE
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- obj.x = 1
- obj._p_changed = 0
-
- self.assertEqual(obj._p_changed, 0)
- self.assertEqual(obj._p_state, UPTODATE)
-
- def test_set_changed_directly(self):
- from persistent import CHANGED
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- obj._p_changed = 1
-
- self.assertEqual(obj._p_changed, 1)
- self.assertEqual(obj._p_state, CHANGED)
- self.assertTrue(obj in jar.registered)
-
- def test_cant_ghostify_if_changed(self):
- from persistent import CHANGED
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- # setting obj._p_changed to None ghostifies if the
- # object is in the up-to-date state, but not otherwise.
- obj.x = 1
- obj._p_changed = None
-
- self.assertEqual(obj._p_changed, 1)
- self.assertEqual(obj._p_state, CHANGED)
-
- def test_can_ghostify_if_uptodate(self):
- from persistent import GHOST
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- obj.x = 1
- obj._p_changed = 0
- obj._p_changed = None
-
- self.assertEqual(obj._p_changed, None)
- self.assertEqual(obj._p_state, GHOST)
-
- def test_can_ghostify_if_changed_but_del__p_changed(self):
- from persistent import GHOST
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- # You can transition directly from modified to ghost if
- # you delete the _p_changed attribute.
- obj.x = 1
- del obj._p_changed
-
- self.assertEqual(obj._p_changed, None)
- self.assertEqual(obj._p_state, GHOST)
-
- def test__p_state_immutable(self):
- from persistent import CHANGED
- from persistent import GHOST
- from persistent import STICKY
- from persistent import UPTODATE
- # make sure we can't write to _p_state; we don't want yet
- # another way to change state!
- obj = self._makeOne()
- def setstate(value):
- obj._p_state = value
-
- self.assertRaises(Exception, setstate, GHOST)
- self.assertRaises(Exception, setstate, UPTODATE)
- self.assertRaises(Exception, setstate, CHANGED)
- self.assertRaises(Exception, setstate, STICKY)
-
- def test_invalidate(self):
- from persistent import GHOST
- from persistent import UPTODATE
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
- obj._p_activate()
-
- self.assertEqual(obj._p_changed, 0)
- self.assertEqual(obj._p_state, UPTODATE)
-
- obj._p_invalidate()
-
- self.assertEqual(obj._p_changed, None)
- self.assertEqual(obj._p_state, GHOST)
-
- def test_invalidate_activate_invalidate(self):
- from persistent import GHOST
- obj = self._makeOne()
- jar = self._makeJar()
- jar.add(obj)
-
- obj._p_invalidate()
- obj._p_activate()
- obj.x = 1
- obj._p_invalidate()
-
- self.assertEqual(obj._p_changed, None)
- self.assertEqual(obj._p_state, GHOST)
-
- def test_initial_serial(self):
- from persistent.timestamp import _ZERO
- obj = self._makeOne()
- self.assertEqual(obj._p_serial, _ZERO)
-
- def test_setting_serial_w_invalid_types_raises(self):
- # Serial must be an 8-digit string
- from persistent._compat import _u
- obj = self._makeOne()
-
- def set(val):
- obj._p_serial = val
-
- self.assertRaises(ValueError, set, 1)
- self.assertRaises(ValueError, set, "0123")
- self.assertRaises(ValueError, set, "012345678")
- self.assertRaises(ValueError, set, _u("01234567"))
-
- def test_del_serial_returns_to_initial(self):
- from persistent.timestamp import _ZERO
- from persistent._compat import _b
- obj = self._makeOne()
- obj._p_serial = _b("01234567")
- del obj._p_serial
- self.assertEqual(obj._p_serial, _ZERO)
-
- def test_initial_mtime(self):
- obj = self._makeOne()
- self.assertEqual(obj._p_mtime, None)
-
- def test_setting_serial_sets_mtime_to_now(self):
- from persistent.timestamp import TimeStamp
-
- obj = self._makeOne()
- ts = TimeStamp(2011, 2, 16, 14, 37, 22.0)
-
- obj._p_serial = ts.raw()
-
- self.assertEqual(obj._p_mtime, ts.timeTime())
- self.assertTrue(isinstance(obj._p_mtime, float))
-
- def test_pickle_unpickle(self):
- import pickle
- from persistent import Persistent
-
- # see above: class must be at module scope to be pickled.
- global Picklable
- class Picklable(Persistent):
- pass
-
- obj = Picklable()
- obj.attr = "test"
-
- s = pickle.dumps(obj)
- obj2 = pickle.loads(s)
-
- self.assertEqual(obj.attr, obj2.attr)
-
- def test___getattr__(self):
- from persistent import CHANGED
- from persistent import Persistent
-
- class H1(Persistent):
-
- def __init__(self):
- self.n = 0
-
- def __getattr__(self, attr):
- self.n += 1
- return self.n
-
- obj = H1()
- self.assertEqual(obj.larry, 1)
- self.assertEqual(obj.curly, 2)
- self.assertEqual(obj.moe, 3)
-
- jar = self._makeJar()
- jar.add(obj)
- obj._p_invalidate()
-
- # The simple Jar used for testing re-initializes the object.
- self.assertEqual(obj.larry, 1)
-
- # The getattr hook modified the object, so it should now be
- # in the changed state.
- self.assertEqual(obj._p_changed, 1)
- self.assertEqual(obj._p_state, CHANGED)
- self.assertEqual(obj.curly, 2)
- self.assertEqual(obj.moe, 3)
-
- def test___getattribute__(self):
- from persistent import CHANGED
- from persistent import Persistent
-
- class H2(Persistent):
-
- def __init__(self):
- self.n = 0
-
- def __getattribute__(self, attr):
- supergetattr = super(H2, self).__getattribute__
- try:
- return supergetattr(attr)
- except AttributeError:
- n = supergetattr("n")
- self.n = n + 1
- return n + 1
-
- obj = H2()
- self.assertEqual(obj.larry, 1)
- self.assertEqual(obj.curly, 2)
- self.assertEqual(obj.moe, 3)
-
- jar = self._makeJar()
- jar.add(obj)
- obj._p_invalidate()
-
- # The simple Jar used for testing re-initializes the object.
- self.assertEqual(obj.larry, 1)
-
- # The getattr hook modified the object, so it should now be
- # in the changed state.
- self.assertEqual(obj._p_changed, 1)
- self.assertEqual(obj._p_state, CHANGED)
- self.assertEqual(obj.curly, 2)
- self.assertEqual(obj.moe, 3)
-
- # TODO: Need to decide how __setattr__ and __delattr__ should work,
- # then write tests.
-
-class PythonPersistentTests(unittest.TestCase, _Base):
-
- def _getTargetClass(self):
- from persistent.persistence import Persistent
- return Persistent
-
- def _makeCache(self, jar):
- from persistent.picklecache import PickleCache
- return PickleCache(jar)
-
-_add_to_suite = [PythonPersistentTests]
-
-try:
- import persistent.cPersistence
-except ImportError:
- pass
-else:
- class CPersistentTests(unittest.TestCase, _Base):
-
- def _getTargetClass(self):
- from persistent.cPersistence import Persistent
- return Persistent
-
- def _makeCache(self, jar):
- from persistent.cPickleCache import PickleCache
- return PickleCache(jar)
-
- _add_to_suite.append(CPersistentTests)
-
-def test_suite():
- return unittest.TestSuite((
- [unittest.makeSuite(x) for x in _add_to_suite]
- ))
More information about the checkins
mailing list