[Zope-Checkins] SVN: Zope/trunk/src/OFS/tests/testHistory.py Use a simple stub class instead of a PythonScripts to test OFS.Historical
Hanno Schlichting
hannosch at hannosch.eu
Sat Jul 10 06:52:54 EDT 2010
Log message for revision 114497:
Use a simple stub class instead of a PythonScripts to test OFS.Historical
Changed:
U Zope/trunk/src/OFS/tests/testHistory.py
-=-
Modified: Zope/trunk/src/OFS/tests/testHistory.py
===================================================================
--- Zope/trunk/src/OFS/tests/testHistory.py 2010-07-10 10:47:12 UTC (rev 114496)
+++ Zope/trunk/src/OFS/tests/testHistory.py 2010-07-10 10:52:54 UTC (rev 114497)
@@ -1,5 +1,4 @@
import unittest
-import Testing
import Zope2
Zope2.startup()
@@ -9,37 +8,45 @@
import tempfile
import ZODB
+
from OFS.Application import Application
-from Products.PythonScripts.PythonScript import manage_addPythonScript
+from OFS.History import Historical
+from OFS.SimpleItem import SimpleItem
from ZODB.FileStorage import FileStorage
+
+class HistoryItem(SimpleItem, Historical):
+ pass
+
+
class HistoryTests(unittest.TestCase):
def setUp(self):
# set up a zodb
# we can't use DemoStorage here 'cos it doesn't support History
self.dir = tempfile.mkdtemp()
- self.s = FileStorage(os.path.join(self.dir,'testHistory.fs'),create=True)
+ fs_path = os.path.join(self.dir, 'testHistory.fs')
+ self.s = FileStorage(fs_path, create=True)
self.connection = ZODB.DB(self.s).open()
r = self.connection.root()
a = Application()
r['Application'] = a
self.root = a
# create a python script
- manage_addPythonScript(a,'test')
- self.ps = ps = a.test
+ a['test'] = HistoryItem()
+ self.hi = hi = a.test
# commit some changes
- ps.write('return 1')
+ hi.title = 'First title'
t = transaction.get()
# undo note made by Application instantiation above.
- t.description = None
+ t.description = None
t.note('Change 1')
t.commit()
- ps.write('return 2')
+ hi.title = 'Second title'
t = transaction.get()
t.note('Change 2')
t.commit()
- ps.write('return 3')
+ hi.title = 'Third title'
t = transaction.get()
t.note('Change 3')
t.commit()
@@ -53,9 +60,9 @@
del self.connection
del self.s
shutil.rmtree(self.dir)
-
+
def test_manage_change_history(self):
- r = self.ps.manage_change_history()
+ r = self.hi.manage_change_history()
self.assertEqual(len(r),3) # three transactions
for i in range(3):
entry = r[i]
@@ -63,11 +70,11 @@
self.assertEqual(len(entry.keys()),6)
# the transactions are in newest-first order
self.assertEqual(entry['description'],'Change %i' % (3-i))
- self.failUnless('key' in entry)
+ self.failUnless('key' in entry)
# lets not assume the size will stay the same forever
- self.failUnless('size' in entry)
- self.failUnless('tid' in entry)
- self.failUnless('time' in entry)
+ self.failUnless('size' in entry)
+ self.failUnless('tid' in entry)
+ self.failUnless('time' in entry)
if i:
# check times are increasing
self.failUnless(entry['time']<r[i-1]['time'])
@@ -75,22 +82,19 @@
def test_manage_historyCopy(self):
# we assume this works 'cos it's tested above
- r = self.ps.manage_change_history()
+ r = self.hi.manage_change_history()
# now we do the copy
- self.ps.manage_historyCopy(
+ self.hi.manage_historyCopy(
keys=[r[2]['key']]
)
# do a commit, just like ZPublisher would
transaction.commit()
# check the body is as it should be, we assume (hopefully not foolishly)
# that all other attributes will behave the same
- self.assertEqual(self.ps._body,
- 'return 1\n')
-
+ self.assertEqual(self.hi.title,
+ 'First title')
+
def test_suite():
suite = unittest.TestSuite()
- suite.addTest( unittest.makeSuite( HistoryTests ) )
+ suite.addTest(unittest.makeSuite(HistoryTests))
return suite
-
-if __name__ == '__main__':
- unittest.main(defaultTest='test_suite')
More information about the Zope-Checkins
mailing list