|
15 | 15 | # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
16 | 16 | # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
17 | 17 | # |
18 | | -# $Id: test_db.py,v 1.67 2003-01-14 10:52:05 richard Exp $ |
| 18 | +# $Id: test_db.py,v 1.68 2003-01-20 23:03:41 richard Exp $ |
19 | 19 |
|
20 | 20 | import unittest, os, shutil, time |
21 | 21 |
|
@@ -185,17 +185,23 @@ def testBooleanChange(self): |
185 | 185 | self.assertEqual(1, self.db.user.get(userid, 'assignable')) |
186 | 186 | self.db.user.set(userid, assignable=0) |
187 | 187 | self.assertEqual(self.db.user.get(userid, 'assignable'), 0) |
188 | | - self.db.user.set(userid, assignable=None) |
189 | | - self.assertEqual(self.db.user.get('1', "assignable"), None) |
| 188 | + |
| 189 | + def testBooleanUnset(self): |
| 190 | + nid = self.db.user.create(username='foo', assignable=1) |
| 191 | + self.db.user.set(nid, assignable=None) |
| 192 | + self.assertEqual(self.db.user.get(nid, "assignable"), None) |
190 | 193 |
|
191 | 194 | def testNumberChange(self): |
192 | 195 | nid = self.db.user.create(username='foo', age=1) |
193 | 196 | self.assertEqual(1, self.db.user.get(nid, 'age')) |
194 | | - self.db.user.set('1', age=3) |
195 | | - self.assertNotEqual(self.db.user.get('1', 'age'), 1) |
196 | | - self.db.user.set('1', age=1.0) |
197 | | - self.db.user.set('1', age=None) |
198 | | - self.assertEqual(self.db.user.get('1', "age"), None) |
| 197 | + self.db.user.set(nid, age=3) |
| 198 | + self.assertNotEqual(self.db.user.get(nid, 'age'), 1) |
| 199 | + self.db.user.set(nid, age=1.0) |
| 200 | + |
| 201 | + def testNumberUnset(self): |
| 202 | + nid = self.db.user.create(username='foo', age=1) |
| 203 | + self.db.user.set(nid, age=None) |
| 204 | + self.assertEqual(self.db.user.get(nid, "age"), None) |
199 | 205 |
|
200 | 206 | def testKeyValue(self): |
201 | 207 | newid = self.db.user.create(username="spam") |
@@ -386,15 +392,19 @@ def testExceptions(self): |
386 | 392 | # invalid multilink index |
387 | 393 | ar(IndexError, self.db.issue.set, id, title='foo', status='1', |
388 | 394 | nosy=['10']) |
| 395 | + # NOTE: the following increment the username to avoid problems |
| 396 | + # within metakit's backend (it creates the node, and then sets the |
| 397 | + # info, so the create (and by a fluke the username set) go through |
| 398 | + # before the age/assignable/etc. set, which raises the exception) |
389 | 399 | # invalid number value |
390 | 400 | ar(TypeError, self.db.user.create, username='foo', age='a') |
391 | 401 | # invalid boolean value |
392 | | - ar(TypeError, self.db.user.create, username='foo', assignable='true') |
393 | | - nid = self.db.user.create(username='foo') |
| 402 | + ar(TypeError, self.db.user.create, username='foo2', assignable='true') |
| 403 | + nid = self.db.user.create(username='foo3') |
394 | 404 | # invalid number value |
395 | | - ar(TypeError, self.db.user.set, nid, username='foo', age='a') |
| 405 | + ar(TypeError, self.db.user.set, nid, age='a') |
396 | 406 | # invalid boolean value |
397 | | - ar(TypeError, self.db.user.set, nid, username='foo', assignable='true') |
| 407 | + ar(TypeError, self.db.user.set, nid, assignable='true') |
398 | 408 |
|
399 | 409 | def testJournals(self): |
400 | 410 | self.db.user.create(username="mary") |
@@ -808,6 +818,18 @@ def testTransactions(self): |
808 | 818 | self.assertEqual(num_files2, len(self.db.file.list())) |
809 | 819 | self.assertEqual(num_rfiles2, num_rfiles-1) |
810 | 820 |
|
| 821 | + def testBooleanUnset(self): |
| 822 | + # XXX: metakit can't unset Booleans :( |
| 823 | + nid = self.db.user.create(username='foo', assignable=1) |
| 824 | + self.db.user.set(nid, assignable=None) |
| 825 | + self.assertEqual(self.db.user.get(nid, "assignable"), 0) |
| 826 | + |
| 827 | + def testNumberUnset(self): |
| 828 | + # XXX: metakit can't unset Numbers :( |
| 829 | + nid = self.db.user.create(username='foo', age=1) |
| 830 | + self.db.user.set(nid, age=None) |
| 831 | + self.assertEqual(self.db.user.get(nid, "age"), 0) |
| 832 | + |
811 | 833 | class metakitReadOnlyDBTestCase(anydbmReadOnlyDBTestCase): |
812 | 834 | def setUp(self): |
813 | 835 | from roundup.backends import metakit |
|
0 commit comments