Mercurial > p > roundup > code
annotate test/test_db.py @ 1797:c1eec970d5c0
Optimize mailgw and cgi tests...
...by creating an empty instance before the tests start (only if
needed). In setUp(), this instance is then copied to another directory
for the actual tests.
On my system, this about halved the execution time for test_cgi (33s -> 14s)
and test_mailgw (40s -> 25s).
| author | Johannes Gijsbers <jlgijsbers@users.sourceforge.net> |
|---|---|
| date | Sun, 07 Sep 2003 20:37:33 +0000 |
| parents | d2801a2b0a77 |
| children | 06f5b36b201b |
| 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 | 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 # |
|
1780
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
18 # $Id: test_db.py,v 1.91 2003-09-04 00:47:01 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, \ |
|
1486
f5f60c75a458
added test for error in sqlite backend, and fixed *dbm backend error
Richard Jones <richard@users.sourceforge.net>
parents:
1479
diff
changeset
|
23 Interval, DatabaseError, Boolean, Number, Node |
|
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(), |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
34 comment=String(indexme="yes"), fooz=Password()) |
|
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: |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
42 user.create(username="admin", roles='Admin') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 status.create(name="unread") |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 status.create(name="in-progress") |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 status.create(name="testing") |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 status.create(name="resolved") |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
47 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
|
48 |
|
86ebcf734a8e
Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
49 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
|
50 def tearDown(self): |
|
1126
d77b86cc541b
close the databases before test cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1096
diff
changeset
|
51 self.db.close() |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
52 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
|
53 shutil.rmtree('_test_dir') |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
54 |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
55 class config: |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
56 DATABASE='_test_dir' |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
57 MAILHOST = 'localhost' |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
58 MAIL_DOMAIN = 'fill.me.in.' |
|
1096
fa7df238e2d4
More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
59 TRACKER_NAME = 'Roundup issue tracker' |
|
fa7df238e2d4
More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
60 TRACKER_EMAIL = 'issue_tracker@%s'%MAIL_DOMAIN |
|
fa7df238e2d4
More cleaning up of configuration, and the "instance" -> "tracker" renaming.
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
61 TRACKER_WEB = 'http://some.useful.url/' |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
62 ADMIN_EMAIL = 'roundup-admin@%s'%MAIL_DOMAIN |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
63 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
|
64 ANONYMOUS_ACCESS = 'deny' # either 'deny' or 'allow' |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
65 ANONYMOUS_REGISTER = 'deny' # either 'deny' or 'allow' |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
66 MESSAGES_TO_AUTHOR = 'no' # either 'yes' or 'no' |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
67 EMAIL_SIGNATURE_POSITION = 'bottom' |
|
1433
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
68 # Mysql connection data |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
69 MYSQL_DBHOST = 'localhost' |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
70 MYSQL_DBUSER = 'rounduptest' |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
71 MYSQL_DBPASSWORD = 'rounduptest' |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
72 MYSQL_DBNAME = 'rounduptest' |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
73 MYSQL_DATABASE = (MYSQL_DBHOST, MYSQL_DBUSER, MYSQL_DBPASSWORD, MYSQL_DBNAME) |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
74 |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
75 class nodbconfig(config): |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
76 MYSQL_DATABASE = (config.MYSQL_DBHOST, config.MYSQL_DBUSER, config.MYSQL_DBPASSWORD) |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
77 |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
78 class anydbmDBTestCase(MyTestCase): |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 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
|
80 from roundup.backends import anydbm |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
81 # remove previous test, ignore errors |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
82 if os.path.exists(config.DATABASE): |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
83 shutil.rmtree(config.DATABASE) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
84 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
85 self.db = anydbm.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
86 setupSchema(self.db, 1, anydbm) |
|
1333
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
87 |
|
1479
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
88 # |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
89 # schema mutation |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
90 # |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
91 def testAddProperty(self): |
|
1479
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
92 self.db.issue.create(title="spam", status='1') |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
93 self.db.commit() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
94 |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
95 self.db.issue.addprop(fixer=Link("user")) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
96 # force any post-init stuff to happen |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
97 self.db.post_init() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
98 props = self.db.issue.getprops() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
99 keys = props.keys() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
100 keys.sort() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
101 self.assertEqual(keys, ['activity', 'assignedto', 'creation', |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
102 'creator', 'deadline', 'files', 'fixer', 'foo', 'id', 'messages', |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
103 'nosy', 'status', 'superseder', 'title']) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
104 self.assertEqual(self.db.issue.get('1', "fixer"), None) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
105 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
106 def testRemoveProperty(self): |
|
1479
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
107 self.db.issue.create(title="spam", status='1') |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
108 self.db.commit() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
109 |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
110 del self.db.issue.properties['title'] |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
111 self.db.post_init() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
112 props = self.db.issue.getprops() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
113 keys = props.keys() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
114 keys.sort() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
115 self.assertEqual(keys, ['activity', 'assignedto', 'creation', |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
116 'creator', 'deadline', 'files', 'foo', 'id', 'messages', |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
117 'nosy', 'status', 'superseder']) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
118 self.assertEqual(self.db.issue.list(), ['1']) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
119 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
120 def testAddRemoveProperty(self): |
|
1479
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
121 self.db.issue.create(title="spam", status='1') |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
122 self.db.commit() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
123 |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
124 self.db.issue.addprop(fixer=Link("user")) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
125 del self.db.issue.properties['title'] |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
126 self.db.post_init() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
127 props = self.db.issue.getprops() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
128 keys = props.keys() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
129 keys.sort() |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
130 self.assertEqual(keys, ['activity', 'assignedto', 'creation', |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
131 'creator', 'deadline', 'files', 'fixer', 'foo', 'id', 'messages', |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
132 'nosy', 'status', 'superseder']) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
133 self.assertEqual(self.db.issue.list(), ['1']) |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
134 |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
135 # |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
136 # basic operations |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
137 # |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
138 def testIDGeneration(self): |
|
1333
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
139 id1 = self.db.issue.create(title="spam", status='1') |
|
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
140 id2 = self.db.issue.create(title="eggs", status='2') |
|
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
141 self.assertNotEqual(id1, id2) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
142 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
143 def testStringChange(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
144 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
145 # test set & retrieve |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
146 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
147 self.assertEqual(self.db.issue.get(nid, 'title'), 'spam') |
| 1143 | 148 |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
149 # change and make sure we retrieve the correct value |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
150 self.db.issue.set(nid, title='eggs') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
151 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
152 self.assertEqual(self.db.issue.get(nid, 'title'), 'eggs') |
| 1143 | 153 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
154 def testStringUnset(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
155 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
156 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
157 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
158 self.assertEqual(self.db.issue.get(nid, 'title'), 'spam') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
159 # make sure we can unset |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
160 self.db.issue.set(nid, title=None) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
161 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
162 self.assertEqual(self.db.issue.get(nid, "title"), None) |
|
785
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
163 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
164 def testLinkChange(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
165 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
166 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
167 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
168 self.assertEqual(self.db.issue.get(nid, "status"), '1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
169 self.db.issue.set(nid, status='2') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
170 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
171 self.assertEqual(self.db.issue.get(nid, "status"), '2') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
172 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
173 def testLinkUnset(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
174 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
175 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
176 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
177 self.db.issue.set(nid, status=None) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
178 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
179 self.assertEqual(self.db.issue.get(nid, "status"), None) |
|
785
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
180 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
181 def testMultilinkChange(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
182 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
183 u1 = self.db.user.create(username='foo%s'%commit) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
184 u2 = self.db.user.create(username='bar%s'%commit) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
185 nid = self.db.issue.create(title="spam", nosy=[u1]) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
186 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
187 self.assertEqual(self.db.issue.get(nid, "nosy"), [u1]) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
188 self.db.issue.set(nid, nosy=[]) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
189 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
190 self.assertEqual(self.db.issue.get(nid, "nosy"), []) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
191 self.db.issue.set(nid, nosy=[u1,u2]) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
192 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
193 self.assertEqual(self.db.issue.get(nid, "nosy"), [u1,u2]) |
|
976
8c2036dace08
implemented multilink changes (and a unit test)
Richard Jones <richard@users.sourceforge.net>
parents:
974
diff
changeset
|
194 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
195 def testDateChange(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
196 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
197 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
198 a = self.db.issue.get(nid, "deadline") |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
199 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
200 self.db.issue.set(nid, deadline=date.Date()) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
201 b = self.db.issue.get(nid, "deadline") |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
202 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
203 self.assertNotEqual(a, b) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
204 self.assertNotEqual(b, date.Date('1970-1-1 00:00:00')) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
205 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
206 def testDateUnset(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
207 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
208 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
209 self.db.issue.set(nid, deadline=date.Date()) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
210 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
211 self.assertNotEqual(self.db.issue.get(nid, "deadline"), None) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
212 self.db.issue.set(nid, deadline=None) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
213 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
214 self.assertEqual(self.db.issue.get(nid, "deadline"), None) |
|
785
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
215 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
216 def testIntervalChange(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
217 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
218 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
219 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
220 a = self.db.issue.get(nid, "foo") |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
221 i = date.Interval('-1d') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
222 self.db.issue.set(nid, foo=i) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
223 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
224 self.assertNotEqual(self.db.issue.get(nid, "foo"), a) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
225 self.assertEqual(i, self.db.issue.get(nid, "foo")) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
226 j = date.Interval('1y') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
227 self.db.issue.set(nid, foo=j) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
228 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
229 self.assertNotEqual(self.db.issue.get(nid, "foo"), i) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
230 self.assertEqual(j, self.db.issue.get(nid, "foo")) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
231 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
232 def testIntervalUnset(self): |
|
1264
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
233 for commit in (0,1): |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
234 nid = self.db.issue.create(title="spam", status='1') |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
235 self.db.issue.set(nid, foo=date.Interval('-1d')) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
236 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
237 self.assertNotEqual(self.db.issue.get(nid, "foo"), None) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
238 self.db.issue.set(nid, foo=None) |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
239 if commit: self.db.commit() |
|
9e6743c00b5f
more anal unit tests
Richard Jones <richard@users.sourceforge.net>
parents:
1261
diff
changeset
|
240 self.assertEqual(self.db.issue.get(nid, "foo"), None) |
|
785
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
241 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
242 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
|
243 userid = self.db.user.create(username='foo', assignable=1) |
|
1168
94620e088e3a
fixes to the rdbms backends
Richard Jones <richard@users.sourceforge.net>
parents:
1165
diff
changeset
|
244 self.assertEqual(1, self.db.user.get(userid, 'assignable')) |
|
902
b0d3d3535998
Bugger it. Here's the current shape of the new security implementation.
Richard Jones <richard@users.sourceforge.net>
parents:
891
diff
changeset
|
245 self.db.user.set(userid, assignable=0) |
|
1168
94620e088e3a
fixes to the rdbms backends
Richard Jones <richard@users.sourceforge.net>
parents:
1165
diff
changeset
|
246 self.assertEqual(self.db.user.get(userid, 'assignable'), 0) |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
247 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
248 def testBooleanUnset(self): |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
249 nid = self.db.user.create(username='foo', assignable=1) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
250 self.db.user.set(nid, assignable=None) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
251 self.assertEqual(self.db.user.get(nid, "assignable"), None) |
|
887
e7169d6e6e45
added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents:
886
diff
changeset
|
252 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
253 def testNumberChange(self): |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
254 nid = self.db.user.create(username='foo', age=1) |
|
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
255 self.assertEqual(1, self.db.user.get(nid, 'age')) |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
256 self.db.user.set(nid, age=3) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
257 self.assertNotEqual(self.db.user.get(nid, 'age'), 1) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
258 self.db.user.set(nid, age=1.0) |
|
1532
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
259 self.assertEqual(self.db.user.get(nid, 'age'), 1) |
|
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
260 self.db.user.set(nid, age=0) |
|
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
261 self.assertEqual(self.db.user.get(nid, 'age'), 0) |
|
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
262 |
|
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
263 nid = self.db.user.create(username='bar', age=0) |
|
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
264 self.assertEqual(self.db.user.get(nid, 'age'), 0) |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
265 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
266 def testNumberUnset(self): |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
267 nid = self.db.user.create(username='foo', age=1) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
268 self.db.user.set(nid, age=None) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
269 self.assertEqual(self.db.user.get(nid, "age"), None) |
|
886
816b593c755f
added tests for boolean type, and fixes to anydbm backend
Richard Jones <richard@users.sourceforge.net>
parents:
868
diff
changeset
|
270 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
271 def testKeyValue(self): |
|
1174
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
1170
diff
changeset
|
272 newid = self.db.user.create(username="spam") |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
1170
diff
changeset
|
273 self.assertEqual(self.db.user.lookup('spam'), newid) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
1170
diff
changeset
|
274 self.db.commit() |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
1170
diff
changeset
|
275 self.assertEqual(self.db.user.lookup('spam'), newid) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
1170
diff
changeset
|
276 self.db.user.retire(newid) |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
1170
diff
changeset
|
277 self.assertRaises(KeyError, self.db.user.lookup, 'spam') |
|
8e318dfaf479
Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
1170
diff
changeset
|
278 |
|
1378
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
279 # use the key again now that the old is retired |
|
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
280 newid2 = self.db.user.create(username="spam") |
|
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
281 self.assertNotEqual(newid, newid2) |
|
1523
63aa7be52d2c
checked to make sure that the restored item doesn't clash...
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1519
diff
changeset
|
282 # try to restore old node. this shouldn't succeed! |
|
63aa7be52d2c
checked to make sure that the restored item doesn't clash...
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1519
diff
changeset
|
283 self.assertRaises(KeyError, self.db.user.restore, newid) |
|
1378
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
284 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
285 def testRetire(self): |
|
785
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
286 self.db.issue.create(title="spam", status='1') |
|
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
287 b = self.db.status.get('1', 'name') |
|
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
288 a = self.db.status.list() |
|
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
289 self.db.status.retire('1') |
|
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
290 # make sure the list is different |
|
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
291 self.assertNotEqual(a, self.db.status.list()) |
|
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
292 # can still access the node if necessary |
|
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
293 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
|
294 self.db.commit() |
|
785
491049fb8e31
Cleaned up the hyperdb tests
Richard Jones <richard@users.sourceforge.net>
parents:
726
diff
changeset
|
295 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
|
296 self.assertNotEqual(a, self.db.status.list()) |
|
1519
6fede2aa6a12
added ability to restore retired nodes
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1506
diff
changeset
|
297 # try to restore retired node |
|
6fede2aa6a12
added ability to restore retired nodes
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1506
diff
changeset
|
298 self.db.status.restore('1') |
|
1780
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
299 |
|
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
300 def testCacheCreateSet(self): |
|
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
301 self.db.issue.create(title="spam", status='1') |
|
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
302 a = self.db.issue.get('1', 'title') |
|
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
303 self.assertEqual(a, 'spam') |
|
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
304 self.db.issue.set('1', title='ham') |
|
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
305 b = self.db.issue.get('1', 'title') |
|
d2801a2b0a77
Initial implementation (half-baked) at new Tracker instance.
Richard Jones <richard@users.sourceforge.net>
parents:
1740
diff
changeset
|
306 self.assertEqual(b, 'ham') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
307 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
308 def testSerialisation(self): |
|
1253
fe67477e678f
fixes from changes today
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
309 nid = self.db.issue.create(title="spam", status='1', |
|
676
bc46480e2a2b
Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents:
646
diff
changeset
|
310 deadline=date.Date(), foo=date.Interval('-1d')) |
|
bc46480e2a2b
Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents:
646
diff
changeset
|
311 self.db.commit() |
|
1253
fe67477e678f
fixes from changes today
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
312 assert isinstance(self.db.issue.get(nid, 'deadline'), date.Date) |
|
fe67477e678f
fixes from changes today
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
313 assert isinstance(self.db.issue.get(nid, 'foo'), date.Interval) |
|
fe67477e678f
fixes from changes today
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
314 uid = self.db.user.create(username="fozzy", |
|
676
bc46480e2a2b
Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents:
646
diff
changeset
|
315 password=password.Password('t. bear')) |
|
bc46480e2a2b
Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents:
646
diff
changeset
|
316 self.db.commit() |
|
1253
fe67477e678f
fixes from changes today
Richard Jones <richard@users.sourceforge.net>
parents:
1244
diff
changeset
|
317 assert isinstance(self.db.user.get(uid, 'password'), password.Password) |
|
676
bc46480e2a2b
Fixed serialisation problem...
Richard Jones <richard@users.sourceforge.net>
parents:
646
diff
changeset
|
318 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
319 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
|
320 # 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
|
321 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
|
322 num_files = self.db.numfiles() |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
323 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
|
324 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
|
325 self.db.rollback() |
|
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
326 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
|
327 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
|
328 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
|
329 self.db.commit() |
|
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
330 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
|
331 self.db.rollback() |
|
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
332 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
|
333 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
|
334 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
|
335 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
|
336 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
|
337 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
|
338 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
|
339 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
|
340 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
|
341 self.assertNotEqual(num_files, num_files2) |
|
461
b579418f7ed1
Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents:
441
diff
changeset
|
342 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
|
343 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
|
344 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
|
345 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
|
346 |
|
1492
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
347 # rollback / cache interaction |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
348 name1 = self.db.user.get('1', 'username') |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
349 self.db.user.set('1', username = name1+name1) |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
350 # get the prop so the info's forced into the cache (if there is one) |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
351 self.db.user.get('1', 'username') |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
352 self.db.rollback() |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
353 name2 = self.db.user.get('1', 'username') |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
354 self.assertEqual(name1, name2) |
|
2fc7d4a8c9e7
fixed sqlite rollback/caching bug [SF#689383]
Richard Jones <richard@users.sourceforge.net>
parents:
1486
diff
changeset
|
355 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
356 def testDestroyNoJournalling(self): |
|
891
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
357 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
|
358 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
359 def testDestroyJournalling(self): |
|
891
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
360 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
|
361 |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
362 def innerTestDestroy(self, klass): |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
363 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
|
364 n = len(klass.list()) |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
365 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
|
366 klass.destroy(newid) |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
367 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
|
368 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
|
369 if klass.do_journal: |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
370 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
|
371 |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
372 # now with a commit |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
373 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
|
374 n = len(klass.list()) |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
375 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
|
376 self.db.commit() |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
377 klass.destroy(newid) |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
378 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
|
379 self.db.commit() |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
380 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
|
381 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
|
382 if klass.do_journal: |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
383 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
|
384 |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
385 # now with a rollback |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
386 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
|
387 n = len(klass.list()) |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
388 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
|
389 self.db.commit() |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
390 klass.destroy(newid) |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
391 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
|
392 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
|
393 self.db.rollback() |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
394 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
|
395 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
|
396 if klass.do_journal: |
|
974a4b94c5e3
Implemented the destroy() method needed by the session database...
Richard Jones <richard@users.sourceforge.net>
parents:
890
diff
changeset
|
397 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
|
398 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
399 def testExceptions(self): |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
400 # this tests the exceptions that should be raised |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
401 ar = self.assertRaises |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
402 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
403 # |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
404 # class create |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
405 # |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
406 # string property |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
407 ar(TypeError, self.db.status.create, name=1) |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
408 # invalid property name |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
409 ar(KeyError, self.db.status.create, foo='foo') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
410 # key name clash |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
411 ar(ValueError, self.db.status.create, name='unread') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
412 # invalid link index |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
413 ar(IndexError, self.db.issue.create, title='foo', status='bar') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
414 # invalid link value |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
415 ar(ValueError, self.db.issue.create, title='foo', status=1) |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
416 # invalid multilink type |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
417 ar(TypeError, self.db.issue.create, title='foo', status='1', |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
418 nosy='hello') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
419 # invalid multilink index type |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
420 ar(ValueError, self.db.issue.create, title='foo', status='1', |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
421 nosy=[1]) |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
422 # invalid multilink index |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
423 ar(IndexError, self.db.issue.create, title='foo', status='1', |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
424 nosy=['10']) |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
425 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
426 # |
|
862
37fb48c3a136
Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents:
860
diff
changeset
|
427 # key property |
|
37fb48c3a136
Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents:
860
diff
changeset
|
428 # |
|
37fb48c3a136
Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents:
860
diff
changeset
|
429 # key must be a String |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
430 ar(TypeError, self.db.file.setkey, 'fooz') |
|
862
37fb48c3a136
Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents:
860
diff
changeset
|
431 # key must exist |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
432 ar(KeyError, self.db.file.setkey, 'fubar') |
|
862
37fb48c3a136
Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents:
860
diff
changeset
|
433 |
|
37fb48c3a136
Did some old TODOs
Richard Jones <richard@users.sourceforge.net>
parents:
860
diff
changeset
|
434 # |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
435 # class get |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
436 # |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
437 # invalid node id |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
438 ar(IndexError, self.db.issue.get, '99', 'title') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
439 # invalid property name |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
440 ar(KeyError, self.db.status.get, '2', 'foo') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
441 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
442 # |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
443 # class set |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
444 # |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
445 # invalid node id |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
446 ar(IndexError, self.db.issue.set, '99', title='foo') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
447 # invalid property name |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
448 ar(KeyError, self.db.status.set, '1', foo='foo') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
449 # string property |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
450 ar(TypeError, self.db.status.set, '1', name=1) |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
451 # key name clash |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
452 ar(ValueError, self.db.status.set, '2', name='unread') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
453 # set up a valid issue for me to work on |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
454 id = self.db.issue.create(title="spam", status='1') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
455 # invalid link index |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
456 ar(IndexError, self.db.issue.set, id, title='foo', status='bar') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
457 # invalid link value |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
458 ar(ValueError, self.db.issue.set, id, title='foo', status=1) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
459 # invalid multilink type |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
460 ar(TypeError, self.db.issue.set, id, title='foo', status='1', |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
461 nosy='hello') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
462 # invalid multilink index type |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
463 ar(ValueError, self.db.issue.set, id, title='foo', status='1', |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
464 nosy=[1]) |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
465 # invalid multilink index |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
466 ar(IndexError, self.db.issue.set, id, title='foo', status='1', |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
467 nosy=['10']) |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
468 # NOTE: the following increment the username to avoid problems |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
469 # within metakit's backend (it creates the node, and then sets the |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
470 # info, so the create (and by a fluke the username set) go through |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
471 # before the age/assignable/etc. set, which raises the exception) |
|
887
e7169d6e6e45
added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents:
886
diff
changeset
|
472 # invalid number value |
|
e7169d6e6e45
added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents:
886
diff
changeset
|
473 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
|
474 # invalid boolean value |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
475 ar(TypeError, self.db.user.create, username='foo2', assignable='true') |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
476 nid = self.db.user.create(username='foo3') |
|
887
e7169d6e6e45
added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents:
886
diff
changeset
|
477 # invalid number value |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
478 ar(TypeError, self.db.user.set, nid, age='a') |
|
887
e7169d6e6e45
added tests for number type too
Richard Jones <richard@users.sourceforge.net>
parents:
886
diff
changeset
|
479 # invalid boolean value |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
480 ar(TypeError, self.db.user.set, nid, assignable='true') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
481 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
482 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
|
483 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
|
484 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
|
485 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
|
486 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
|
487 |
|
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
|
488 # 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
|
489 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
|
490 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
|
491 (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
|
492 self.assertEqual(nodeid, '1') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
493 self.assertEqual(journaltag, self.db.user.lookup('admin')) |
|
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
|
494 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
|
495 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
|
496 keys.sort() |
|
1305
d8de80de9fc4
oops, fixed unit tests for journal change
Richard Jones <richard@users.sourceforge.net>
parents:
1264
diff
changeset
|
497 self.assertEqual(keys, []) |
|
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
|
498 |
|
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
|
499 # 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
|
500 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
|
501 self.assertEqual(1, len(journal)) |
| 973 | 502 self.db.issue.set('1', assignedto='1') |
|
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
|
503 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
|
504 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
|
505 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
|
506 (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
|
507 self.assertEqual('1', nodeid) |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
508 self.assertEqual('1', journaltag) |
|
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
|
509 self.assertEqual('link', action) |
| 973 | 510 self.assertEqual(('issue', '1', 'assignedto'), params) |
|
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
|
511 |
|
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
|
512 # journal entry for unlink |
| 973 | 513 self.db.issue.set('1', assignedto='2') |
|
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
|
514 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
|
515 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
|
516 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
|
517 (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
|
518 self.assertEqual('1', nodeid) |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
519 self.assertEqual('1', journaltag) |
|
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
|
520 self.assertEqual('unlink', action) |
| 973 | 521 self.assertEqual(('issue', '1', 'assignedto'), params) |
|
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
|
522 |
|
860
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
523 # test disabling journalling |
|
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
524 # ... get the last entry |
|
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
525 time.sleep(1) |
|
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
526 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
|
527 (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
|
528 self.db.issue.disableJournalling() |
|
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
529 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
|
530 self.db.commit() |
|
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
531 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
|
532 (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
|
533 # 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
|
534 self.assertEqual(date_stamp, date_stamp2) |
|
1183
08a13a84ed43
Some speedups - both of the SQL backends can handle using only one cursor.
Richard Jones <richard@users.sourceforge.net>
parents:
1178
diff
changeset
|
535 time.sleep(1) |
|
860
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
536 self.db.issue.enableJournalling() |
|
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
537 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
|
538 self.db.commit() |
|
2df32a73eb45
Implemented a switch to disable journalling for a Class.
Richard Jones <richard@users.sourceforge.net>
parents:
859
diff
changeset
|
539 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
|
540 (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
|
541 # 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
|
542 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
|
543 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
544 def testJournalPreCommit(self): |
|
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
545 id = self.db.user.create(username="mary") |
|
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
546 self.assertEqual(len(self.db.getjournal('user', id)), 1) |
|
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
547 self.db.commit() |
|
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
548 |
|
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
549 def testPack(self): |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
550 id = 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
|
551 self.db.commit() |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
552 self.db.issue.set(id, status='2') |
|
562
62febbd7ffec
You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
555
diff
changeset
|
553 self.db.commit() |
| 973 | 554 |
| 555 # sleep for at least a second, then get a date to pack at | |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
556 time.sleep(1) |
| 973 | 557 pack_before = date.Date('.') |
| 558 | |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
559 # wait another second and add one more entry |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
560 time.sleep(1) |
|
1178
18bb36e4f62f
Remove some assumptions about what idi numbers will be created.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1176
diff
changeset
|
561 self.db.issue.set(id, status='3') |
|
566
73af3e54c309
We need to keep the last 'set' entry in the journal...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
562
diff
changeset
|
562 self.db.commit() |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
563 jlen = len(self.db.getjournal('issue', id)) |
| 973 | 564 |
| 565 # pack | |
|
562
62febbd7ffec
You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
555
diff
changeset
|
566 self.db.pack(pack_before) |
| 973 | 567 |
|
974
84216d63ed9c
ahhh, I understand now
Richard Jones <richard@users.sourceforge.net>
parents:
973
diff
changeset
|
568 # we should have the create and last set entries now |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
569 self.assertEqual(jlen-1, len(self.db.getjournal('issue', id))) |
|
562
62febbd7ffec
You can now use the roundup-admin tool to pack the database
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
555
diff
changeset
|
570 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
571 def testSearching(self): |
|
825
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
572 self.db.file.create(content='hello', type="text/plain") |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
573 self.db.file.create(content='world', type="text/frozz", |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
574 comment='blah blah') |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
575 self.db.issue.create(files=['1', '2'], title="flebble plop") |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
576 self.db.issue.create(title="flebble frooz") |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
577 self.db.commit() |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
578 self.assertEquals(self.db.indexer.search(['hello'], self.db.issue), |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
579 {'1': {'files': ['1']}}) |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
580 self.assertEquals(self.db.indexer.search(['world'], self.db.issue), {}) |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
581 self.assertEquals(self.db.indexer.search(['frooz'], self.db.issue), |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
582 {'2': {}}) |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
583 self.assertEquals(self.db.indexer.search(['flebble'], self.db.issue), |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
785
diff
changeset
|
584 {'2': {}, '1': {}}) |
|
826
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
585 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
586 def testReindexing(self): |
|
826
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
587 self.db.issue.create(title="frooz") |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
588 self.db.commit() |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
589 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
|
590 {'1': {}}) |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
591 self.db.issue.set('1', title="dooble") |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
592 self.db.commit() |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
593 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
|
594 {'1': {}}) |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
595 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
|
596 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
597 def testForcedReindexing(self): |
|
826
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
598 self.db.issue.create(title="flebble frooz") |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
599 self.db.commit() |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
600 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
|
601 {'1': {}}) |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
602 self.db.indexer.quiet = 1 |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
603 self.db.indexer.force_reindex() |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
604 self.db.post_init() |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
605 self.db.indexer.quiet = 9 |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
606 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
|
607 {'1': {}}) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
608 |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
609 # |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
610 # searching tests follow |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
611 # |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
612 def testFind(self): |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
613 self.db.user.create(username='test') |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
614 ids = [] |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
615 ids.append(self.db.issue.create(status="1", nosy=['1'])) |
|
1563
e2a8ce4d2317
Class.find() may now find unset Links [SF#700620]
Richard Jones <richard@users.sourceforge.net>
parents:
1555
diff
changeset
|
616 oddid = self.db.issue.create(status="2", nosy=['2'], assignedto='2') |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
617 ids.append(self.db.issue.create(status="1", nosy=['1','2'])) |
|
1563
e2a8ce4d2317
Class.find() may now find unset Links [SF#700620]
Richard Jones <richard@users.sourceforge.net>
parents:
1555
diff
changeset
|
618 self.db.issue.create(status="3", nosy=['1'], assignedto='1') |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
619 ids.sort() |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
620 |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
621 # should match first and third |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
622 got = self.db.issue.find(status='1') |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
623 got.sort() |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
624 self.assertEqual(got, ids) |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
625 |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
626 # none |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
627 self.assertEqual(self.db.issue.find(status='4'), []) |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
628 |
|
1563
e2a8ce4d2317
Class.find() may now find unset Links [SF#700620]
Richard Jones <richard@users.sourceforge.net>
parents:
1555
diff
changeset
|
629 # should match first and third |
|
e2a8ce4d2317
Class.find() may now find unset Links [SF#700620]
Richard Jones <richard@users.sourceforge.net>
parents:
1555
diff
changeset
|
630 got = self.db.issue.find(assignedto=None) |
|
e2a8ce4d2317
Class.find() may now find unset Links [SF#700620]
Richard Jones <richard@users.sourceforge.net>
parents:
1555
diff
changeset
|
631 got.sort() |
|
e2a8ce4d2317
Class.find() may now find unset Links [SF#700620]
Richard Jones <richard@users.sourceforge.net>
parents:
1555
diff
changeset
|
632 self.assertEqual(got, ids) |
|
e2a8ce4d2317
Class.find() may now find unset Links [SF#700620]
Richard Jones <richard@users.sourceforge.net>
parents:
1555
diff
changeset
|
633 |
|
1222
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
634 # should match first three |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
635 got = self.db.issue.find(status='1', nosy='2') |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
636 got.sort() |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
637 ids.append(oddid) |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
638 ids.sort() |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
639 self.assertEqual(got, ids) |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
640 |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
641 # none |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
642 self.assertEqual(self.db.issue.find(status='4', nosy='3'), []) |
|
bc3bc3248dd1
added Class.find() unit test, fixed implementations
Richard Jones <richard@users.sourceforge.net>
parents:
1198
diff
changeset
|
643 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
644 def testStringFind(self): |
|
1198
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
645 ids = [] |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
646 ids.append(self.db.issue.create(title="spam")) |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
647 self.db.issue.create(title="not spam") |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
648 ids.append(self.db.issue.create(title="spam")) |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
649 ids.sort() |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
650 got = self.db.issue.stringFind(title='spam') |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
651 got.sort() |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
652 self.assertEqual(got, ids) |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
653 self.assertEqual(self.db.issue.stringFind(title='fubar'), []) |
|
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
654 |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
655 def filteringSetup(self): |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
656 for user in ( |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
657 {'username': 'bleep'}, |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
658 {'username': 'blop'}, |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
659 {'username': 'blorp'}): |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
660 self.db.user.create(**user) |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
661 iss = self.db.issue |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
662 for issue in ( |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
663 {'title': 'issue one', 'status': '2', |
|
1506
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
664 'foo': date.Interval('1:10'), |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
665 'deadline': date.Date('2003-01-01.00:00')}, |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
666 {'title': 'issue two', 'status': '1', |
|
1506
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
667 'foo': date.Interval('1d'), |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
668 'deadline': date.Date('2003-02-16.22:50')}, |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
669 {'title': 'issue three', 'status': '1', |
|
1598
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
670 'nosy': ['1','2'], 'deadline': date.Date('2003-02-18')}, |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
671 {'title': 'non four', 'status': '3', |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
672 'foo': date.Interval('0:10'), |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
673 'nosy': ['1'], 'deadline': date.Date('2004-03-08')}): |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
674 self.db.issue.create(**issue) |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
675 self.db.commit() |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
676 return self.assertEqual, self.db.issue.filter |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
677 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
678 def testFilteringID(self): |
|
1365
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
679 ae, filt = self.filteringSetup() |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
680 ae(filt(None, {'id': '1'}, ('+','id'), (None,None)), ['1']) |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
681 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
682 def testFilteringString(self): |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
683 ae, filt = self.filteringSetup() |
|
1631
8a908bbad1ef
A couple of form value handling changes:
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
684 ae(filt(None, {'title': ['one']}, ('+','id'), (None,None)), ['1']) |
|
8a908bbad1ef
A couple of form value handling changes:
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
685 ae(filt(None, {'title': ['issue']}, ('+','id'), (None,None)), |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
686 ['1','2','3']) |
|
1631
8a908bbad1ef
A couple of form value handling changes:
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
687 ae(filt(None, {'title': ['one', 'two']}, ('+','id'), (None,None)), |
|
8a908bbad1ef
A couple of form value handling changes:
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
688 ['1', '2']) |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
689 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
690 def testFilteringLink(self): |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
691 ae, filt = self.filteringSetup() |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
692 ae(filt(None, {'status': '1'}, ('+','id'), (None,None)), ['2','3']) |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
693 |
|
1740
5ca448ff8052
don't have RDBMS backends list retired nodes [SF#767319]
Richard Jones <richard@users.sourceforge.net>
parents:
1631
diff
changeset
|
694 def testFilteringRetired(self): |
|
5ca448ff8052
don't have RDBMS backends list retired nodes [SF#767319]
Richard Jones <richard@users.sourceforge.net>
parents:
1631
diff
changeset
|
695 ae, filt = self.filteringSetup() |
|
5ca448ff8052
don't have RDBMS backends list retired nodes [SF#767319]
Richard Jones <richard@users.sourceforge.net>
parents:
1631
diff
changeset
|
696 self.db.issue.retire('2') |
|
5ca448ff8052
don't have RDBMS backends list retired nodes [SF#767319]
Richard Jones <richard@users.sourceforge.net>
parents:
1631
diff
changeset
|
697 ae(filt(None, {'status': '1'}, ('+','id'), (None,None)), ['3']) |
|
5ca448ff8052
don't have RDBMS backends list retired nodes [SF#767319]
Richard Jones <richard@users.sourceforge.net>
parents:
1631
diff
changeset
|
698 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
699 def testFilteringMultilink(self): |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
700 ae, filt = self.filteringSetup() |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
701 ae(filt(None, {'nosy': '2'}, ('+','id'), (None,None)), ['3']) |
|
1555
948c7764d46c
implemented ability to search for multilink properties with no value (not in mk)
Richard Jones <richard@users.sourceforge.net>
parents:
1542
diff
changeset
|
702 ae(filt(None, {'nosy': '-1'}, ('+','id'), (None,None)), ['1', '2']) |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
703 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
704 def testFilteringMany(self): |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
705 ae, filt = self.filteringSetup() |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
706 ae(filt(None, {'nosy': '2', 'status': '1'}, ('+','id'), (None,None)), |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
707 ['3']) |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
708 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
709 def testFilteringRange(self): |
|
1506
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
710 ae, filt = self.filteringSetup() |
|
1596
33a0d94c7658
searching on ranges of intervals is implemented
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1567
diff
changeset
|
711 # Date ranges |
|
1598
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
712 ae(filt(None, {'deadline': 'from 2003-02-10 to 2003-02-23'}), ['2','3']) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
713 ae(filt(None, {'deadline': '2003-02-10; 2003-02-23'}), ['2','3']) |
|
1506
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
714 ae(filt(None, {'deadline': '; 2003-02-16'}), ['1']) |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
715 # Lets assume people won't invent a time machine, otherwise this test |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
716 # may fail :) |
|
1598
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
717 ae(filt(None, {'deadline': 'from 2003-02-16'}), ['2', '3', '4']) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
718 ae(filt(None, {'deadline': '2003-02-16;'}), ['2', '3', '4']) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
719 # year and month granularity |
|
1599
cc96bf971b33
extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1598
diff
changeset
|
720 ae(filt(None, {'deadline': '2002'}), []) |
|
1598
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
721 ae(filt(None, {'deadline': '2003'}), ['1', '2', '3']) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
722 ae(filt(None, {'deadline': '2004'}), ['4']) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
723 ae(filt(None, {'deadline': '2003-02'}), ['2', '3']) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
724 ae(filt(None, {'deadline': '2003-03'}), []) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
725 ae(filt(None, {'deadline': '2003-02-16'}), ['2']) |
|
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
726 ae(filt(None, {'deadline': '2003-02-17'}), []) |
|
1596
33a0d94c7658
searching on ranges of intervals is implemented
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1567
diff
changeset
|
727 # Interval ranges |
|
33a0d94c7658
searching on ranges of intervals is implemented
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1567
diff
changeset
|
728 ae(filt(None, {'foo': 'from 0:50 to 2:00'}), ['1']) |
|
33a0d94c7658
searching on ranges of intervals is implemented
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1567
diff
changeset
|
729 ae(filt(None, {'foo': 'from 0:50 to 1d 2:00'}), ['1', '2']) |
|
33a0d94c7658
searching on ranges of intervals is implemented
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1567
diff
changeset
|
730 ae(filt(None, {'foo': 'from 5:50'}), ['2']) |
|
1599
cc96bf971b33
extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1598
diff
changeset
|
731 ae(filt(None, {'foo': 'to 0:05'}), []) |
|
1506
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
732 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
733 def testFilteringIntervalSort(self): |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
734 ae, filt = self.filteringSetup() |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
735 # ascending should sort None, 1:10, 1d |
|
1598
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
736 ae(filt(None, {}, ('+','foo'), (None,None)), ['3', '4', '1', '2']) |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
737 # descending should sort 1d, 1:10, None |
|
1598
b3263567b8c6
new tests for new range specs - currently failing
Richard Jones <richard@users.sourceforge.net>
parents:
1597
diff
changeset
|
738 ae(filt(None, {}, ('-','foo'), (None,None)), ['2', '1', '4', '3']) |
|
1486
f5f60c75a458
added test for error in sqlite backend, and fixed *dbm backend error
Richard Jones <richard@users.sourceforge.net>
parents:
1479
diff
changeset
|
739 |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
740 # XXX add sorting tests for other types |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1492
diff
changeset
|
741 # XXX test auditors and reactors |
|
1361
b94cc62090be
reminder comments for where we need new tests
Richard Jones <richard@users.sourceforge.net>
parents:
1333
diff
changeset
|
742 |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
743 class anydbmReadOnlyDBTestCase(MyTestCase): |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
744 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
|
745 from roundup.backends import anydbm |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
746 # remove previous test, ignore errors |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
747 if os.path.exists(config.DATABASE): |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
748 shutil.rmtree(config.DATABASE) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
749 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
750 db = anydbm.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
751 setupSchema(db, 1, anydbm) |
|
1333
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
752 db.close() |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
753 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
|
754 setupSchema(self.db, 0, anydbm) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
755 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
756 def testExceptions(self): |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
757 # this tests the exceptions that should be raised |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
758 ar = self.assertRaises |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
759 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
760 # this tests the exceptions that should be raised |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
761 ar(DatabaseError, self.db.status.create, name="foo") |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
762 ar(DatabaseError, self.db.status.set, '1', name="foo") |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
763 ar(DatabaseError, self.db.status.retire, '1') |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
764 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
765 |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
766 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
|
767 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
|
768 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
|
769 # remove previous test, ignore errors |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
770 if os.path.exists(config.DATABASE): |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
771 shutil.rmtree(config.DATABASE) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
772 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
773 self.db = bsddb.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
774 setupSchema(self.db, 1, 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
|
775 |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
776 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
|
777 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
|
778 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
|
779 # remove previous test, ignore errors |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
780 if os.path.exists(config.DATABASE): |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
781 shutil.rmtree(config.DATABASE) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
782 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
783 db = bsddb.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
784 setupSchema(db, 1, bsddb) |
|
1333
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
785 db.close() |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
786 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
|
787 setupSchema(self.db, 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
|
788 |
|
86ebcf734a8e
Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
789 |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
790 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
|
791 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
|
792 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
|
793 # remove previous test, ignore errors |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
794 if os.path.exists(config.DATABASE): |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
795 shutil.rmtree(config.DATABASE) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
796 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
797 self.db = bsddb3.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
798 setupSchema(self.db, 1, 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
|
799 |
|
441
698534628072
Added transaction tests to test_db
Richard Jones <richard@users.sourceforge.net>
parents:
432
diff
changeset
|
800 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
|
801 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
|
802 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
|
803 # remove previous test, ignore errors |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
804 if os.path.exists(config.DATABASE): |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
805 shutil.rmtree(config.DATABASE) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
806 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
807 db = bsddb3.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
808 setupSchema(db, 1, bsddb3) |
|
1333
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
809 db.close() |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
461
diff
changeset
|
810 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
|
811 setupSchema(self.db, 0, bsddb3) |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
812 |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
813 |
|
1365
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
814 class mysqlDBTestCase(anydbmDBTestCase): |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
815 def setUp(self): |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
816 from roundup.backends import mysql |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
817 # remove previous test, ignore errors |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
818 if os.path.exists(config.DATABASE): |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
819 shutil.rmtree(config.DATABASE) |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
820 os.makedirs(config.DATABASE + '/files') |
|
1433
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
821 # open database for testing |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
822 self.db = mysql.Database(config, 'admin') |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
823 setupSchema(self.db, 1, mysql) |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
824 |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
825 def tearDown(self): |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
826 from roundup.backends import mysql |
|
1415
6883852e9b15
mysql backend passes all tests (at last!)
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1392
diff
changeset
|
827 self.db.close() |
|
1434
b953750bdc04
trackers on mysql can be initialised
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1433
diff
changeset
|
828 mysql.Database.nuke(config) |
|
1365
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
829 |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
830 class mysqlReadOnlyDBTestCase(anydbmReadOnlyDBTestCase): |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
831 def setUp(self): |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
832 from roundup.backends import mysql |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
833 # remove previous test, ignore errors |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
834 if os.path.exists(config.DATABASE): |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
835 shutil.rmtree(config.DATABASE) |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
836 os.makedirs(config.DATABASE + '/files') |
|
1415
6883852e9b15
mysql backend passes all tests (at last!)
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1392
diff
changeset
|
837 self.db = mysql.Database(config) |
|
1365
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
838 setupSchema(self.db, 0, mysql) |
|
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
839 |
|
1433
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
840 def tearDown(self): |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
841 from roundup.backends import mysql |
|
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
842 self.db.close() |
|
1434
b953750bdc04
trackers on mysql can be initialised
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1433
diff
changeset
|
843 mysql.Database.nuke(config) |
|
1433
8429095241d7
mysql tests will not be run if there is no chance of passing.
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1415
diff
changeset
|
844 |
|
1165
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
845 class sqliteDBTestCase(anydbmDBTestCase): |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
846 def setUp(self): |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
847 from roundup.backends import sqlite |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
848 # remove previous test, ignore errors |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
849 if os.path.exists(config.DATABASE): |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
850 shutil.rmtree(config.DATABASE) |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
851 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
852 self.db = sqlite.Database(config, 'admin') |
|
1165
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
853 setupSchema(self.db, 1, sqlite) |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
854 |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
855 class sqliteReadOnlyDBTestCase(anydbmReadOnlyDBTestCase): |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
856 def setUp(self): |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
857 from roundup.backends import sqlite |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
858 # remove previous test, ignore errors |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
859 if os.path.exists(config.DATABASE): |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
860 shutil.rmtree(config.DATABASE) |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
861 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
862 db = sqlite.Database(config, 'admin') |
|
1165
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
863 setupSchema(db, 1, sqlite) |
|
1333
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
864 db.close() |
|
1165
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
865 self.db = sqlite.Database(config) |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
866 setupSchema(self.db, 0, sqlite) |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
867 |
|
14467c765167
sqlite backend!
Richard Jones <richard@users.sourceforge.net>
parents:
1156
diff
changeset
|
868 |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
869 class metakitDBTestCase(anydbmDBTestCase): |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
870 def setUp(self): |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
871 from roundup.backends import metakit |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
872 import weakref |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
873 metakit._instances = weakref.WeakValueDictionary() |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
874 # remove previous test, ignore errors |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
875 if os.path.exists(config.DATABASE): |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
876 shutil.rmtree(config.DATABASE) |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
877 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
878 self.db = metakit.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
879 setupSchema(self.db, 1, metakit) |
| 1143 | 880 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
881 def testTransactions(self): |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
882 # 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
|
883 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
|
884 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
|
885 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
|
886 self.db.rollback() |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
887 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
|
888 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
|
889 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
|
890 self.db.commit() |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
891 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
|
892 self.db.rollback() |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
893 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
|
894 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
|
895 self.db.rollback() |
|
1243
3a028d2f7830
Fix (re)indexing & find in back_metakit.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1222
diff
changeset
|
896 num_files = len(self.db.file.list()) |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
897 for i in range(10): |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
898 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
|
899 content="hi %d"%(i)) |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
900 self.db.commit() |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
901 # 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
|
902 # a rollback... |
|
1243
3a028d2f7830
Fix (re)indexing & find in back_metakit.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1222
diff
changeset
|
903 num_files2 = len(self.db.file.list()) |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
904 self.assertNotEqual(num_files, num_files2) |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
905 self.db.file.create(name="test", type="text/plain", content="hi") |
|
1243
3a028d2f7830
Fix (re)indexing & find in back_metakit.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1222
diff
changeset
|
906 num_rfiles = len(os.listdir(self.db.config.DATABASE + '/files/file/0')) |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
907 self.db.rollback() |
|
1243
3a028d2f7830
Fix (re)indexing & find in back_metakit.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1222
diff
changeset
|
908 num_rfiles2 = len(os.listdir(self.db.config.DATABASE + '/files/file/0')) |
|
3a028d2f7830
Fix (re)indexing & find in back_metakit.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1222
diff
changeset
|
909 self.assertEqual(num_files2, len(self.db.file.list())) |
|
3a028d2f7830
Fix (re)indexing & find in back_metakit.
Gordon B. McMillan <gmcm@users.sourceforge.net>
parents:
1222
diff
changeset
|
910 self.assertEqual(num_rfiles2, num_rfiles-1) |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
911 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
912 def testBooleanUnset(self): |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
913 # XXX: metakit can't unset Booleans :( |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
914 nid = self.db.user.create(username='foo', assignable=1) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
915 self.db.user.set(nid, assignable=None) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
916 self.assertEqual(self.db.user.get(nid, "assignable"), 0) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
917 |
|
1567
fc8998ce6274
fixed missing (pre-commit) journal entries in *dbm backends [SF#679217]
Richard Jones <richard@users.sourceforge.net>
parents:
1563
diff
changeset
|
918 def testNumberUnset(self): |
|
1392
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
919 # XXX: metakit can't unset Numbers :( |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
920 nid = self.db.user.create(username='foo', age=1) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
921 self.db.user.set(nid, age=None) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
922 self.assertEqual(self.db.user.get(nid, "age"), 0) |
|
083cce7840aa
Metakit now passes all unit tests! w00t! (except the Number/Boolean unset)
Richard Jones <richard@users.sourceforge.net>
parents:
1378
diff
changeset
|
923 |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
924 class metakitReadOnlyDBTestCase(anydbmReadOnlyDBTestCase): |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
925 def setUp(self): |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
926 from roundup.backends import metakit |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
927 import weakref |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
928 metakit._instances = weakref.WeakValueDictionary() |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
929 # remove previous test, ignore errors |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
930 if os.path.exists(config.DATABASE): |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
931 shutil.rmtree(config.DATABASE) |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
932 os.makedirs(config.DATABASE + '/files') |
|
1176
bd3b57859c37
On second thought, that last checkin was dumb.
Richard Jones <richard@users.sourceforge.net>
parents:
1174
diff
changeset
|
933 db = metakit.Database(config, 'admin') |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
854
diff
changeset
|
934 setupSchema(db, 1, metakit) |
|
1333
80d27b7d6db5
implemented whole-database locking
Richard Jones <richard@users.sourceforge.net>
parents:
1305
diff
changeset
|
935 db.close() |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
936 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
|
937 setupSchema(self.db, 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
|
938 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
939 def suite(): |
|
1532
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
940 p = [] |
|
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
941 |
|
1479
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
942 l = [ |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
943 unittest.makeSuite(anydbmDBTestCase, 'test'), |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
944 unittest.makeSuite(anydbmReadOnlyDBTestCase, 'test') |
|
405e91b5be46
fixed rdbms mutation of properties
Richard Jones <richard@users.sourceforge.net>
parents:
1434
diff
changeset
|
945 ] |
|
1532
dad5d3214a1e
additional Number test
Richard Jones <richard@users.sourceforge.net>
parents:
1528
diff
changeset
|
946 p.append('anydbm') |
|
1542
3faabaeab6aa
fixed date unserialisation for *dbm backends
Richard Jones <richard@users.sourceforge.net>
parents:
1532
diff
changeset
|
947 # return unittest.TestSuite(l) |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
948 |
|
1198
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
949 from roundup import backends |
|
1506
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
950 if hasattr(backends, 'mysql'): |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
951 from roundup.backends import mysql |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
952 try: |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
953 # Check if we can run mysql tests |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
954 import MySQLdb |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
955 db = mysql.Database(nodbconfig, 'admin') |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
956 db.conn.select_db(config.MYSQL_DBNAME) |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
957 db.sql("SHOW TABLES"); |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
958 tables = db.sql_fetchall() |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
959 if tables: |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
960 # Database should be empty. We don't dare to delete any data |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
961 raise DatabaseError, "(Database %s contains tables)" % config.MYSQL_DBNAME |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
962 db.sql("DROP DATABASE %s" % config.MYSQL_DBNAME) |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
963 db.sql("CREATE DATABASE %s" % config.MYSQL_DBNAME) |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
964 db.close() |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
965 except (MySQLdb.ProgrammingError, DatabaseError), msg: |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
966 print "Warning! Mysql tests will not be performed", msg |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
967 print "See doc/mysql.txt for more details." |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
968 else: |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
969 p.append('mysql') |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
970 l.append(unittest.makeSuite(mysqlDBTestCase, 'test')) |
|
8b698780bb7d
unit tests for filtering ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1505
diff
changeset
|
971 l.append(unittest.makeSuite(mysqlReadOnlyDBTestCase, 'test')) |
|
1415
6883852e9b15
mysql backend passes all tests (at last!)
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1392
diff
changeset
|
972 #return unittest.TestSuite(l) |
|
1365
4884fb0860f9
fixed rdbms searching by ID [SF#666615]
Richard Jones <richard@users.sourceforge.net>
parents:
1361
diff
changeset
|
973 |
|
1198
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
974 if hasattr(backends, 'sqlite'): |
|
1378
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
975 p.append('sqlite') |
|
1170
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
976 l.append(unittest.makeSuite(sqliteDBTestCase, 'test')) |
|
af104fa52746
Added some words to the installation doc about choosing backends.
Richard Jones <richard@users.sourceforge.net>
parents:
1168
diff
changeset
|
977 l.append(unittest.makeSuite(sqliteReadOnlyDBTestCase, 'test')) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
978 |
|
1198
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
979 if hasattr(backends, 'bsddb'): |
|
1378
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
980 p.append('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
|
981 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
|
982 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
|
983 |
|
1198
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
984 if hasattr(backends, 'bsddb3'): |
|
1378
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
985 p.append('bsddb3') |
|
726
e3d742c75ac3
Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents:
690
diff
changeset
|
986 l.append(unittest.makeSuite(bsddb3DBTestCase, 'test')) |
|
e3d742c75ac3
Well whadya know, bsddb3 works again.
Richard Jones <richard@users.sourceforge.net>
parents:
690
diff
changeset
|
987 l.append(unittest.makeSuite(bsddb3ReadOnlyDBTestCase, 'test')) |
|
158
86ebcf734a8e
Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
988 |
|
1198
1c5bc0e2ed7d
*** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
1183
diff
changeset
|
989 if hasattr(backends, 'metakit'): |
|
1378
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
990 p.append('metakit') |
|
854
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
991 l.append(unittest.makeSuite(metakitDBTestCase, 'test')) |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
992 l.append(unittest.makeSuite(metakitReadOnlyDBTestCase, 'test')) |
|
3cdfa5d86cec
Added metakit backend to the db tests...
Richard Jones <richard@users.sourceforge.net>
parents:
826
diff
changeset
|
993 |
|
1378
5d1fe5d51c12
note on how to fix mysql tests - also indicate which tests are being run
Richard Jones <richard@users.sourceforge.net>
parents:
1375
diff
changeset
|
994 print 'running %s backend tests'%(', '.join(p)) |
|
158
86ebcf734a8e
Added more DB to test_db. Can skip tests where imports fail.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
995 return unittest.TestSuite(l) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
996 |
|
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
|
997 # vim: set filetype=python ts=4 sw=4 et si |
