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 |
Guido van Rossum | f35ad33 | 2006-08-25 23:40:32 +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 | |
Guido van Rossum | f35ad33 | 2006-08-25 23:40:32 +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() == []) |
Martin v. Löwis | 5bcf109 | 2007-08-14 09:24:24 +0000 | [diff] [blame] | 14 | g[b'a'] = b'b' |
| 15 | g[b'12345678910'] = b'019237410982340912840198242' |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 16 | a = g.keys() |
| 17 | if verbose: |
Guido van Rossum | be19ed7 | 2007-02-09 05:37:30 +0000 | [diff] [blame] | 18 | print('Test gdbm file keys: ', a) |
Fred Drake | 004d5e6 | 2000-10-23 17:22:08 +0000 | [diff] [blame] | 19 | |
Martin v. Löwis | 5bcf109 | 2007-08-14 09:24:24 +0000 | [diff] [blame] | 20 | b'a' in g |
Roger E. Masse | 62a017c | 1996-12-17 19:54:27 +0000 | [diff] [blame] | 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: |
Collin Winter | 3add4d7 | 2007-08-29 23:37:32 +0000 | [diff] [blame] | 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: |
Collin Winter | 3add4d7 | 2007-08-29 23:37:32 +0000 | [diff] [blame] | 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 |