Mercurial > p > roundup > code
comparison test/db_test_base.py @ 2727:93e2e5b55a3c
new Interval props weren't created properly in rdbms
(also, fix logging datestamp)
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 08 Oct 2004 00:18:28 +0000 |
| parents | c26716932ffe |
| children | d8eb00a54119 |
comparison
equal
deleted
inserted
replaced
| 2726:aa95c79cff8b | 2727:93e2e5b55a3c |
|---|---|
| 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.47 2004-09-28 10:29:37 a1s Exp $ | 18 # $Id: db_test_base.py,v 1.48 2004-10-08 00:18:28 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 |
| 1199 self.db.getjournal('a', aid) | 1199 self.db.getjournal('a', aid) |
| 1200 self.db.getjournal('b', bid) | 1200 self.db.getjournal('b', bid) |
| 1201 | 1201 |
| 1202 def init_amod(self): | 1202 def init_amod(self): |
| 1203 self.db = self.module.Database(config, 'admin') | 1203 self.db = self.module.Database(config, 'admin') |
| 1204 a = self.module.Class(self.db, "a", name=String(), fooz=String()) | 1204 a = self.module.Class(self.db, "a", name=String(), newstr=String(), |
| 1205 newint=Interval(), newnum=Number(), newbool=Boolean(), | |
| 1206 newdate=Date()) | |
| 1205 a.setkey("name") | 1207 a.setkey("name") |
| 1206 b = self.module.Class(self.db, "b", name=String()) | 1208 b = self.module.Class(self.db, "b", name=String()) |
| 1207 b.setkey("name") | 1209 b.setkey("name") |
| 1208 self.db.post_init() | 1210 self.db.post_init() |
| 1209 | 1211 |
| 1216 self.db.commit(); self.db.close() | 1218 self.db.commit(); self.db.close() |
| 1217 | 1219 |
| 1218 # modify "a" schema | 1220 # modify "a" schema |
| 1219 self.init_amod() | 1221 self.init_amod() |
| 1220 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') | 1222 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') |
| 1221 self.assertEqual(self.db.a.get(aid, 'fooz'), None) | 1223 self.assertEqual(self.db.a.get(aid, 'newstr'), None) |
| 1224 self.assertEqual(self.db.a.get(aid, 'newint'), None) | |
| 1225 self.assertEqual(self.db.a.get(aid, 'newnum'), None) | |
| 1226 self.assertEqual(self.db.a.get(aid, 'newbool'), None) | |
| 1227 self.assertEqual(self.db.a.get(aid, 'newdate'), None) | |
| 1222 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') | 1228 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') |
| 1223 aid2 = self.db.a.create(name='aardvark', fooz='booz') | 1229 aid2 = self.db.a.create(name='aardvark', newstr='booz') |
| 1224 self.db.commit(); self.db.close() | 1230 self.db.commit(); self.db.close() |
| 1225 | 1231 |
| 1226 # test | 1232 # test |
| 1227 self.init_amod() | 1233 self.init_amod() |
| 1228 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') | 1234 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') |
| 1229 self.assertEqual(self.db.a.get(aid, 'fooz'), None) | 1235 self.assertEqual(self.db.a.get(aid, 'newstr'), None) |
| 1230 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') | 1236 self.assertEqual(self.db.b.get(aid, 'name'), 'bear') |
| 1231 self.assertEqual(self.db.a.get(aid2, 'name'), 'aardvark') | 1237 self.assertEqual(self.db.a.get(aid2, 'name'), 'aardvark') |
| 1232 self.assertEqual(self.db.a.get(aid2, 'fooz'), 'booz') | 1238 self.assertEqual(self.db.a.get(aid2, 'newstr'), 'booz') |
| 1233 | 1239 |
| 1234 # confirm journal's ok | 1240 # confirm journal's ok |
| 1235 self.db.getjournal('a', aid) | 1241 self.db.getjournal('a', aid) |
| 1236 self.db.getjournal('a', aid2) | 1242 self.db.getjournal('a', aid2) |
| 1237 | 1243 |
| 1238 def init_amodkey(self): | 1244 def init_amodkey(self): |
| 1239 self.db = self.module.Database(config, 'admin') | 1245 self.db = self.module.Database(config, 'admin') |
| 1240 a = self.module.Class(self.db, "a", name=String(), fooz=String()) | 1246 a = self.module.Class(self.db, "a", name=String(), newstr=String()) |
| 1241 a.setkey("fooz") | 1247 a.setkey("newstr") |
| 1242 b = self.module.Class(self.db, "b", name=String()) | 1248 b = self.module.Class(self.db, "b", name=String()) |
| 1243 b.setkey("name") | 1249 b.setkey("name") |
| 1244 self.db.post_init() | 1250 self.db.post_init() |
| 1245 | 1251 |
| 1246 def test_changeClassKey(self): | 1252 def test_changeClassKey(self): |
| 1247 self.init_amod() | 1253 self.init_amod() |
| 1248 aid = self.db.a.create(name='apple') | 1254 aid = self.db.a.create(name='apple') |
| 1249 self.assertEqual(self.db.a.lookup('apple'), aid) | 1255 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1250 self.db.commit(); self.db.close() | 1256 self.db.commit(); self.db.close() |
| 1251 | 1257 |
| 1252 # change the key to fooz on a | 1258 # change the key to newstr on a |
| 1253 self.init_amodkey() | 1259 self.init_amodkey() |
| 1254 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') | 1260 self.assertEqual(self.db.a.get(aid, 'name'), 'apple') |
| 1255 self.assertEqual(self.db.a.get(aid, 'fooz'), None) | 1261 self.assertEqual(self.db.a.get(aid, 'newstr'), None) |
| 1256 self.assertRaises(KeyError, self.db.a.lookup, 'apple') | 1262 self.assertRaises(KeyError, self.db.a.lookup, 'apple') |
| 1257 aid2 = self.db.a.create(name='aardvark', fooz='booz') | 1263 aid2 = self.db.a.create(name='aardvark', newstr='booz') |
| 1258 self.db.commit(); self.db.close() | 1264 self.db.commit(); self.db.close() |
| 1259 | 1265 |
| 1260 # check | 1266 # check |
| 1261 self.init_amodkey() | 1267 self.init_amodkey() |
| 1262 self.assertEqual(self.db.a.lookup('booz'), aid2) | 1268 self.assertEqual(self.db.a.lookup('booz'), aid2) |
| 1265 self.db.getjournal('a', aid) | 1271 self.db.getjournal('a', aid) |
| 1266 | 1272 |
| 1267 def init_amodml(self): | 1273 def init_amodml(self): |
| 1268 self.db = self.module.Database(config, 'admin') | 1274 self.db = self.module.Database(config, 'admin') |
| 1269 a = self.module.Class(self.db, "a", name=String(), | 1275 a = self.module.Class(self.db, "a", name=String(), |
| 1270 fooz=Multilink('a')) | 1276 newml=Multilink('a')) |
| 1271 a.setkey('name') | 1277 a.setkey('name') |
| 1272 self.db.post_init() | 1278 self.db.post_init() |
| 1273 | 1279 |
| 1274 def test_makeNewMultilink(self): | 1280 def test_makeNewMultilink(self): |
| 1275 self.init_a() | 1281 self.init_a() |
| 1277 self.assertEqual(self.db.a.lookup('apple'), aid) | 1283 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1278 self.db.commit(); self.db.close() | 1284 self.db.commit(); self.db.close() |
| 1279 | 1285 |
| 1280 # add a multilink prop | 1286 # add a multilink prop |
| 1281 self.init_amodml() | 1287 self.init_amodml() |
| 1282 bid = self.db.a.create(name='bear', fooz=[aid]) | 1288 bid = self.db.a.create(name='bear', newml=[aid]) |
| 1283 self.assertEqual(self.db.a.find(fooz=aid), [bid]) | 1289 self.assertEqual(self.db.a.find(newml=aid), [bid]) |
| 1284 self.assertEqual(self.db.a.lookup('apple'), aid) | 1290 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1285 self.db.commit(); self.db.close() | 1291 self.db.commit(); self.db.close() |
| 1286 | 1292 |
| 1287 # check | 1293 # check |
| 1288 self.init_amodml() | 1294 self.init_amodml() |
| 1289 self.assertEqual(self.db.a.find(fooz=aid), [bid]) | 1295 self.assertEqual(self.db.a.find(newml=aid), [bid]) |
| 1290 self.assertEqual(self.db.a.lookup('apple'), aid) | 1296 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1291 self.assertEqual(self.db.a.lookup('bear'), bid) | 1297 self.assertEqual(self.db.a.lookup('bear'), bid) |
| 1292 | 1298 |
| 1293 # confirm journal's ok | 1299 # confirm journal's ok |
| 1294 self.db.getjournal('a', aid) | 1300 self.db.getjournal('a', aid) |
| 1296 | 1302 |
| 1297 def test_removeMultilink(self): | 1303 def test_removeMultilink(self): |
| 1298 # add a multilink prop | 1304 # add a multilink prop |
| 1299 self.init_amodml() | 1305 self.init_amodml() |
| 1300 aid = self.db.a.create(name='apple') | 1306 aid = self.db.a.create(name='apple') |
| 1301 bid = self.db.a.create(name='bear', fooz=[aid]) | 1307 bid = self.db.a.create(name='bear', newml=[aid]) |
| 1302 self.assertEqual(self.db.a.find(fooz=aid), [bid]) | 1308 self.assertEqual(self.db.a.find(newml=aid), [bid]) |
| 1303 self.assertEqual(self.db.a.lookup('apple'), aid) | 1309 self.assertEqual(self.db.a.lookup('apple'), aid) |
| 1304 self.assertEqual(self.db.a.lookup('bear'), bid) | 1310 self.assertEqual(self.db.a.lookup('bear'), bid) |
| 1305 self.db.commit(); self.db.close() | 1311 self.db.commit(); self.db.close() |
| 1306 | 1312 |
| 1307 # remove the multilink | 1313 # remove the multilink |
