comparison test/test_db.py @ 1492:2fc7d4a8c9e7

fixed sqlite rollback/caching bug [SF#689383]
author Richard Jones <richard@users.sourceforge.net>
date Thu, 06 Mar 2003 06:03:51 +0000
parents f5f60c75a458
children c101d2ff5a20
comparison
equal deleted inserted replaced
1490:0638abfa13ab 1492:2fc7d4a8c9e7
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
17 # 17 #
18 # $Id: test_db.py,v 1.73 2003-03-03 21:05:19 richard Exp $ 18 # $Id: test_db.py,v 1.74 2003-03-06 06:03:51 richard Exp $
19 19
20 import unittest, os, shutil, time 20 import unittest, os, shutil, time
21 21
22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \ 22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \
23 Interval, DatabaseError, Boolean, Number, Node 23 Interval, DatabaseError, Boolean, Number, Node
323 self.assertNotEqual(num_files, num_files2) 323 self.assertNotEqual(num_files, num_files2)
324 self.db.file.create(name="test", type="text/plain", content="hi") 324 self.db.file.create(name="test", type="text/plain", content="hi")
325 self.db.rollback() 325 self.db.rollback()
326 self.assertNotEqual(num_files, self.db.numfiles()) 326 self.assertNotEqual(num_files, self.db.numfiles())
327 self.assertEqual(num_files2, self.db.numfiles()) 327 self.assertEqual(num_files2, self.db.numfiles())
328
329 # rollback / cache interaction
330 name1 = self.db.user.get('1', 'username')
331 self.db.user.set('1', username = name1+name1)
332 # get the prop so the info's forced into the cache (if there is one)
333 self.db.user.get('1', 'username')
334 self.db.rollback()
335 name2 = self.db.user.get('1', 'username')
336 self.assertEqual(name1, name2)
328 337
329 def testDestroyNoJournalling(self): 338 def testDestroyNoJournalling(self):
330 self.innerTestDestroy(klass=self.db.session) 339 self.innerTestDestroy(klass=self.db.session)
331 340
332 def testDestroyJournalling(self): 341 def testDestroyJournalling(self):
651 def testFilteringMany(self): 660 def testFilteringMany(self):
652 ae, filt = self.filteringSetup() 661 ae, filt = self.filteringSetup()
653 ae(filt(None, {'nosy': '2', 'status': '1'}, ('+','id'), (None,None)), 662 ae(filt(None, {'nosy': '2', 'status': '1'}, ('+','id'), (None,None)),
654 ['3']) 663 ['3'])
655 664
656 def testNode1(self):
657 node1 = self.db.user.getnode('1')
658 name = node1.username
659 self.db.user.set('1', username = name+name)
660 name1 = node1.username
661 self.db.rollback()
662 node2 = self.db.user.getnode('1')
663 self.assertEqual(name, node1.username)
664 self.assertEqual(name, node2.username)
665
666 def testNode2(self):
667 node1 = Node(self.db.user, '1')
668 name = node1.username
669 self.db.user.set('1', username = name+name)
670 name1 = node1.username
671 self.db.rollback()
672 node2 = Node(self.db.user, '1')
673 self.assertEqual(name, node1.username)
674 self.assertEqual(name, node2.username)
675
676 665
677 # TODO test auditors and reactors 666 # TODO test auditors and reactors
678 667
679 class anydbmReadOnlyDBTestCase(MyTestCase): 668 class anydbmReadOnlyDBTestCase(MyTestCase):
680 def setUp(self): 669 def setUp(self):

Roundup Issue Tracker: http://roundup-tracker.org/