summaryrefslogtreecommitdiff
path: root/sys/lib/python/test/test_dbm.py
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/lib/python/test/test_dbm.py
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (diff)
add hg and python
Diffstat (limited to 'sys/lib/python/test/test_dbm.py')
-rwxr-xr-xsys/lib/python/test/test_dbm.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/sys/lib/python/test/test_dbm.py b/sys/lib/python/test/test_dbm.py
new file mode 100755
index 000000000..b93e72eb7
--- /dev/null
+++ b/sys/lib/python/test/test_dbm.py
@@ -0,0 +1,55 @@
+#! /usr/bin/env python
+"""Test script for the dbm module
+ Roger E. Masse
+"""
+import os
+import random
+import dbm
+from dbm import error
+from test.test_support import verbose, verify, TestSkipped, TESTFN
+
+# make filename unique to allow multiple concurrent tests
+# and to minimize the likelihood of a problem from an old file
+filename = TESTFN
+
+def cleanup():
+ for suffix in ['', '.pag', '.dir', '.db']:
+ try:
+ os.unlink(filename + suffix)
+ except OSError, (errno, strerror):
+ # if we can't delete the file because of permissions,
+ # nothing will work, so skip the test
+ if errno == 1:
+ raise TestSkipped, 'unable to remove: ' + filename + suffix
+
+def test_keys():
+ d = dbm.open(filename, 'c')
+ verify(d.keys() == [])
+ d['a'] = 'b'
+ d['12345678910'] = '019237410982340912840198242'
+ d.keys()
+ if d.has_key('a'):
+ if verbose:
+ print 'Test dbm keys: ', d.keys()
+
+ d.close()
+
+def test_modes():
+ d = dbm.open(filename, 'r')
+ d.close()
+ d = dbm.open(filename, 'rw')
+ d.close()
+ d = dbm.open(filename, 'w')
+ d.close()
+ d = dbm.open(filename, 'n')
+ d.close()
+
+cleanup()
+try:
+ test_keys()
+ test_modes()
+except:
+ cleanup()
+ raise
+
+cleanup()