mirror of
https://github.com/python/cpython.git
synced 2025-10-02 05:12:23 +00:00
bpo-31026: Fix test_dbm if dbm.ndbm is build with Berkeley DB. (GH-6632)
(cherry picked from commit 70af06cdc4
)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
ee95feb69d
commit
e57d3e3a13
2 changed files with 29 additions and 2 deletions
|
@ -38,8 +38,7 @@ def delete_files():
|
||||||
|
|
||||||
|
|
||||||
class AnyDBMTestCase:
|
class AnyDBMTestCase:
|
||||||
_dict = {'0': b'',
|
_dict = {'a': b'Python:',
|
||||||
'a': b'Python:',
|
|
||||||
'b': b'Programming',
|
'b': b'Programming',
|
||||||
'c': b'the',
|
'c': b'the',
|
||||||
'd': b'way',
|
'd': b'way',
|
||||||
|
@ -109,6 +108,20 @@ class AnyDBMTestCase:
|
||||||
keys = self.keys_helper(f)
|
keys = self.keys_helper(f)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
def test_empty_value(self):
|
||||||
|
if getattr(dbm._defaultmod, 'library', None) == 'Berkeley DB':
|
||||||
|
self.skipTest("Berkeley DB doesn't distinguish the empty value "
|
||||||
|
"from the absent one")
|
||||||
|
f = dbm.open(_fname, 'c')
|
||||||
|
self.assertEqual(f.keys(), [])
|
||||||
|
f[b'empty'] = b''
|
||||||
|
self.assertEqual(f.keys(), [b'empty'])
|
||||||
|
self.assertIn(b'empty', f)
|
||||||
|
self.assertEqual(f[b'empty'], b'')
|
||||||
|
self.assertEqual(f.get(b'empty'), b'')
|
||||||
|
self.assertEqual(f.setdefault(b'empty'), b'')
|
||||||
|
f.close()
|
||||||
|
|
||||||
def test_anydbm_access(self):
|
def test_anydbm_access(self):
|
||||||
self.init_db()
|
self.init_db()
|
||||||
f = dbm.open(_fname, 'r')
|
f = dbm.open(_fname, 'r')
|
||||||
|
|
|
@ -36,6 +36,20 @@ class DbmTestCase(unittest.TestCase):
|
||||||
self.assertEqual(self.d[b'xxx'], b'foo')
|
self.assertEqual(self.d[b'xxx'], b'foo')
|
||||||
self.d.close()
|
self.d.close()
|
||||||
|
|
||||||
|
def test_empty_value(self):
|
||||||
|
if dbm.ndbm.library == 'Berkeley DB':
|
||||||
|
self.skipTest("Berkeley DB doesn't distinguish the empty value "
|
||||||
|
"from the absent one")
|
||||||
|
self.d = dbm.ndbm.open(self.filename, 'c')
|
||||||
|
self.assertEqual(self.d.keys(), [])
|
||||||
|
self.d['empty'] = ''
|
||||||
|
self.assertEqual(self.d.keys(), [b'empty'])
|
||||||
|
self.assertIn(b'empty', self.d)
|
||||||
|
self.assertEqual(self.d[b'empty'], b'')
|
||||||
|
self.assertEqual(self.d.get(b'empty'), b'')
|
||||||
|
self.assertEqual(self.d.setdefault(b'empty'), b'')
|
||||||
|
self.d.close()
|
||||||
|
|
||||||
def test_modes(self):
|
def test_modes(self):
|
||||||
for mode in ['r', 'rw', 'w', 'n']:
|
for mode in ['r', 'rw', 'w', 'n']:
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue