Mercurial > p > roundup > code
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) |
