annotate test/test_db.py @ 718:e10c37f53efd

fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope (thanks dman) fixed some sorting issues that were breaking some unit tests under py2.2 mailgw test output dir was confusing the init test (but only on 2.2 *shrug*) fixed bug in the init unit test that meant only the bsddb test ran if it could (it clobbered the anydbm test)
author Richard Jones <richard@users.sourceforge.net>
date Wed, 15 May 2002 03:27:16 +0000
parents 509a101305da
children e3d742c75ac3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
1 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
3 # This module is free software, and you may redistribute it and/or modify
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
4 # under the same terms as Python, so long as this copyright message and
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
5 # disclaimer are retained in their original form.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
6 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
10 # POSSIBILITY OF SUCH DAMAGE.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
11 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
17 #
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
18 # $Id: test_db.py,v 1.21 2002-04-15 23:25:15 richard Exp $
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 import unittest, os, shutil
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21
270
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
23 Interval, Class, DatabaseError
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
24 from roundup.roundupdb import FileClass
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
25 from roundup import date, password
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 def setupSchema(db, create):
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 status = Class(db, "status", name=String())
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 status.setkey("name")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 if create:
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 status.create(name="unread")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 status.create(name="in-progress")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 status.create(name="testing")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 status.create(name="resolved")
270
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
35 Class(db, "user", username=String(), password=Password())
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 Class(db, "issue", title=String(), status=Link("status"),
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
37 nosy=Multilink("user"), deadline=Date(), foo=Interval())
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
38 FileClass(db, "file", name=String(), type=String())
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
39 db.commit()
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
40
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
41 class MyTestCase(unittest.TestCase):
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
42 def tearDown(self):
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
43 if os.path.exists('_test_dir'):
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
44 shutil.rmtree('_test_dir')
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
45
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
46 class config:
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
47 DATABASE='_test_dir'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
48 MAILHOST = 'localhost'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
49 MAIL_DOMAIN = 'fill.me.in.'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
50 INSTANCE_NAME = 'Roundup issue tracker'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
51 ISSUE_TRACKER_EMAIL = 'issue_tracker@%s'%MAIL_DOMAIN
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
52 ISSUE_TRACKER_WEB = 'http://some.useful.url/'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
53 ADMIN_EMAIL = 'roundup-admin@%s'%MAIL_DOMAIN
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
54 FILTER_POSITION = 'bottom' # one of 'top', 'bottom', 'top and bottom'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
55 ANONYMOUS_ACCESS = 'deny' # either 'deny' or 'allow'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
56 ANONYMOUS_REGISTER = 'deny' # either 'deny' or 'allow'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
57 MESSAGES_TO_AUTHOR = 'no' # either 'yes' or 'no'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
58 EMAIL_SIGNATURE_POSITION = 'bottom'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
59
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
60 class anydbmDBTestCase(MyTestCase):
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 def setUp(self):
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
62 from roundup.backends import anydbm
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
64 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
65 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
66 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
67 self.db = anydbm.Database(config, 'test')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 setupSchema(self.db, 1)
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
69 self.db2 = anydbm.Database(config, 'test')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
70 setupSchema(self.db2, 0)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 def testChanges(self):
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73 self.db.issue.create(title="spam", status='1')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 self.db.issue.create(title="eggs", status='2')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75 self.db.issue.create(title="ham", status='4')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 self.db.issue.create(title="arguments", status='2')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
77 self.db.issue.create(title="abuse", status='1')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 self.db.issue.addprop(fixer=Link("user"))
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79 props = self.db.issue.getprops()
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80 keys = props.keys()
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 keys.sort()
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
82 self.assertEqual(keys, ['deadline', 'fixer', 'foo', 'id', 'nosy',
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
83 'status', 'title'])
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 self.db.issue.set('5', status='2')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 self.db.issue.get('5', "status")
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
86
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
87 a = self.db.issue.get('5', "deadline")
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
88 self.db.issue.set('5', deadline=date.Date())
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
89 b = self.db.issue.get('5', "deadline")
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
90 self.db.commit()
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
91 self.assertNotEqual(a, b)
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
92 self.assertNotEqual(b, date.Date('1970-1-1 00:00:00'))
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
93 self.db.issue.set('5', deadline=date.Date())
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
94
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
95 a = self.db.issue.get('5', "foo")
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
96 self.db.issue.set('5', foo=date.Interval('-1d'))
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
97 self.assertNotEqual(a, self.db.issue.get('5', "foo"))
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
98
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 self.db.status.get('2', "name")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 self.db.issue.get('5', "title")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
101 self.db.issue.find(status = self.db.status.lookup("in-progress"))
432
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
102 self.db.commit()
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103 self.db.issue.history('5')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
104 self.db.status.history('1')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 self.db.status.history('2')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
107 def testSerialisation(self):
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
108 self.db.issue.create(title="spam", status='1',
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
109 deadline=date.Date(), foo=date.Interval('-1d'))
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
110 self.db.commit()
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
111 assert isinstance(self.db.issue.get('1', 'deadline'), date.Date)
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
112 assert isinstance(self.db.issue.get('1', 'foo'), date.Interval)
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
113 self.db.user.create(username="fozzy",
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
114 password=password.Password('t. bear'))
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
115 self.db.commit()
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
116 assert isinstance(self.db.user.get('1', 'password'), password.Password)
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
117
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
118 def testTransactions(self):
646
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
119 # remember the number of items we started
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
120 num_issues = len(self.db.issue.list())
646
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
121 num_files = self.db.numfiles()
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
122 self.db.issue.create(title="don't commit me!", status='1')
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
123 self.assertNotEqual(num_issues, len(self.db.issue.list()))
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
124 self.db.rollback()
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
125 self.assertEqual(num_issues, len(self.db.issue.list()))
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
126 self.db.issue.create(title="please commit me!", status='1')
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
127 self.assertNotEqual(num_issues, len(self.db.issue.list()))
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
128 self.db.commit()
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
129 self.assertNotEqual(num_issues, len(self.db.issue.list()))
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
130 self.db.rollback()
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
131 self.assertNotEqual(num_issues, len(self.db.issue.list()))
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
132 self.db.file.create(name="test", type="text/plain", content="hi")
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
133 self.db.rollback()
646
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
134 self.assertEqual(num_files, self.db.numfiles())
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
135 for i in range(10):
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
136 self.db.file.create(name="test", type="text/plain",
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
137 content="hi %d"%(i))
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
138 self.db.commit()
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
139 num_files2 = self.db.numfiles()
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
140 self.assertNotEqual(num_files, num_files2)
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
141 self.db.file.create(name="test", type="text/plain", content="hi")
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
142 self.db.rollback()
646
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
143 self.assertNotEqual(num_files, self.db.numfiles())
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
144 self.assertEqual(num_files2, self.db.numfiles())
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
145
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
146 def testExceptions(self):
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
147 # this tests the exceptions that should be raised
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
148 ar = self.assertRaises
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
149
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
150 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
151 # class create
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
152 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
153 # string property
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
154 ar(TypeError, self.db.status.create, name=1)
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
155 # invalid property name
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
156 ar(KeyError, self.db.status.create, foo='foo')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
157 # key name clash
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
158 ar(ValueError, self.db.status.create, name='unread')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
159 # invalid link index
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
160 ar(IndexError, self.db.issue.create, title='foo', status='bar')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
161 # invalid link value
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
162 ar(ValueError, self.db.issue.create, title='foo', status=1)
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
163 # invalid multilink type
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
164 ar(TypeError, self.db.issue.create, title='foo', status='1',
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
165 nosy='hello')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
166 # invalid multilink index type
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
167 ar(ValueError, self.db.issue.create, title='foo', status='1',
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
168 nosy=[1])
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
169 # invalid multilink index
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
170 ar(IndexError, self.db.issue.create, title='foo', status='1',
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
171 nosy=['10'])
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
172
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
173 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
174 # class get
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
175 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
176 # invalid node id
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
177 ar(IndexError, self.db.status.get, '10', 'name')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
178 # invalid property name
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
179 ar(KeyError, self.db.status.get, '2', 'foo')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
180
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
181 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
182 # class set
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
183 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
184 # invalid node id
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
185 ar(IndexError, self.db.issue.set, '1', name='foo')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
186 # invalid property name
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
187 ar(KeyError, self.db.status.set, '1', foo='foo')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
188 # string property
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
189 ar(TypeError, self.db.status.set, '1', name=1)
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
190 # key name clash
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
191 ar(ValueError, self.db.status.set, '2', name='unread')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
192 # set up a valid issue for me to work on
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
193 self.db.issue.create(title="spam", status='1')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
194 # invalid link index
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
195 ar(IndexError, self.db.issue.set, '6', title='foo', status='bar')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
196 # invalid link value
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
197 ar(ValueError, self.db.issue.set, '6', title='foo', status=1)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
198 # invalid multilink type
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
199 ar(TypeError, self.db.issue.set, '6', title='foo', status='1',
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
200 nosy='hello')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
201 # invalid multilink index type
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
202 ar(ValueError, self.db.issue.set, '6', title='foo', status='1',
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
203 nosy=[1])
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
204 # invalid multilink index
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
205 ar(IndexError, self.db.issue.set, '6', title='foo', status='1',
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
206 nosy=['10'])
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
207
555
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
208 def testJournals(self):
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
209 self.db.issue.addprop(fixer=Link("user", do_journal='yes'))
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
210 self.db.user.create(username="mary")
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
211 self.db.user.create(username="pete")
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
212 self.db.issue.create(title="spam", status='1')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
213 self.db.commit()
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
214
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
215 # journal entry for issue create
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
216 journal = self.db.getjournal('issue', '1')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
217 self.assertEqual(1, len(journal))
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
218 (nodeid, date_stamp, journaltag, action, params) = journal[0]
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
219 self.assertEqual(nodeid, '1')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
220 self.assertEqual(journaltag, 'test')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
221 self.assertEqual(action, 'create')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
222 keys = params.keys()
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
223 keys.sort()
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
224 self.assertEqual(keys, ['deadline', 'fixer', 'foo', 'nosy',
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
225 'status', 'title'])
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
226 self.assertEqual(None,params['deadline'])
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
227 self.assertEqual(None,params['fixer'])
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
228 self.assertEqual(None,params['foo'])
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
229 self.assertEqual([],params['nosy'])
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
230 self.assertEqual('1',params['status'])
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
231 self.assertEqual('spam',params['title'])
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
232
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
233 # journal entry for link
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
234 journal = self.db.getjournal('user', '1')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
235 self.assertEqual(1, len(journal))
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
236 self.db.issue.set('1', fixer='1')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
237 self.db.commit()
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
238 journal = self.db.getjournal('user', '1')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
239 self.assertEqual(2, len(journal))
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
240 (nodeid, date_stamp, journaltag, action, params) = journal[1]
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
241 self.assertEqual('1', nodeid)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
242 self.assertEqual('test', journaltag)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
243 self.assertEqual('link', action)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
244 self.assertEqual(('issue', '1', 'fixer'), params)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
245
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
246 # journal entry for unlink
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
247 self.db.issue.set('1', fixer='2')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
248 self.db.commit()
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
249 journal = self.db.getjournal('user', '1')
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
250 self.assertEqual(3, len(journal))
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
251 (nodeid, date_stamp, journaltag, action, params) = journal[2]
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
252 self.assertEqual('1', nodeid)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
253 self.assertEqual('test', journaltag)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
254 self.assertEqual('unlink', action)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
255 self.assertEqual(('issue', '1', 'fixer'), params)
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
256
562
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
257 def testPack(self):
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
258 self.db.issue.create(title="spam", status='1')
566
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
259 self.db.commit()
562
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
260 self.db.issue.set('1', status='2')
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
261 self.db.commit()
566
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
262 self.db.issue.set('1', status='3')
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
263 self.db.commit()
562
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
264 pack_before = date.Date(". + 1d")
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
265 self.db.pack(pack_before)
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
266 journal = self.db.getjournal('issue', '1')
566
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
267 self.assertEqual(2, len(journal))
562
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
268
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
269 def testRetire(self):
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
270 pass
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
271
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
272 def testIDGeneration(self):
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
273 id1 = self.db.issue.create(title="spam", status='1')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
274 id2 = self.db2.issue.create(title="eggs", status='2')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
275 self.assertNotEqual(id1, id2)
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
276
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
277
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
278 class anydbmReadOnlyDBTestCase(MyTestCase):
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
279 def setUp(self):
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
280 from roundup.backends import anydbm
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
281 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
282 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
283 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
284 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
285 db = anydbm.Database(config, 'test')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
286 setupSchema(db, 1)
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
287 self.db = anydbm.Database(config)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
288 setupSchema(self.db, 0)
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
289 self.db2 = anydbm.Database(config, 'test')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
290 setupSchema(self.db2, 0)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
291
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
292 def testExceptions(self):
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
293 # this tests the exceptions that should be raised
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
294 ar = self.assertRaises
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
295
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
296 # this tests the exceptions that should be raised
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
297 ar(DatabaseError, self.db.status.create, name="foo")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
298 ar(DatabaseError, self.db.status.set, '1', name="foo")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
299 ar(DatabaseError, self.db.status.retire, '1')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
300
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
301
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
302 class bsddbDBTestCase(anydbmDBTestCase):
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
303 def setUp(self):
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
304 from roundup.backends import bsddb
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
305 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
306 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
307 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
308 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
309 self.db = bsddb.Database(config, 'test')
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
310 setupSchema(self.db, 1)
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
311 self.db2 = bsddb.Database(config, 'test')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
312 setupSchema(self.db2, 0)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
313
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
314 class bsddbReadOnlyDBTestCase(anydbmReadOnlyDBTestCase):
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
315 def setUp(self):
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
316 from roundup.backends import bsddb
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
317 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
318 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
319 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
320 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
321 db = bsddb.Database(config, 'test')
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
322 setupSchema(db, 1)
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
323 self.db = bsddb.Database(config)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
324 setupSchema(self.db, 0)
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
325 self.db2 = bsddb.Database(config, 'test')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
326 setupSchema(self.db2, 0)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
327
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
328
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
329 class bsddb3DBTestCase(anydbmDBTestCase):
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
330 def setUp(self):
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
331 from roundup.backends import bsddb3
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
332 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
333 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
334 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
335 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
336 self.db = bsddb3.Database(config, 'test')
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
337 setupSchema(self.db, 1)
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
338 self.db2 = bsddb3.Database(config, 'test')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
339 setupSchema(self.db2, 0)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
340
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
341 class bsddb3ReadOnlyDBTestCase(anydbmReadOnlyDBTestCase):
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
342 def setUp(self):
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
343 from roundup.backends import bsddb3
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
344 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
345 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
346 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
347 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
348 db = bsddb3.Database(config, 'test')
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
349 setupSchema(db, 1)
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
350 self.db = bsddb3.Database(config)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
351 setupSchema(self.db, 0)
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
352 self.db2 = bsddb3.Database(config, 'test')
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
353 setupSchema(self.db2, 0)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
354
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
355
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
356 def suite():
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
357 l = [
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
358 unittest.makeSuite(anydbmDBTestCase, 'test'),
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
359 unittest.makeSuite(anydbmReadOnlyDBTestCase, 'test')
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
360 ]
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
361
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
362 try:
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
363 import bsddb
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
364 l.append(unittest.makeSuite(bsddbDBTestCase, 'test'))
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
365 l.append(unittest.makeSuite(bsddbReadOnlyDBTestCase, 'test'))
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
366 except:
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
367 print 'bsddb module not found, skipping bsddb DBTestCase'
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
368
243
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
369 # try:
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
370 # import bsddb3
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
371 # l.append(unittest.makeSuite(bsddb3DBTestCase, 'test'))
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
372 # l.append(unittest.makeSuite(bsddb3ReadOnlyDBTestCase, 'test'))
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
373 # except:
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
374 # print 'bsddb3 module not found, skipping bsddb3 DBTestCase'
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
375
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
376 return unittest.TestSuite(l)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
377
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
378 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
379 # $Log: not supported by cvs2svn $
690
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
380 # Revision 1.20 2002/04/03 05:54:31 richard
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
381 # Fixed serialisation problem by moving the serialisation step out of the
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
382 # hyperdb.Class (get, set) into the hyperdb.Database.
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
383 #
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
384 # Also fixed htmltemplate after the showid changes I made yesterday.
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
385 #
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
386 # Unit tests for all of the above written.
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
387 #
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
388 # Revision 1.19 2002/02/25 14:34:31 grubert
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
389 # . use blobfiles in back_anydbm which is used in back_bsddb.
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
390 # change test_db as dirlist does not work for subdirectories.
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
391 # ATTENTION: blobfiles now creates subdirectories for files.
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
392 #
646
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
393 # Revision 1.18 2002/01/22 07:21:13 richard
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
394 # . fixed back_bsddb so it passed the journal tests
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
395 #
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
396 # ... it didn't seem happy using the back_anydbm _open method, which is odd.
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
397 # Yet another occurrance of whichdb not being able to recognise older bsddb
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
398 # databases. Yadda yadda. Made the HYPERDBDEBUG stuff more sane in the
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
399 # process.
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
400 #
570
e346a9792335 fixed back_bsddb so it passed the journal tests
Richard Jones <richard@users.sourceforge.net>
parents: 566
diff changeset
401 # Revision 1.17 2002/01/22 05:06:09 rochecompaan
e346a9792335 fixed back_bsddb so it passed the journal tests
Richard Jones <richard@users.sourceforge.net>
parents: 566
diff changeset
402 # We need to keep the last 'set' entry in the journal to preserve
e346a9792335 fixed back_bsddb so it passed the journal tests
Richard Jones <richard@users.sourceforge.net>
parents: 566
diff changeset
403 # information on 'activity' for nodes.
e346a9792335 fixed back_bsddb so it passed the journal tests
Richard Jones <richard@users.sourceforge.net>
parents: 566
diff changeset
404 #
566
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
405 # Revision 1.16 2002/01/21 16:33:20 rochecompaan
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
406 # You can now use the roundup-admin tool to pack the database
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
407 #
562
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
408 # Revision 1.15 2002/01/19 13:16:04 rochecompaan
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
409 # Journal entries for link and multilink properties can now be switched on
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
410 # or off.
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
411 #
555
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
412 # Revision 1.14 2002/01/16 07:02:57 richard
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
413 # . lots of date/interval related changes:
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
414 # - more relaxed date format for input
5fd94347c6f2 Journal entries for link and multilink properties can now be switched on or off.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 543
diff changeset
415 #
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
416 # Revision 1.13 2002/01/14 02:20:15 richard
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
417 # . changed all config accesses so they access either the instance or the
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
418 # config attriubute on the db. This means that all config is obtained from
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
419 # instance_config instead of the mish-mash of classes. This will make
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
420 # switching to a ConfigParser setup easier too, I hope.
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
421 #
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
422 # At a minimum, this makes migration a _little_ easier (a lot easier in the
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
423 # 0.5.0 switch, I hope!)
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
424 #
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
425 # Revision 1.12 2001/12/17 03:52:48 richard
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
426 # Implemented file store rollback. As a bonus, the hyperdb is now capable of
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
427 # storing more than one file per node - if a property name is supplied,
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
428 # the file is called designator.property.
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
429 # I decided not to migrate the existing files stored over to the new naming
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
430 # scheme - the FileClass just doesn't specify the property name.
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
431 #
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
432 # Revision 1.11 2001/12/10 23:17:20 richard
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
433 # Added transaction tests to test_db
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
434 #
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
435 # Revision 1.10 2001/12/03 21:33:39 richard
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
436 # Fixes so the tests use commit and not close
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
437 #
432
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
438 # Revision 1.9 2001/12/02 05:06:16 richard
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
439 # . We now use weakrefs in the Classes to keep the database reference, so
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
440 # the close() method on the database is no longer needed.
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
441 # I bumped the minimum python requirement up to 2.1 accordingly.
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
442 # . #487480 ] roundup-server
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
443 # . #487476 ] INSTALL.txt
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
444 #
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
445 # I also cleaned up the change message / post-edit stuff in the cgi client.
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
446 # There's now a clearly marked "TODO: append the change note" where I believe
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
447 # the change note should be added there. The "changes" list will obviously
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
448 # have to be modified to be a dict of the changes, or somesuch.
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
449 #
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
450 # More testing needed.
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
451 #
431
a28a80b714f9 Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
452 # Revision 1.8 2001/10/09 07:25:59 richard
a28a80b714f9 Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
453 # Added the Password property type. See "pydoc roundup.password" for
a28a80b714f9 Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
454 # implementation details. Have updated some of the documentation too.
a28a80b714f9 Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
455 #
270
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
456 # Revision 1.7 2001/08/29 06:23:59 richard
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
457 # Disabled the bsddb3 module entirely in the unit testing. See CHANGES for
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
458 # details.
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
459 #
243
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
460 # Revision 1.6 2001/08/07 00:24:43 richard
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
461 # stupid typo
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
462 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
463 # Revision 1.5 2001/08/07 00:15:51 richard
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
464 # Added the copyright/license notice to (nearly) all files at request of
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
465 # Bizar Software.
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
466 #
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
467 # Revision 1.4 2001/07/30 03:45:56 richard
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
468 # Added more DB to test_db. Can skip tests where imports fail.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
469 #
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
470 # Revision 1.3 2001/07/29 07:01:39 richard
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
471 # Added vim command to all source so that we don't get no steenkin' tabs :)
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
472 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 121
diff changeset
473 # Revision 1.2 2001/07/29 04:09:20 richard
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 121
diff changeset
474 # Added the fabricated property "id" to all hyperdb classes.
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 121
diff changeset
475 #
121
3672eb16a274 Added the fabricated property "id" to all hyperdb classes.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
476 # Revision 1.1 2001/07/27 06:55:07 richard
3672eb16a274 Added the fabricated property "id" to all hyperdb classes.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
477 # moving tests -> test
3672eb16a274 Added the fabricated property "id" to all hyperdb classes.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
478 #
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
479 # Revision 1.7 2001/07/27 06:26:43 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
480 # oops - wasn't deleting the test dir after the read-only tests
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
481 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
482 # Revision 1.6 2001/07/27 06:23:59 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
483 # consistency
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
484 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
485 # Revision 1.5 2001/07/27 06:23:09 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
486 # Added some new hyperdb tests to make sure we raise the right exceptions.
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
487 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
488 # Revision 1.4 2001/07/25 04:34:31 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
489 # Added id and log to tests files...
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
490 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
491 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 121
diff changeset
492 # vim: set filetype=python ts=4 sw=4 et si

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