comparison test/test_metakit.py @ 2103:8c6c0d40f9c8

more metakit fixes
author Richard Jones <richard@users.sourceforge.net>
date Wed, 24 Mar 2004 05:33:13 +0000
parents c091cacdc505
children adec352e2ce0
comparison
equal deleted inserted replaced
2102:666402433998 2103:8c6c0d40f9c8
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_metakit.py,v 1.4 2004-03-18 01:58:46 richard Exp $ 18 # $Id: test_metakit.py,v 1.5 2004-03-24 05:33:13 richard Exp $
19 import unittest, os, shutil, time, weakref 19 import unittest, os, shutil, time, weakref
20 20
21 from db_test_base import DBTest, ROTest, SchemaTest, ClassicInitTest, config, password 21 from db_test_base import DBTest, ROTest, SchemaTest, ClassicInitTest, config, password
22 22
23 from roundup import backends 23 from roundup import backends
29 29
30 def nuke_database(self): 30 def nuke_database(self):
31 shutil.rmtree(config.DATABASE) 31 shutil.rmtree(config.DATABASE)
32 32
33 class metakitDBTest(metakitOpener, DBTest): 33 class metakitDBTest(metakitOpener, DBTest):
34 def testTransactions(self):
35 # remember the number of items we started
36 num_issues = len(self.db.issue.list())
37 self.db.issue.create(title="don't commit me!", status='1')
38 self.assertNotEqual(num_issues, len(self.db.issue.list()))
39 self.db.rollback()
40 self.assertEqual(num_issues, len(self.db.issue.list()))
41 self.db.issue.create(title="please commit me!", status='1')
42 self.assertNotEqual(num_issues, len(self.db.issue.list()))
43 self.db.commit()
44 self.assertNotEqual(num_issues, len(self.db.issue.list()))
45 self.db.rollback()
46 self.assertNotEqual(num_issues, len(self.db.issue.list()))
47 self.db.file.create(name="test", type="text/plain", content="hi")
48 self.db.rollback()
49 num_files = len(self.db.file.list())
50 for i in range(10):
51 self.db.file.create(name="test", type="text/plain",
52 content="hi %d"%(i))
53 self.db.commit()
54 # TODO: would be good to be able to ensure the file is not on disk after
55 # a rollback...
56 num_files2 = len(self.db.file.list())
57 self.assertNotEqual(num_files, num_files2)
58 self.db.file.create(name="test", type="text/plain", content="hi")
59 num_rfiles = len(os.listdir(self.db.config.DATABASE + '/files/file/0'))
60 self.db.rollback()
61 num_rfiles2 = len(os.listdir(self.db.config.DATABASE + '/files/file/0'))
62 self.assertEqual(num_files2, len(self.db.file.list()))
63 self.assertEqual(num_rfiles2, num_rfiles-1)
64
65 def testBooleanUnset(self): 34 def testBooleanUnset(self):
66 # XXX: metakit can't unset Booleans :( 35 # XXX: metakit can't unset Booleans :(
67 nid = self.db.user.create(username='foo', assignable=1) 36 nid = self.db.user.create(username='foo', assignable=1)
68 self.db.user.set(nid, assignable=None) 37 self.db.user.set(nid, assignable=None)
69 self.assertEqual(self.db.user.get(nid, "assignable"), 0) 38 self.assertEqual(self.db.user.get(nid, "assignable"), 0)

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