| 
									
										
										
										
											1996-12-10 00:06:24 +00:00
										 |  |  | #! /usr/bin/env python | 
					
						
							|  |  |  | """Test script for the dbm module
 | 
					
						
							|  |  |  |    Roger E. Masse | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											2002-11-02 18:25:08 +00:00
										 |  |  | import os | 
					
						
							|  |  |  | import random | 
					
						
							| 
									
										
										
										
											1996-12-10 00:06:24 +00:00
										 |  |  | import dbm | 
					
						
							|  |  |  | from dbm import error | 
					
						
							| 
									
										
										
										
											2007-02-25 22:12:31 +00:00
										 |  |  | from test.test_support import verbose, verify, TestSkipped, TESTFN | 
					
						
							| 
									
										
										
										
											1996-12-20 22:36:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-02 18:25:08 +00:00
										 |  |  | # make filename unique to allow multiple concurrent tests | 
					
						
							|  |  |  | # and to minimize the likelihood of a problem from an old file | 
					
						
							| 
									
										
										
										
											2007-02-25 22:12:31 +00:00
										 |  |  | filename = TESTFN | 
					
						
							| 
									
										
										
										
											1996-12-10 00:06:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-02 18:25:08 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2000-09-18 17:56:58 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-02 18:25:08 +00:00
										 |  |  | 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() | 
					
						
							| 
									
										
										
										
											1996-12-10 00:06:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-02 18:25:08 +00:00
										 |  |  |     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() | 
					
						
							| 
									
										
										
										
											1996-12-10 00:06:24 +00:00
										 |  |  | try: | 
					
						
							| 
									
										
										
										
											2002-11-02 18:25:08 +00:00
										 |  |  |     test_keys() | 
					
						
							|  |  |  |     test_modes() | 
					
						
							| 
									
										
										
										
											1996-12-10 00:06:24 +00:00
										 |  |  | except: | 
					
						
							| 
									
										
										
										
											2002-11-02 18:25:08 +00:00
										 |  |  |     cleanup() | 
					
						
							|  |  |  |     raise | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cleanup() |