| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -44,6 +44,11 @@ class error(Exception): | |||
| 44 | 44 | ||
| 45 | 45 | error = (error, OSError) | |
| 46 | 46 | ||
| 47 | + try: | ||
| 48 | + from dbm import ndbm | ||
| 49 | + except ImportError: | ||
| 50 | + ndbm = None | ||
| 51 | + | ||
| 47 | 52 | ||
| 48 | 53 | def open(file, flag='r', mode=0o666): | |
| 49 | 54 | """Open or create database at path given by *file*. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -9,6 +9,11 @@ | |||
| 9 | 9 | # Skip tests if dbm module doesn't exist. | |
| 10 | 10 | dbm = test.support.import_module('dbm') | |
| 11 | 11 | ||
| 12 | + try: | ||
| 13 | + from dbm import ndbm | ||
| 14 | + except ImportError: | ||
| 15 | + ndbm = None | ||
| 16 | + | ||
| 12 | 17 | _fname = test.support.TESTFN | |
| 13 | 18 | ||
| 14 | 19 | # | |
@@ -130,7 +135,7 @@ def test_whichdb(self): | |||
| 130 | 135 | delete_files() | |
| 131 | 136 | f = module.open(_fname, 'c') | |
| 132 | 137 | f.close() | |
| 133 | - self.assertEqual(name, dbm.whichdb(_fname)) | ||
| 138 | + self.assertEqual(name, self.dbm.whichdb(_fname)) | ||
| 134 | 139 | # Now add a key | |
| 135 | 140 | f = module.open(_fname, 'w') | |
| 136 | 141 | f[b"1"] = b"1" | |
@@ -139,7 +144,15 @@ def test_whichdb(self): | |||
| 139 | 144 | # and read it | |
| 140 | 145 | self.assertTrue(f[b"1"] == b"1") | |
| 141 | 146 | f.close() | |
| 142 | - self.assertEqual(name, dbm.whichdb(_fname)) | ||
| 147 | + self.assertEqual(name, self.dbm.whichdb(_fname)) | ||
| 148 | + | ||
| 149 | + @unittest.skipUnless(ndbm, reason='Test requires ndbm') | ||
| 150 | + def test_whichdb_ndbm(self): | ||
| 151 | + # Issue 17198: check that ndbm which is referenced in whichdb is defined | ||
| 152 | + db_file = '{}_ndbm.db'.format(_fname) | ||
| 153 | + with open(db_file, 'w'): | ||
| 154 | + self.addCleanup(test.support.unlink, db_file) | ||
| 155 | + self.assertIsNone(self.dbm.whichdb(db_file[:-3])) | ||
| 143 | 156 | ||
| 144 | 157 | def tearDown(self): | |
| 145 | 158 | delete_files() | |
@@ -149,6 +162,7 @@ def setUp(self): | |||
| 149 | 162 | self.filename = test.support.TESTFN | |
| 150 | 163 | self.d = dbm.open(self.filename, 'c') | |
| 151 | 164 | self.d.close() | |
| 165 | + self.dbm = test.support.import_fresh_module('dbm') | ||
| 152 | 166 | ||
| 153 | 167 | def test_keys(self): | |
| 154 | 168 | self.d = dbm.open(self.filename, 'c') | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -142,6 +142,9 @@ Core and Builtins | |||
| 142 | 142 | Library | |
| 143 | 143 | ------- | |
| 144 | 144 | ||
| 145 | + - Issue #17198: Fix a NameError in the dbm module. Patch by Valentina | ||
| 146 | + Mukhamedzhanova. | ||
| 147 | + | ||
| 145 | 148 | - Issue #18013: Fix cgi.FieldStorage to parse the W3C sample form. | |
| 146 | 149 | ||
| 147 | 150 | - Issue #18020: improve html.escape speed by an order of magnitude. | |
| Back | FazBrowse Home | New Git URL |
0 commit comments