bpo-33383: Fix crash in get() of the dbm.ndbm database object. (#6630)

This commit is contained in:
Serhiy Storchaka 2018-04-29 12:38:06 +03:00 committed by GitHub
parent 5779483299
commit 2e38cc3933
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 38 additions and 7 deletions

View file

@ -73,6 +73,9 @@ class DumbDBMTestCase(unittest.TestCase):
f = dumbdbm.open(_fname, 'w')
self._dict[b'g'] = f[b'g'] = b"indented"
self.read_helper(f)
# setdefault() works as in the dict interface
self.assertEqual(f.setdefault(b'xxx', b'foo'), b'foo')
self.assertEqual(f[b'xxx'], b'foo')
f.close()
def test_dumbdbm_read(self):
@ -85,6 +88,12 @@ class DumbDBMTestCase(unittest.TestCase):
with self.assertRaisesRegex(ValueError,
'The database is opened for reading only'):
del f[b'a']
# get() works as in the dict interface
self.assertEqual(f.get(b'a'), self._dict[b'a'])
self.assertEqual(f.get(b'xxx', b'foo'), b'foo')
self.assertIsNone(f.get(b'xxx'))
with self.assertRaises(KeyError):
f[b'xxx']
f.close()
def test_dumbdbm_keys(self):