Home | History | Annotate | Download | only in test
      1 """Tests for the bsddb185 module.
      2 
      3 The file 185test.db found in Lib/test/ is for testing purposes with this
      4 testing suite.
      5 
      6 """
      7 from test.test_support import run_unittest, findfile, import_module
      8 import unittest
      9 bsddb185 = import_module('bsddb185', deprecated=True)
     10 import anydbm
     11 import whichdb
     12 import os
     13 import tempfile
     14 import shutil
     15 
     16 class Bsddb185Tests(unittest.TestCase):
     17 
     18     def test_open_existing_hash(self):
     19         # Verify we can open a file known to be a hash v2 file
     20         db = bsddb185.hashopen(findfile("185test.db"))
     21         self.assertEqual(db["1"], "1")
     22         db.close()
     23 
     24     def test_whichdb(self):
     25         # Verify that whichdb correctly sniffs the known hash v2 file
     26         self.assertEqual(whichdb.whichdb(findfile("185test.db")), "bsddb185")
     27 
     28     def test_anydbm_create(self):
     29         # Verify that anydbm.open does *not* create a bsddb185 file
     30         tmpdir = tempfile.mkdtemp()
     31         try:
     32             dbfile = os.path.join(tmpdir, "foo.db")
     33             anydbm.open(dbfile, "c").close()
     34             ftype = whichdb.whichdb(dbfile)
     35             self.assertNotEqual(ftype, "bsddb185")
     36         finally:
     37             shutil.rmtree(tmpdir)
     38 
     39 def test_main():
     40     run_unittest(Bsddb185Tests)
     41 
     42 if __name__ == "__main__":
     43     test_main()
     44