annotate test/test_db.py @ 928:23c9d4f86380

Added the web access and email access permissions.. ...so people can restrict access to users who register through the email interface (for example). Also added "security" command to the roundup-admin interface to display the Role/Permission config for an instance.
author Richard Jones <richard@users.sourceforge.net>
date Thu, 01 Aug 2002 00:56:22 +0000
parents 51519406b73e
children e21259073500
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 #
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
18 # $Id: test_db.py,v 1.39 2002-07-31 23:57:37 richard Exp $
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19
860
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
20 import unittest, os, shutil, time
92
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, \
886
816b593c755f added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents: 868
diff changeset
23 Interval, DatabaseError, Boolean, Number
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
24 from roundup import date, password
825
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
25 from roundup.indexer import Indexer
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
27 def setupSchema(db, create, module):
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
28 status = module.Class(db, "status", name=String())
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 status.setkey("name")
886
816b593c755f added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents: 868
diff changeset
30 user = module.Class(db, "user", username=String(), password=Password(),
905
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
31 assignable=Boolean(), age=Number(), roles=String())
902
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
32 user.setkey("username")
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
33 file = module.FileClass(db, "file", name=String(), type=String(),
825
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
34 comment=String(indexme="yes"))
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
35 issue = module.IssueClass(db, "issue", title=String(indexme="yes"),
825
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
36 status=Link("status"), nosy=Multilink("user"), deadline=Date(),
902
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
37 foo=Interval(), files=Multilink("file"), assignedto=Link('user'))
891
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
38 session = module.Class(db, 'session', title=String())
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
39 session.disableJournalling()
825
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
40 db.post_init()
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 if create:
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 status.create(name="unread")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 status.create(name="in-progress")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 status.create(name="testing")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 status.create(name="resolved")
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
46 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
47
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
48 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
49 def tearDown(self):
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
50 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
51 shutil.rmtree('_test_dir')
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
52
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
53 class config:
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
54 DATABASE='_test_dir'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
55 MAILHOST = 'localhost'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
56 MAIL_DOMAIN = 'fill.me.in.'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
57 INSTANCE_NAME = 'Roundup issue tracker'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
58 ISSUE_TRACKER_EMAIL = 'issue_tracker@%s'%MAIL_DOMAIN
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
59 ISSUE_TRACKER_WEB = 'http://some.useful.url/'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
60 ADMIN_EMAIL = 'roundup-admin@%s'%MAIL_DOMAIN
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
61 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
62 ANONYMOUS_ACCESS = 'deny' # either 'deny' or 'allow'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
63 ANONYMOUS_REGISTER = 'deny' # either 'deny' or 'allow'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
64 MESSAGES_TO_AUTHOR = 'no' # either 'yes' or 'no'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
65 EMAIL_SIGNATURE_POSITION = 'bottom'
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
66
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
67 class anydbmDBTestCase(MyTestCase):
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 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
69 from roundup.backends import anydbm
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
71 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
72 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
73 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
74 self.db = anydbm.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
75 setupSchema(self.db, 1, anydbm)
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
76 self.db2 = anydbm.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
77 setupSchema(self.db2, 0, anydbm)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
79 def testStringChange(self):
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
80 self.db.issue.create(title="spam", status='1')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
81 self.assertEqual(self.db.issue.get('1', 'title'), 'spam')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
82 self.db.issue.set('1', title='eggs')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
83 self.assertEqual(self.db.issue.get('1', 'title'), 'eggs')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
84 self.db.commit()
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
85 self.assertEqual(self.db.issue.get('1', 'title'), 'eggs')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
86 self.db.issue.create(title="spam", status='1')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
87 self.db.commit()
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
88 self.assertEqual(self.db.issue.get('2', 'title'), 'spam')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
89 self.db.issue.set('2', title='ham')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
90 self.assertEqual(self.db.issue.get('2', 'title'), 'ham')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
91 self.db.commit()
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
92 self.assertEqual(self.db.issue.get('2', 'title'), 'ham')
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
93 self.db.issue.set('1', title=None)
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
94 self.assertEqual(self.db.issue.get('1', "title"), None)
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
95
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
96 def testLinkChange(self):
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 self.db.issue.create(title="spam", status='1')
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
98 self.assertEqual(self.db.issue.get('1', "status"), '1')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
99 self.db.issue.set('1', status='2')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
100 self.assertEqual(self.db.issue.get('1', "status"), '2')
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
101 self.db.issue.set('1', status=None)
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
102 self.assertEqual(self.db.issue.get('1', "status"), None)
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
103
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
104 def testDateChange(self):
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
105 self.db.issue.create(title="spam", status='1')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
106 a = self.db.issue.get('1', "deadline")
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
107 self.db.issue.set('1', deadline=date.Date())
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
108 b = self.db.issue.get('1', "deadline")
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
109 self.db.commit()
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
110 self.assertNotEqual(a, b)
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
111 self.assertNotEqual(b, date.Date('1970-1-1 00:00:00'))
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
112 self.db.issue.set('1', deadline=date.Date())
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
113 self.db.issue.set('1', deadline=None)
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
114 self.assertEqual(self.db.issue.get('1', "deadline"), None)
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
115
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
116 def testIntervalChange(self):
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
117 self.db.issue.create(title="spam", status='1')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
118 a = self.db.issue.get('1', "foo")
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
119 self.db.issue.set('1', foo=date.Interval('-1d'))
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
120 self.assertNotEqual(self.db.issue.get('1', "foo"), a)
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
121 self.db.issue.set('1', foo=None)
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
122 self.assertEqual(self.db.issue.get('1', "foo"), None)
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
123
886
816b593c755f added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents: 868
diff changeset
124 def testBooleanChange(self):
902
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
125 userid = self.db.user.create(username='foo', assignable=1)
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
126 self.db.user.create(username='foo2', assignable=0)
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
127 a = self.db.user.get(userid, 'assignable')
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
128 self.db.user.set(userid, assignable=0)
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
129 self.assertNotEqual(self.db.user.get(userid, 'assignable'), a)
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
130 self.db.user.set(userid, assignable=0)
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
131 self.db.user.set(userid, assignable=1)
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
132 self.db.user.set('1', assignable=None)
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
133 self.assertEqual(self.db.user.get('1', "assignable"), None)
887
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
134
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
135 def testNumberChange(self):
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
136 self.db.user.create(username='foo', age='1')
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
137 a = self.db.user.get('1', 'age')
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
138 self.db.user.set('1', age='3')
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
139 self.assertNotEqual(self.db.user.get('1', 'age'), a)
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
140 self.db.user.set('1', age='1.0')
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
141 self.db.user.set('1', age=None)
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
142 self.assertEqual(self.db.user.get('1', "age"), None)
886
816b593c755f added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents: 868
diff changeset
143
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
144 def testNewProperty(self):
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
145 self.db.issue.create(title="spam", status='1')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
146 self.db.issue.addprop(fixer=Link("user"))
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
147 props = self.db.issue.getprops()
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
148 keys = props.keys()
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
149 keys.sort()
902
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
150 self.assertEqual(keys, ['activity', 'assignedto', 'creation',
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
151 'creator', 'deadline', 'files', 'fixer', 'foo', 'id', 'messages',
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
152 'nosy', 'status', 'superseder', 'title'])
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
153 self.assertEqual(self.db.issue.get('1', "fixer"), None)
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
154
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
155 def testRetire(self):
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
156 self.db.issue.create(title="spam", status='1')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
157 b = self.db.status.get('1', 'name')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
158 a = self.db.status.list()
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
159 self.db.status.retire('1')
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
160 # make sure the list is different
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
161 self.assertNotEqual(a, self.db.status.list())
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
162 # can still access the node if necessary
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
163 self.assertEqual(self.db.status.get('1', 'name'), b)
432
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
164 self.db.commit()
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
165 self.assertEqual(self.db.status.get('1', 'name'), b)
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
166 self.assertNotEqual(a, self.db.status.list())
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
167
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
168 def testSerialisation(self):
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
169 self.db.issue.create(title="spam", status='1',
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
170 deadline=date.Date(), foo=date.Interval('-1d'))
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
171 self.db.commit()
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
172 assert isinstance(self.db.issue.get('1', 'deadline'), date.Date)
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
173 assert isinstance(self.db.issue.get('1', 'foo'), date.Interval)
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
174 self.db.user.create(username="fozzy",
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
175 password=password.Password('t. bear'))
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
176 self.db.commit()
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
177 assert isinstance(self.db.user.get('1', 'password'), password.Password)
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
178
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
179 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
180 # 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
181 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
182 num_files = self.db.numfiles()
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
183 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
184 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
185 self.db.rollback()
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
186 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
187 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
188 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
189 self.db.commit()
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
190 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
191 self.db.rollback()
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
192 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
193 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
194 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
195 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
196 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
197 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
198 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
199 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
200 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
201 self.assertNotEqual(num_files, num_files2)
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
202 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
203 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
204 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
205 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
206
891
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
207 def testDestroyNoJournalling(self):
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
208 self.innerTestDestroy(klass=self.db.session)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
209
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
210 def testDestroyJournalling(self):
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
211 self.innerTestDestroy(klass=self.db.issue)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
212
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
213 def innerTestDestroy(self, klass):
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
214 newid = klass.create(title='Mr Friendly')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
215 n = len(klass.list())
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
216 self.assertEqual(klass.get(newid, 'title'), 'Mr Friendly')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
217 klass.destroy(newid)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
218 self.assertRaises(IndexError, klass.get, newid, 'title')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
219 self.assertNotEqual(len(klass.list()), n)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
220 if klass.do_journal:
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
221 self.assertRaises(IndexError, klass.history, newid)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
222
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
223 # now with a commit
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
224 newid = klass.create(title='Mr Friendly')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
225 n = len(klass.list())
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
226 self.assertEqual(klass.get(newid, 'title'), 'Mr Friendly')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
227 self.db.commit()
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
228 klass.destroy(newid)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
229 self.assertRaises(IndexError, klass.get, newid, 'title')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
230 self.db.commit()
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
231 self.assertRaises(IndexError, klass.get, newid, 'title')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
232 self.assertNotEqual(len(klass.list()), n)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
233 if klass.do_journal:
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
234 self.assertRaises(IndexError, klass.history, newid)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
235
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
236 # now with a rollback
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
237 newid = klass.create(title='Mr Friendly')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
238 n = len(klass.list())
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
239 self.assertEqual(klass.get(newid, 'title'), 'Mr Friendly')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
240 self.db.commit()
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
241 klass.destroy(newid)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
242 self.assertNotEqual(len(klass.list()), n)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
243 self.assertRaises(IndexError, klass.get, newid, 'title')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
244 self.db.rollback()
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
245 self.assertEqual(klass.get(newid, 'title'), 'Mr Friendly')
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
246 self.assertEqual(len(klass.list()), n)
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
247 if klass.do_journal:
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
248 self.assertNotEqual(klass.history(newid), [])
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
249
887
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
250 def testExceptions(self):
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
251 # this tests the exceptions that should be raised
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
252 ar = self.assertRaises
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
253
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
254 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
255 # class create
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
256 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
257 # string property
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
258 ar(TypeError, self.db.status.create, name=1)
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
259 # invalid property name
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
260 ar(KeyError, self.db.status.create, foo='foo')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
261 # key name clash
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
262 ar(ValueError, self.db.status.create, name='unread')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
263 # invalid link index
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
264 ar(IndexError, self.db.issue.create, title='foo', status='bar')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
265 # invalid link value
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
266 ar(ValueError, self.db.issue.create, title='foo', status=1)
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
267 # invalid multilink type
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
268 ar(TypeError, self.db.issue.create, title='foo', status='1',
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
269 nosy='hello')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
270 # invalid multilink index type
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
271 ar(ValueError, self.db.issue.create, title='foo', status='1',
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
272 nosy=[1])
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
273 # invalid multilink index
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
274 ar(IndexError, self.db.issue.create, title='foo', status='1',
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
275 nosy=['10'])
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
276
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
277 #
862
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
278 # key property
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
279 #
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
280 # key must be a String
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
281 ar(TypeError, self.db.user.setkey, 'password')
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
282 # key must exist
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
283 ar(KeyError, self.db.user.setkey, 'fubar')
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
284
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
285 #
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
286 # class get
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
287 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
288 # invalid node id
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
289 ar(IndexError, self.db.issue.get, '1', 'title')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
290 # invalid property name
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
291 ar(KeyError, self.db.status.get, '2', 'foo')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
292
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
293 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
294 # class set
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 # invalid node id
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
297 ar(IndexError, self.db.issue.set, '1', title='foo')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
298 # invalid property name
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
299 ar(KeyError, self.db.status.set, '1', foo='foo')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
300 # string property
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
301 ar(TypeError, self.db.status.set, '1', name=1)
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
302 # key name clash
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
303 ar(ValueError, self.db.status.set, '2', name='unread')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
304 # set up a valid issue for me to work on
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
305 self.db.issue.create(title="spam", status='1')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
306 # 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
307 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
308 # 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
309 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
310 # 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
311 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
312 nosy='hello')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
313 # 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
314 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
315 nosy=[1])
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
316 # 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
317 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
318 nosy=['10'])
887
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
319 # invalid number value
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
320 ar(TypeError, self.db.user.create, username='foo', age='a')
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
321 # invalid boolean value
890
a568596dbea7 Unit tests and a few fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 888
diff changeset
322 ar(TypeError, self.db.user.create, username='foo', assignable='true')
887
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
323 self.db.user.create(username='foo')
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
324 # invalid number value
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
325 ar(TypeError, self.db.user.set, '3', username='foo', age='a')
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
326 # invalid boolean value
890
a568596dbea7 Unit tests and a few fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 888
diff changeset
327 ar(TypeError, self.db.user.set, '3', username='foo', assignable='true')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
328
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
329 def testJournals(self):
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
330 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
331 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
332 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
333 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
334 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
335
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
336 # 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
337 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
338 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
339 (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
340 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
341 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
342 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
343 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
344 keys.sort()
902
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
345 self.assertEqual(keys, ['assignedto', 'deadline', 'files', 'fixer',
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
346 'foo', 'messages', 'nosy', 'status', 'superseder', 'title'])
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
347 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
348 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
349 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
350 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
351 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
352 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
353
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
354 # 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
355 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
356 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
357 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
358 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
359 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
360 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
361 (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
362 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
363 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
364 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
365 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
366
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
367 # 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
368 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
369 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
370 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
371 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
372 (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
373 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
374 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
375 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
376 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
377
860
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
378 # test disabling journalling
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
379 # ... get the last entry
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
380 time.sleep(1)
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
381 entry = self.db.getjournal('issue', '1')[-1]
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
382 (x, date_stamp, x, x, x) = entry
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
383 self.db.issue.disableJournalling()
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
384 self.db.issue.set('1', title='hello world')
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
385 self.db.commit()
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
386 entry = self.db.getjournal('issue', '1')[-1]
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
387 (x, date_stamp2, x, x, x) = entry
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
388 # see if the change was journalled when it shouldn't have been
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
389 self.assertEqual(date_stamp, date_stamp2)
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
390 self.db.issue.enableJournalling()
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
391 self.db.issue.set('1', title='hello world 2')
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
392 self.db.commit()
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
393 entry = self.db.getjournal('issue', '1')[-1]
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
394 (x, date_stamp2, x, x, x) = entry
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
395 # see if the change was journalled
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
396 self.assertNotEqual(date_stamp, date_stamp2)
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
397
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
398 def testPack(self):
562
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
399 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
400 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
401 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
402 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
403 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
404 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
405 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
406 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
407 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
408 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
409
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
410 def testIDGeneration(self):
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
411 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
412 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
413 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
414
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
415 def testSearching(self):
825
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
416 self.db.file.create(content='hello', type="text/plain")
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
417 self.db.file.create(content='world', type="text/frozz",
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
418 comment='blah blah')
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
419 self.db.issue.create(files=['1', '2'], title="flebble plop")
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
420 self.db.issue.create(title="flebble frooz")
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
421 self.db.commit()
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
422 self.assertEquals(self.db.indexer.search(['hello'], self.db.issue),
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
423 {'1': {'files': ['1']}})
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
424 self.assertEquals(self.db.indexer.search(['world'], self.db.issue), {})
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
425 self.assertEquals(self.db.indexer.search(['frooz'], self.db.issue),
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
426 {'2': {}})
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
427 self.assertEquals(self.db.indexer.search(['flebble'], self.db.issue),
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
428 {'2': {}, '1': {}})
826
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
429
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
430 def testReindexing(self):
826
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
431 self.db.issue.create(title="frooz")
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
432 self.db.commit()
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
433 self.assertEquals(self.db.indexer.search(['frooz'], self.db.issue),
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
434 {'1': {}})
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
435 self.db.issue.set('1', title="dooble")
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
436 self.db.commit()
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
437 self.assertEquals(self.db.indexer.search(['dooble'], self.db.issue),
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
438 {'1': {}})
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
439 self.assertEquals(self.db.indexer.search(['frooz'], self.db.issue), {})
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
440
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
441 def testForcedReindexing(self):
826
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
442 self.db.issue.create(title="flebble frooz")
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
443 self.db.commit()
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
444 self.assertEquals(self.db.indexer.search(['flebble'], self.db.issue),
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
445 {'1': {}})
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
446 self.db.indexer.quiet = 1
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
447 self.db.indexer.force_reindex()
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
448 self.db.post_init()
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
449 self.db.indexer.quiet = 9
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
450 self.assertEquals(self.db.indexer.search(['flebble'], self.db.issue),
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
451 {'1': {}})
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
452
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
453 class anydbmReadOnlyDBTestCase(MyTestCase):
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
454 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
455 from roundup.backends import anydbm
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
456 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
457 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
458 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
459 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
460 db = anydbm.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
461 setupSchema(db, 1, anydbm)
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
462 self.db = anydbm.Database(config)
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
463 setupSchema(self.db, 0, anydbm)
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
464 self.db2 = anydbm.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
465 setupSchema(self.db2, 0, anydbm)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
466
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
467 def testExceptions(self):
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
468 # this tests the exceptions that should be raised
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
469 ar = self.assertRaises
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
470
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
471 # this tests the exceptions that should be raised
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
472 ar(DatabaseError, self.db.status.create, name="foo")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
473 ar(DatabaseError, self.db.status.set, '1', name="foo")
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
474 ar(DatabaseError, self.db.status.retire, '1')
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
475
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
476
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
477 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
478 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
479 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
480 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
481 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
482 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
483 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
484 self.db = bsddb.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
485 setupSchema(self.db, 1, bsddb)
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
486 self.db2 = bsddb.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
487 setupSchema(self.db2, 0, bsddb)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
488
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
489 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
490 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
491 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
492 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
493 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
494 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
495 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
496 db = bsddb.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
497 setupSchema(db, 1, bsddb)
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
498 self.db = bsddb.Database(config)
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
499 setupSchema(self.db, 0, bsddb)
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
500 self.db2 = bsddb.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
501 setupSchema(self.db2, 0, bsddb)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
502
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
503
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
504 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
505 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
506 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
507 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
508 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
509 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
510 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
511 self.db = bsddb3.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
512 setupSchema(self.db, 1, bsddb3)
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
513 self.db2 = bsddb3.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
514 setupSchema(self.db2, 0, bsddb3)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
515
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
516 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
517 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
518 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
519 # remove previous test, ignore errors
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
520 if os.path.exists(config.DATABASE):
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
521 shutil.rmtree(config.DATABASE)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
522 os.makedirs(config.DATABASE + '/files')
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
523 db = bsddb3.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
524 setupSchema(db, 1, bsddb3)
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
525 self.db = bsddb3.Database(config)
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
526 setupSchema(self.db, 0, bsddb3)
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
527 self.db2 = bsddb3.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
528 setupSchema(self.db2, 0, bsddb3)
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
529
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
530
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
531 class metakitDBTestCase(anydbmDBTestCase):
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
532 def setUp(self):
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
533 from roundup.backends import metakit
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
534 import weakref
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
535 metakit._instances = weakref.WeakValueDictionary()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
536 # remove previous test, ignore errors
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
537 if os.path.exists(config.DATABASE):
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
538 shutil.rmtree(config.DATABASE)
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
539 os.makedirs(config.DATABASE + '/files')
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
540 self.db = metakit.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
541 setupSchema(self.db, 1, metakit)
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
542 self.db2 = metakit.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
543 setupSchema(self.db2, 0, metakit)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
544
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
545 def testTransactions(self):
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
546 # remember the number of items we started
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
547 num_issues = len(self.db.issue.list())
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
548 self.db.issue.create(title="don't commit me!", status='1')
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
549 self.assertNotEqual(num_issues, len(self.db.issue.list()))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
550 self.db.rollback()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
551 self.assertEqual(num_issues, len(self.db.issue.list()))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
552 self.db.issue.create(title="please commit me!", status='1')
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
553 self.assertNotEqual(num_issues, len(self.db.issue.list()))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
554 self.db.commit()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
555 self.assertNotEqual(num_issues, len(self.db.issue.list()))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
556 self.db.rollback()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
557 self.assertNotEqual(num_issues, len(self.db.issue.list()))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
558 self.db.file.create(name="test", type="text/plain", content="hi")
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
559 self.db.rollback()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
560 for i in range(10):
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
561 self.db.file.create(name="test", type="text/plain",
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
562 content="hi %d"%(i))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
563 self.db.commit()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
564 # TODO: would be good to be able to ensure the file is not on disk after
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
565 # a rollback...
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
566 self.assertNotEqual(num_files, num_files2)
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
567 self.db.file.create(name="test", type="text/plain", content="hi")
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
568 self.db.rollback()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
569
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
570 class metakitReadOnlyDBTestCase(anydbmReadOnlyDBTestCase):
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
571 def setUp(self):
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
572 from roundup.backends import metakit
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
573 import weakref
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
574 metakit._instances = weakref.WeakValueDictionary()
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
575 # remove previous test, ignore errors
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
576 if os.path.exists(config.DATABASE):
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
577 shutil.rmtree(config.DATABASE)
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
578 os.makedirs(config.DATABASE + '/files')
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
579 db = metakit.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
580 setupSchema(db, 1, metakit)
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
581 self.db = metakit.Database(config)
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
582 setupSchema(self.db, 0, metakit)
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
583 self.db2 = metakit.Database(config, 'test')
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
584 setupSchema(self.db2, 0, metakit)
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
585
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
586 def suite():
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
587 l = [
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
588 unittest.makeSuite(anydbmDBTestCase, 'test'),
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
589 unittest.makeSuite(anydbmReadOnlyDBTestCase, 'test')
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
590 ]
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
591 #return unittest.TestSuite(l)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
592
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
593 try:
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
594 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
595 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
596 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
597 except:
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
598 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
599
726
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
600 try:
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
601 import bsddb3
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
602 l.append(unittest.makeSuite(bsddb3DBTestCase, 'test'))
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
603 l.append(unittest.makeSuite(bsddb3ReadOnlyDBTestCase, 'test'))
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
604 except:
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
605 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
606
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
607 try:
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
608 import metakit
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
609 l.append(unittest.makeSuite(metakitDBTestCase, 'test'))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
610 l.append(unittest.makeSuite(metakitReadOnlyDBTestCase, 'test'))
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
611 except:
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
612 print 'metakit module not found, skipping metakit DBTestCase'
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
613
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
614 return unittest.TestSuite(l)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
615
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
616 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
617 # $Log: not supported by cvs2svn $
927
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
618 # Revision 1.38 2002/07/26 08:27:00 richard
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
619 # Very close now. The cgi and mailgw now use the new security API. The two
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
620 # templates have been migrated to that setup. Lots of unit tests. Still some
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
621 # issue in the web form for editing Roles assigned to users.
51519406b73e web forms may now unset Link values (like assignedto)
Richard Jones <richard@users.sourceforge.net>
parents: 905
diff changeset
622 #
905
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
623 # Revision 1.37 2002/07/25 07:14:06 richard
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
624 # Bugger it. Here's the current shape of the new security implementation.
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
625 # Still to do:
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
626 # . call the security funcs from cgi and mailgw
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
627 # . change shipped templates to include correct initialisation and remove
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
628 # the old config vars
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
629 # ... that seems like a lot. The bulk of the work has been done though. Honest :)
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 902
diff changeset
630 #
902
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
631 # Revision 1.36 2002/07/19 03:36:34 richard
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
632 # Implemented the destroy() method needed by the session database (and possibly
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
633 # others). At the same time, I removed the leading underscores from the hyperdb
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
634 # methods that Really Didn't Need Them.
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
635 # The journal also raises IndexError now for all situations where there is a
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
636 # request for the journal of a node that doesn't have one. It used to return
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
637 # [] in _some_ situations, but not all. This _may_ break code, but the tests
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
638 # pass...
b0d3d3535998 Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents: 891
diff changeset
639 #
891
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
640 # Revision 1.35 2002/07/18 23:07:08 richard
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
641 # Unit tests and a few fixes.
974a4b94c5e3 Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents: 890
diff changeset
642 #
890
a568596dbea7 Unit tests and a few fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 888
diff changeset
643 # Revision 1.34 2002/07/18 11:52:00 richard
a568596dbea7 Unit tests and a few fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 888
diff changeset
644 # oops
a568596dbea7 Unit tests and a few fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 888
diff changeset
645 #
888
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
646 # Revision 1.33 2002/07/18 11:50:58 richard
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
647 # added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 887
diff changeset
648 #
887
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
649 # Revision 1.32 2002/07/18 11:41:10 richard
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
650 # added tests for boolean type, and fixes to anydbm backend
e7169d6e6e45 added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents: 886
diff changeset
651 #
886
816b593c755f added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents: 868
diff changeset
652 # Revision 1.31 2002/07/14 23:17:45 richard
816b593c755f added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents: 868
diff changeset
653 # minor change to make testing easier
816b593c755f added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents: 868
diff changeset
654 #
868
e8162a199d81 minor change to make testing easier
Richard Jones <richard@users.sourceforge.net>
parents: 862
diff changeset
655 # Revision 1.30 2002/07/14 06:06:34 richard
e8162a199d81 minor change to make testing easier
Richard Jones <richard@users.sourceforge.net>
parents: 862
diff changeset
656 # Did some old TODOs
e8162a199d81 minor change to make testing easier
Richard Jones <richard@users.sourceforge.net>
parents: 862
diff changeset
657 #
862
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
658 # Revision 1.29 2002/07/14 04:03:15 richard
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
659 # Implemented a switch to disable journalling for a Class. CGI session
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
660 # database now uses it.
37fb48c3a136 Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents: 860
diff changeset
661 #
860
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
662 # Revision 1.28 2002/07/14 02:16:29 richard
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
663 # Fixes for the metakit backend (removed the cut-n-paste IssueClass, removed
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
664 # a special case for it in testing)
2df32a73eb45 Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents: 859
diff changeset
665 #
859
eb924e614934 Fixes for the metakit backend
Richard Jones <richard@users.sourceforge.net>
parents: 858
diff changeset
666 # Revision 1.27 2002/07/14 02:05:54 richard
eb924e614934 Fixes for the metakit backend
Richard Jones <richard@users.sourceforge.net>
parents: 858
diff changeset
667 # . all storage-specific code (ie. backend) is now implemented by the backends
eb924e614934 Fixes for the metakit backend
Richard Jones <richard@users.sourceforge.net>
parents: 858
diff changeset
668 #
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
669 # Revision 1.26 2002/07/11 01:11:03 richard
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
670 # Added metakit backend to the db tests and fixed the more easily fixable test
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
671 # failures.
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 854
diff changeset
672 #
854
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
673 # Revision 1.25 2002/07/09 04:19:09 richard
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
674 # Added reindex command to roundup-admin.
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
675 # Fixed reindex on first access.
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
676 # Also fixed reindexing of entries that change.
3cdfa5d86cec Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
677 #
826
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
678 # Revision 1.24 2002/07/09 03:02:53 richard
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
679 # More indexer work:
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
680 # - all String properties may now be indexed too. Currently there's a bit of
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
681 # "issue" specific code in the actual searching which needs to be
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
682 # addressed. In a nutshell:
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
683 # + pass 'indexme="yes"' as a String() property initialisation arg, eg:
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
684 # file = FileClass(db, "file", name=String(), type=String(),
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
685 # comment=String(indexme="yes"))
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
686 # + the comment will then be indexed and be searchable, with the results
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
687 # related back to the issue that the file is linked to
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
688 # - as a result of this work, the FileClass has a default MIME type that may
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
689 # be overridden in a subclass, or by the use of a "type" property as is
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
690 # done in the default templates.
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
691 # - the regeneration of the indexes (if necessary) is done once the schema is
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
692 # set up in the dbinit.
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
693 #
825
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
694 # Revision 1.23 2002/06/20 23:51:48 richard
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
695 # Cleaned up the hyperdb tests
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 785
diff changeset
696 #
785
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
697 # Revision 1.22 2002/05/21 05:52:11 richard
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
698 # Well whadya know, bsddb3 works again.
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
699 # The backend is implemented _exactly_ the same as bsddb - so there's no
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
700 # using its transaction or locking support. It'd be nice to use those some
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
701 # day I suppose.
491049fb8e31 Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents: 726
diff changeset
702 #
726
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
703 # Revision 1.21 2002/04/15 23:25:15 richard
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
704 # . node ids are now generated from a lockable store - no more race conditions
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
705 #
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
706 # We're using the portalocker code by Jonathan Feinberg that was contributed
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
707 # to the ASPN Python cookbook. This gives us locking across Unix and Windows.
e3d742c75ac3 Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents: 690
diff changeset
708 #
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
709 # 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
710 # 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
711 # 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
712 #
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
713 # 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
714 #
509a101305da node ids are now generated from a lockable store - no more race conditions
Richard Jones <richard@users.sourceforge.net>
parents: 676
diff changeset
715 # 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
716 #
676
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
717 # Revision 1.19 2002/02/25 14:34:31 grubert
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
718 # . 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
719 # change test_db as dirlist does not work for subdirectories.
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
720 # ATTENTION: blobfiles now creates subdirectories for files.
bc46480e2a2b Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents: 646
diff changeset
721 #
646
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
722 # 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
723 # . 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
724 #
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
725 # ... 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
726 # 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
727 # 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
728 # process.
07abfe8f0c01 use blobfiles in back_anydbm which is used in back_bsddb.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 570
diff changeset
729 #
570
e346a9792335 fixed back_bsddb so it passed the journal tests
Richard Jones <richard@users.sourceforge.net>
parents: 566
diff changeset
730 # 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
731 # 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
732 # 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
733 #
566
73af3e54c309 We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 562
diff changeset
734 # 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
735 # 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
736 #
562
62febbd7ffec You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 555
diff changeset
737 # 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
738 # 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
739 # 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
740 #
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
741 # 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
742 # . 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
743 # - 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
744 #
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
745 # 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
746 # . 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
747 # 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
748 # 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
749 # 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
750 #
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
751 # 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
752 # 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
753 #
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
754 # 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
755 # 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
756 # 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
757 # the file is called designator.property.
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 461
diff changeset
758 # 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
759 # 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
760 #
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
761 # 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
762 # Added transaction tests to test_db
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 441
diff changeset
763 #
441
698534628072 Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents: 432
diff changeset
764 # 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
765 # 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
766 #
432
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
767 # 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
768 # . 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
769 # 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
770 # 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
771 # . #487480 ] roundup-server
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
772 # . #487476 ] INSTALL.txt
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
773 #
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
774 # 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
775 # 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
776 # 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
777 # 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
778 #
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
779 # More testing needed.
f97415cccb9d Fixes so the tests use commit and not close
Richard Jones <richard@users.sourceforge.net>
parents: 431
diff changeset
780 #
431
a28a80b714f9 Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents: 270
diff changeset
781 # 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
782 # 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
783 # 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
784 #
270
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
785 # 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
786 # 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
787 # details.
a4241ddd22d7 Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents: 243
diff changeset
788 #
243
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
789 # 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
790 # stupid typo
1e571b6be57a Disabled the bsddb3 module entirely in the unit testing.
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
791 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
792 # Revision 1.5 2001/08/07 00:15:51 richard
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
793 # 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
794 # Bizar Software.
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
795 #
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 158
diff changeset
796 # 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
797 # 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
798 #
158
86ebcf734a8e Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
799 # 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
800 # 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
801 #
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
802 # 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
803 # 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
804 #
121
3672eb16a274 Added the fabricated property "id" to all hyperdb classes.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
805 # 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
806 # moving tests -> test
3672eb16a274 Added the fabricated property "id" to all hyperdb classes.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
807 #
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
808 # Revision 1.7 2001/07/27 06:26:43 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
809 # 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
810 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
811 # Revision 1.6 2001/07/27 06:23:59 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
812 # consistency
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
813 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
814 # Revision 1.5 2001/07/27 06:23:09 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
815 # 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
816 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
817 # Revision 1.4 2001/07/25 04:34:31 richard
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
818 # Added id and log to tests files...
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
819 #
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
820 #
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
821 # vim: set filetype=python ts=4 sw=4 et si

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