4 from test_all
import db
, test_support
, get_new_environment_path
, \
7 #----------------------------------------------------------------------
9 class pget_bugTestCase(unittest
.TestCase
):
10 """Verify that cursor.pget works properly"""
11 db_name
= 'test-cursor_pget.db'
14 self
.homeDir
= get_new_environment_path()
16 self
.env
.open(self
.homeDir
, db
.DB_CREATE | db
.DB_INIT_MPOOL
)
17 self
.primary_db
= db
.DB(self
.env
)
18 self
.primary_db
.open(self
.db_name
, 'primary', db
.DB_BTREE
, db
.DB_CREATE
)
19 self
.secondary_db
= db
.DB(self
.env
)
20 self
.secondary_db
.set_flags(db
.DB_DUP
)
21 self
.secondary_db
.open(self
.db_name
, 'secondary', db
.DB_BTREE
, db
.DB_CREATE
)
22 self
.primary_db
.associate(self
.secondary_db
, lambda key
, data
: data
)
23 self
.primary_db
.put('salad', 'eggs')
24 self
.primary_db
.put('spam', 'ham')
25 self
.primary_db
.put('omelet', 'eggs')
29 self
.secondary_db
.close()
30 self
.primary_db
.close()
35 test_support
.rmtree(self
.homeDir
)
38 cursor
= self
.secondary_db
.cursor()
40 self
.assertEquals(('eggs', 'salad', 'eggs'), cursor
.pget(key
='eggs', flags
=db
.DB_SET
))
41 self
.assertEquals(('eggs', 'omelet', 'eggs'), cursor
.pget(db
.DB_NEXT_DUP
))
42 self
.assertEquals(None, cursor
.pget(db
.DB_NEXT_DUP
))
44 self
.assertEquals(('ham', 'spam', 'ham'), cursor
.pget('ham', 'spam', flags
=db
.DB_SET
))
45 self
.assertEquals(None, cursor
.pget(db
.DB_NEXT_DUP
))
51 return unittest
.makeSuite(pget_bugTestCase
)
53 if __name__
== '__main__':
54 unittest
.main(defaultTest
='test_suite')