Mercurial > p > roundup > code
comparison test/db_test_base.py @ 2728:572746c94537 maint-0.7
merge from HEAD
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 08 Oct 2004 00:21:31 +0000 |
| parents | b3ea6bad36b7 |
| children | 49d1fd44881a |
comparison
equal
deleted
inserted
replaced
| 2725:26b20d0b42fa | 2728:572746c94537 |
|---|---|
| 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" | 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
| 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, | 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
| 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
| 17 # | 17 # |
| 18 # $Id: db_test_base.py,v 1.27.2.10 2004-07-20 23:27:02 richard Exp $ | 18 # $Id: db_test_base.py,v 1.27.2.11 2004-10-08 00:21:31 richard Exp $ |
| 19 | 19 |
| 20 import unittest, os, shutil, errno, imp, sys, time, pprint | 20 import unittest, os, shutil, errno, imp, sys, time, pprint |
| 21 | 21 |
| 22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \ | 22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \ |
| 23 Interval, DatabaseError, Boolean, Number, Node | 23 Interval, DatabaseError, Boolean, Number, Node |
| 1198 self.db.getjournal('a', aid) | 1198 self.db.getjournal('a', aid) |
| 1199 self.db.getjournal('b', bid) | 1199 self.db.getjournal('b', bid) |
| 1200 | 1200 |
| 1201 def init_amod(self): | 1201 def init_amod(self): |
| 1202 self.db = self.module.Database(config, 'admin') | 1202 self.db = self.module.Database(config, 'admin') |
| 1203 a = self.module.Class(self.db, "a", name=String(), fooz=String()) | 1203 a = self.module.Class(self.db, "a", name=String(), newstr=String(), |
| 1204 newint=Interval(), newnum=Number(), newbool=Boolean(), | |
| 1205 newdate=Date()) | |
| 1204 a.setkey("name") | 1206 a.setkey("name") |
| 1205 b = self.module.Class(self.db, "b", name=String()) | 1207 b = self.module.Class(self.db, "b", name=String()) |
| 1206 b.setkey("name") | 1208 b.setkey("name") |
| 1207 self.db.post_init() | 1209 self.db.post_init() |
| 1208 | 1210 |
| 1215 self.db.commit(); self.db.close() | 1217 self.db.commit(); self.db.close() |
| 1216 | 1218 |
| 1217 # modify "a" schema | 1219 # modify "a" schema |
| 1218 self.init_amod() | 1220 self.init_amod() |
| 1219 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') | 1221 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') |
| 1220 self.assertEqual(self.db.a.get(aid, 'fooz'), None) | 1222 self.assertEqual(self.db.a.get(aid, 'newstr'), None) |
| 1223 self.assertEqual(self.db.a.get(aid, 'newint'), None) | |
| 1224 self.assertEqual(self.db.a.get(aid, 'newnum'), None) | |
| 1225 self.assertEqual(self.db.a.get(aid, 'newbool'), None) | |
| 1226 self.assertEqual(self.db.a.get(aid, 'newdate'), None) | |
| 1221 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') | 1227 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') |
| 1222 aid2 = self.db.a.create(name='aardvark', fooz='booz') | 1228 aid2 = self.db.a.create(name='aardvark', newstr='booz') |
| 1223 self.db.commit(); self.db.close() | 1229 self.db.commit(); self.db.close() |
| 1224 | 1230 |
| 1225 # test | 1231 # test |
| 1226 self.init_amod() | 1232 self.init_amod() |
| 1227 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') | 1233 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') |
| 1228 self.assertEqual(self.db.a.get(aid, 'fooz'), None) | 1234 self.assertEqual(self.db.a.get(aid, 'newstr'), None) |
| 1229 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') | 1235 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') |
| 1230 self.assertEqual(self.db.a.get(aid2, 'name'), 'aardvark') | 1236 self.assertEqual(self.db.a.get(aid2, 'name'), 'aardvark') |
| 1231 self.assertEqual(self.db.a.get(aid2, 'fooz'), 'booz') | 1237 self.assertEqual(self.db.a.get(aid2, 'newstr'), 'booz') |
| 1232 | 1238 |
| 1233 # confirm journal's ok | 1239 # confirm journal's ok |
| 1234 self.db.getjournal('a', aid) | 1240 self.db.getjournal('a', aid) |
| 1235 self.db.getjournal('a', aid2) | 1241 self.db.getjournal('a', aid2) |
| 1236 | 1242 |
| 1237 def init_amodkey(self): | 1243 def init_amodkey(self): |
| 1238 self.db = self.module.Database(config, 'admin') | 1244 self.db = self.module.Database(config, 'admin') |
| 1239 a = self.module.Class(self.db, "a", name=String(), fooz=String()) | 1245 a = self.module.Class(self.db, "a", name=String(), newstr=String()) |
| 1240 a.setkey("fooz") | 1246 a.setkey("newstr") |
| 1241 b = self.module.Class(self.db, "b", name=String()) | 1247 b = self.module.Class(self.db, "b", name=String()) |
| 1242 b.setkey("name") | 1248 b.setkey("name") |
| 1243 self.db.post_init() | 1249 self.db.post_init() |
| 1244 | 1250 |
| 1245 def test_changeClassKey(self): | 1251 def test_changeClassKey(self): |
| 1246 self.init_amod() | 1252 self.init_amod() |
| 1247 aid = self.db.a.create(name='apple') | 1253 aid = self.db.a.create(name='apple') |
| 1248 self.assertEqual(self.db.a.lookup('apple'), aid) | 1254 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1249 self.db.commit(); self.db.close() | 1255 self.db.commit(); self.db.close() |
| 1250 | 1256 |
| 1251 # change the key to fooz on a | 1257 # change the key to newstr on a |
| 1252 self.init_amodkey() | 1258 self.init_amodkey() |
| 1253 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') | 1259 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') |
| 1254 self.assertEqual(self.db.a.get(aid, 'fooz'), None) | 1260 self.assertEqual(self.db.a.get(aid, 'newstr'), None) |
| 1255 self.assertRaises(KeyError, self.db.a.lookup, 'apple') | 1261 self.assertRaises(KeyError, self.db.a.lookup, 'apple') |
| 1256 aid2 = self.db.a.create(name='aardvark', fooz='booz') | 1262 aid2 = self.db.a.create(name='aardvark', newstr='booz') |
| 1257 self.db.commit(); self.db.close() | 1263 self.db.commit(); self.db.close() |
| 1258 | 1264 |
| 1259 # check | 1265 # check |
| 1260 self.init_amodkey() | 1266 self.init_amodkey() |
| 1261 self.assertEqual(self.db.a.lookup('booz'), aid2) | 1267 self.assertEqual(self.db.a.lookup('booz'), aid2) |
| 1264 self.db.getjournal('a', aid) | 1270 self.db.getjournal('a', aid) |
| 1265 | 1271 |
| 1266 def init_amodml(self): | 1272 def init_amodml(self): |
| 1267 self.db = self.module.Database(config, 'admin') | 1273 self.db = self.module.Database(config, 'admin') |
| 1268 a = self.module.Class(self.db, "a", name=String(), | 1274 a = self.module.Class(self.db, "a", name=String(), |
| 1269 fooz=Multilink('a')) | 1275 newml=Multilink('a')) |
| 1270 a.setkey('name') | 1276 a.setkey('name') |
| 1271 self.db.post_init() | 1277 self.db.post_init() |
| 1272 | 1278 |
| 1273 def test_makeNewMultilink(self): | 1279 def test_makeNewMultilink(self): |
| 1274 self.init_a() | 1280 self.init_a() |
| 1276 self.assertEqual(self.db.a.lookup('apple'), aid) | 1282 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1277 self.db.commit(); self.db.close() | 1283 self.db.commit(); self.db.close() |
| 1278 | 1284 |
| 1279 # add a multilink prop | 1285 # add a multilink prop |
| 1280 self.init_amodml() | 1286 self.init_amodml() |
| 1281 bid = self.db.a.create(name='bear', fooz=[aid]) | 1287 bid = self.db.a.create(name='bear', newml=[aid]) |
| 1282 self.assertEqual(self.db.a.find(fooz=aid), [bid]) | 1288 self.assertEqual(self.db.a.find(newml=aid), [bid]) |
| 1283 self.assertEqual(self.db.a.lookup('apple'), aid) | 1289 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1284 self.db.commit(); self.db.close() | 1290 self.db.commit(); self.db.close() |
| 1285 | 1291 |
| 1286 # check | 1292 # check |
| 1287 self.init_amodml() | 1293 self.init_amodml() |
| 1288 self.assertEqual(self.db.a.find(fooz=aid), [bid]) | 1294 self.assertEqual(self.db.a.find(newml=aid), [bid]) |
| 1289 self.assertEqual(self.db.a.lookup('apple'), aid) | 1295 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1290 self.assertEqual(self.db.a.lookup('bear'), bid) | 1296 self.assertEqual(self.db.a.lookup('bear'), bid) |
| 1291 | 1297 |
| 1292 # confirm journal's ok | 1298 # confirm journal's ok |
| 1293 self.db.getjournal('a', aid) | 1299 self.db.getjournal('a', aid) |
| 1295 | 1301 |
| 1296 def test_removeMultilink(self): | 1302 def test_removeMultilink(self): |
| 1297 # add a multilink prop | 1303 # add a multilink prop |
| 1298 self.init_amodml() | 1304 self.init_amodml() |
| 1299 aid = self.db.a.create(name='apple') | 1305 aid = self.db.a.create(name='apple') |
| 1300 bid = self.db.a.create(name='bear', fooz=[aid]) | 1306 bid = self.db.a.create(name='bear', newml=[aid]) |
| 1301 self.assertEqual(self.db.a.find(fooz=aid), [bid]) | 1307 self.assertEqual(self.db.a.find(newml=aid), [bid]) |
| 1302 self.assertEqual(self.db.a.lookup('apple'), aid) | 1308 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1303 self.assertEqual(self.db.a.lookup('bear'), bid) | 1309 self.assertEqual(self.db.a.lookup('bear'), bid) |
| 1304 self.db.commit(); self.db.close() | 1310 self.db.commit(); self.db.close() |
| 1305 | 1311 |
| 1306 # remove the multilink | 1312 # remove the multilink |
