home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_295 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  3.4 KB  |  88 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import unittest
  6. from test_all import db, dbshelve, test_support, verbose, get_new_environment_path, get_new_database_path
  7. ProductIndex = [
  8.     ('apple', 'Convenience Store'),
  9.     ('blueberry', "Farmer's Market"),
  10.     ('shotgun', 'S-Mart'),
  11.     ('pear', "Farmer's Market"),
  12.     ('chainsaw', 'S-Mart'),
  13.     ('strawberry', "Farmer's Market")]
  14. ColorIndex = [
  15.     ('blue', 'blueberry'),
  16.     ('red', 'apple'),
  17.     ('red', 'chainsaw'),
  18.     ('red', 'strawberry'),
  19.     ('yellow', 'peach'),
  20.     ('yellow', 'pear'),
  21.     ('black', 'shotgun')]
  22.  
  23. class JoinTestCase(unittest.TestCase):
  24.     keytype = ''
  25.     
  26.     def setUp(self):
  27.         self.filename = self.__class__.__name__ + '.db'
  28.         self.homeDir = get_new_environment_path()
  29.         self.env = db.DBEnv()
  30.         self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK)
  31.  
  32.     
  33.     def tearDown(self):
  34.         self.env.close()
  35.         test_support.rmtree(self.homeDir)
  36.  
  37.     
  38.     def test01_join(self):
  39.         if verbose:
  40.             print '\n', '-=' * 30
  41.             print 'Running %s.test01_join...' % self.__class__.__name__
  42.         
  43.         priDB = db.DB(self.env)
  44.         priDB.open(self.filename, 'primary', db.DB_BTREE, db.DB_CREATE)
  45.         map((lambda t, priDB = priDB: apply(priDB.put, t)), ProductIndex)
  46.         secDB = db.DB(self.env)
  47.         secDB.set_flags(db.DB_DUP | db.DB_DUPSORT)
  48.         secDB.open(self.filename, 'secondary', db.DB_BTREE, db.DB_CREATE)
  49.         map((lambda t, secDB = secDB: apply(secDB.put, t)), ColorIndex)
  50.         sCursor = None
  51.         jCursor = None
  52.         
  53.         try:
  54.             sCursor = secDB.cursor()
  55.             tmp = sCursor.set('red')
  56.             self.assert_(tmp)
  57.             jCursor = priDB.join([
  58.                 sCursor])
  59.             if jCursor.get(0) != ('apple', 'Convenience Store'):
  60.                 self.fail('join cursor positioned wrong')
  61.             
  62.             if jCursor.join_item() != 'chainsaw':
  63.                 self.fail('DBCursor.join_item returned wrong item')
  64.             
  65.             if jCursor.get(0)[0] != 'strawberry':
  66.                 self.fail('join cursor returned wrong thing')
  67.             
  68.             if jCursor.get(0):
  69.                 self.fail('join cursor returned too many items')
  70.         finally:
  71.             if jCursor:
  72.                 jCursor.close()
  73.             
  74.             if sCursor:
  75.                 sCursor.close()
  76.             
  77.             priDB.close()
  78.             secDB.close()
  79.  
  80.  
  81.  
  82.  
  83. def test_suite():
  84.     suite = unittest.TestSuite()
  85.     suite.addTest(unittest.makeSuite(JoinTestCase))
  86.     return suite
  87.  
  88.