# For Pythons w/distutils pybsddb
from bsddb3
import db
, dbobj
from bsddb
import db
, dbobj
#----------------------------------------------------------------------
class dbobjTestCase(unittest
.TestCase
):
"""Verify that dbobj.DB and dbobj.DBEnv work properly"""
db_name
= 'test-dbobj.db'
homeDir
= os
.path
.join(os
.path
.dirname(sys
.argv
[0]), 'db_home')
files
= glob
.glob(os
.path
.join(self
.homeDir
, '*'))
class TestDBEnv(dbobj
.DBEnv
): pass
def put(self
, key
, *args
, **kwargs
):
# call our parent classes put method with an upper case key
return apply(dbobj
.DB
.put
, (self
, key
) + args
, kwargs
)
self
.env
.open(self
.homeDir
, db
.DB_CREATE | db
.DB_INIT_MPOOL
)
self
.db
= TestDB(self
.env
)
self
.db
.open(self
.db_name
, db
.DB_HASH
, db
.DB_CREATE
)
self
.db
.put('spam', 'eggs')
assert self
.db
.get('spam') == None, \
"overridden dbobj.DB.put() method failed [1]"
assert self
.db
.get('SPAM') == 'eggs', \
"overridden dbobj.DB.put() method failed [2]"
def test02_dbobj_dict_interface(self
):
self
.env
.open(self
.homeDir
, db
.DB_CREATE | db
.DB_INIT_MPOOL
)
self
.db
= dbobj
.DB(self
.env
)
self
.db
.open(self
.db_name
+'02', db
.DB_HASH
, db
.DB_CREATE
)
assert self
.db
['spam'] == 'eggs'
assert self
.db
.get('spam') == None, "dbobj __del__ failed"
#----------------------------------------------------------------------
return unittest
.makeSuite(dbobjTestCase
)
if __name__
== '__main__':
unittest
.main(defaultTest
='test_suite')