2 """Test script for the whichdb module
3 based on test_anydbm.py
7 import test
.test_support
13 _fname
= test
.test_support
.TESTFN
16 # we don't know the precise name the underlying database uses
17 # so we use glob to locate all names
18 for f
in glob
.glob(_fname
+ "*"):
24 class WhichDBTestCase(unittest
.TestCase
):
25 # Actual test methods are added to namespace
26 # after class definition.
27 def __init__(self
, *args
):
28 unittest
.TestCase
.__init
__(self
, *args
)
36 for name
in anydbm
._names
:
37 # we define a new test method for each
38 # candidate database module.
40 mod
= __import__(name
)
44 def test_whichdb_name(self
, name
=name
, mod
=mod
):
45 # Check whether whichdb correctly guesses module name
46 # for databases opened with module mod.
47 # Try with empty files first
48 f
= mod
.open(_fname
, 'c')
50 self
.assertEqual(name
, whichdb
.whichdb(_fname
))
52 f
= mod
.open(_fname
, 'w')
55 self
.assertEqual(name
, whichdb
.whichdb(_fname
))
56 setattr(WhichDBTestCase
,"test_whichdb_%s" % name
, test_whichdb_name
)
60 test
.test_support
.run_unittest(WhichDBTestCase
)
64 if __name__
== "__main__":