Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 1 | #! /usr/bin/env python |
| 2 | """Test script for the gdbm module |
| 3 | Roger E. Masse |
| 4 | """ |
Fred Drake | 004d5e6 | 2000-10-23 17:22:08 +0000 | [diff] [blame] | 5 | |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 6 | import gdbm |
| 7 | from gdbm import error |
Thomas Wouters | 110054c | 2007-02-25 22:12:31 +0000 | [diff] [blame] | 8 | from test.test_support import verbose, verify, TestFailed, TESTFN |
Roger E. Masse | fab8ab8 | 1996-12-20 22:36:52 +0000 | [diff] [blame] | 9 | |
Thomas Wouters | 110054c | 2007-02-25 22:12:31 +0000 | [diff] [blame] | 10 | filename = TESTFN |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 11 | |
| 12 | g = gdbm.open(filename, 'c') |
Guido van Rossum | f6e47ad | 2001-03-22 00:40:23 +0000 | [diff] [blame] | 13 | verify(g.keys() == []) |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 14 | g['a'] = 'b' |
| 15 | g['12345678910'] = '019237410982340912840198242' |
| 16 | a = g.keys() |
| 17 | if verbose: |
| 18 | print 'Test gdbm file keys: ', a |
Fred Drake | 004d5e6 | 2000-10-23 17:22:08 +0000 | [diff] [blame] | 19 | |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 20 | g.has_key('a') |
| 21 | g.close() |
Fred Drake | a710d6e | 2000-02-07 17:15:48 +0000 | [diff] [blame] | 22 | try: |
| 23 | g['a'] |
| 24 | except error: |
| 25 | pass |
| 26 | else: |
| 27 | raise TestFailed, "expected gdbm.error accessing closed database" |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 28 | g = gdbm.open(filename, 'r') |
| 29 | g.close() |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 30 | g = gdbm.open(filename, 'w') |
| 31 | g.close() |
| 32 | g = gdbm.open(filename, 'n') |
| 33 | g.close() |
Neil Schemenauer | 99664e4 | 2000-12-18 17:28:05 +0000 | [diff] [blame] | 34 | try: |
| 35 | g = gdbm.open(filename, 'rx') |
| 36 | g.close() |
| 37 | except error: |
| 38 | pass |
| 39 | else: |
| 40 | raise TestFailed, "expected gdbm.error when passing invalid open flags" |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 41 | |
| 42 | try: |
| 43 | import os |
| 44 | os.unlink(filename) |
| 45 | except: |
| 46 | pass |