diff --git a/test/db_test_base.py b/test/db_test_base.py
index 14a9e38e4514a003675967123bb0f58e26033482..57ad7c95bf60eeecd3c049fd47330a5a68c2676d 100644 (file)
--- a/test/db_test_base.py
+++ b/test/db_test_base.py
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: db_test_base.py,v 1.20 2004-03-24 04:57:25 richard Exp $
+# $Id: db_test_base.py,v 1.24 2004-04-08 00:43:23 richard Exp $
import unittest, os, shutil, errno, imp, sys, time, pprint
# descending should sort 1d, 1:10, None
ae(filt(None, {}, ('-','foo'), (None,None)), ['2', '1', '4', '3'])
+ def testFilteringMultilinkSort(self):
+ ae, filt = self.filteringSetup()
+ ae(filt(None, {}, ('+','nosy'), (None,None)), ['1', '2', '4', '3'])
+ ae(filt(None, {}, ('-','nosy'), (None,None)), ['3', '4', '1', '2'])
+
# XXX add sorting tests for other types
# XXX test auditors and reactors
self.db = self.module.Database(config, 'admin')
a = self.module.Class(self.db, "a", name=String())
a.setkey("name")
- b = self.module.Class(self.db, "b", name=String())
+ b = self.module.Class(self.db, "b", name=String(),
+ fooz=Multilink('a'))
b.setkey("name")
self.db.post_init()
# add a new class to the schema and check creation of new items
# (and existence of old ones)
self.init_ab()
- bid = self.db.b.create(name='bear')
+ bid = self.db.b.create(name='bear', fooz=[aid])
self.assertEqual(self.db.a.get(aid, 'name'), 'apple')
self.db.commit()
self.db.close()
self.assertEqual(self.db.a.get(aid, 'name'), 'apple')
self.assertEqual(self.db.a.lookup('apple'), aid)
self.assertEqual(self.db.b.get(bid, 'name'), 'bear')
+ self.assertEqual(self.db.b.get(bid, 'fooz'), [aid])
self.assertEqual(self.db.b.lookup('bear'), bid)
# confirm journal's ok
# confirm journal's ok
self.db.getjournal('a', aid)
- def init_ml(self):
+ def init_amodml(self):
self.db = self.module.Database(config, 'admin')
- a = self.module.Class(self.db, "a", name=String())
- a.setkey('name')
- b = self.module.Class(self.db, "b", name=String(),
+ a = self.module.Class(self.db, "a", name=String(),
fooz=Multilink('a'))
- b.setkey("name")
+ a.setkey('name')
self.db.post_init()
def test_makeNewMultilink(self):
self.db.commit(); self.db.close()
# add a multilink prop
- self.init_ml()
- bid = self.db.b.create(name='bear', fooz=[aid])
- self.assertEqual(self.db.b.find(fooz=aid), [bid])
+ self.init_amodml()
+ bid = self.db.a.create(name='bear', fooz=[aid])
+ self.assertEqual(self.db.a.find(fooz=aid), [bid])
self.assertEqual(self.db.a.lookup('apple'), aid)
self.db.commit(); self.db.close()
# check
- self.init_ml()
- self.assertEqual(self.db.b.find(fooz=aid), [bid])
+ self.init_amodml()
+ self.assertEqual(self.db.a.find(fooz=aid), [bid])
self.assertEqual(self.db.a.lookup('apple'), aid)
- self.assertEqual(self.db.b.lookup('bear'), bid)
+ self.assertEqual(self.db.a.lookup('bear'), bid)
# confirm journal's ok
self.db.getjournal('a', aid)
- self.db.getjournal('b', bid)
+ self.db.getjournal('a', bid)
def test_removeMultilink(self):
# add a multilink prop
- self.init_ml()
+ self.init_amodml()
aid = self.db.a.create(name='apple')
- bid = self.db.b.create(name='bear', fooz=[aid])
- self.assertEqual(self.db.b.find(fooz=aid), [bid])
+ bid = self.db.a.create(name='bear', fooz=[aid])
+ self.assertEqual(self.db.a.find(fooz=aid), [bid])
self.assertEqual(self.db.a.lookup('apple'), aid)
- self.assertEqual(self.db.b.lookup('bear'), bid)
+ self.assertEqual(self.db.a.lookup('bear'), bid)
self.db.commit(); self.db.close()
# remove the multilink
- self.init_ab()
+ self.init_a()
self.assertEqual(self.db.a.lookup('apple'), aid)
- self.assertEqual(self.db.b.lookup('bear'), bid)
+ self.assertEqual(self.db.a.lookup('bear'), bid)
# confirm journal's ok
self.db.getjournal('a', aid)
- self.db.getjournal('b', bid)
+ self.db.getjournal('a', bid)
def test_removeClass(self):
- self.init_ml()
+ self.init_ab()
aid = self.db.a.create(name='apple')
- bid = self.db.b.create(name='bear', fooz=[aid])
+ bid = self.db.b.create(name='bear')
self.db.commit(); self.db.close()
# drop the b class