File tree Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -39,8 +39,7 @@ def delete_files():
39
39
40
40
41
41
class AnyDBMTestCase :
42
- _dict = {'0' : b'' ,
43
- 'a' : b'Python:' ,
42
+ _dict = {'a' : b'Python:' ,
44
43
'b' : b'Programming' ,
45
44
'c' : b'the' ,
46
45
'd' : b'way' ,
@@ -101,6 +100,20 @@ def test_anydbm_keys(self):
101
100
keys = self .keys_helper (f )
102
101
f .close ()
103
102
103
+ def test_empty_value (self ):
104
+ if getattr (dbm ._defaultmod , 'library' , None ) == 'Berkeley DB' :
105
+ self .skipTest ("Berkeley DB doesn't distinguish the empty value "
106
+ "from the absent one" )
107
+ f = dbm .open (_fname , 'c' )
108
+ self .assertEqual (f .keys (), [])
109
+ f [b'empty' ] = b''
110
+ self .assertEqual (f .keys (), [b'empty' ])
111
+ self .assertIn (b'empty' , f )
112
+ self .assertEqual (f [b'empty' ], b'' )
113
+ self .assertEqual (f .get (b'empty' ), b'' )
114
+ self .assertEqual (f .setdefault (b'empty' ), b'' )
115
+ f .close ()
116
+
104
117
def test_anydbm_access (self ):
105
118
self .init_db ()
106
119
f = dbm .open (_fname , 'r' )
Original file line number Diff line number Diff line change @@ -29,6 +29,20 @@ def test_keys(self):
29
29
self .assertEqual (self .d [b'bytes' ], b'data' )
30
30
self .d .close ()
31
31
32
+ def test_empty_value (self ):
33
+ if dbm .ndbm .library == 'Berkeley DB' :
34
+ self .skipTest ("Berkeley DB doesn't distinguish the empty value "
35
+ "from the absent one" )
36
+ self .d = dbm .ndbm .open (self .filename , 'c' )
37
+ self .assertEqual (self .d .keys (), [])
38
+ self .d ['empty' ] = ''
39
+ self .assertEqual (self .d .keys (), [b'empty' ])
40
+ self .assertIn (b'empty' , self .d )
41
+ self .assertEqual (self .d [b'empty' ], b'' )
42
+ self .assertEqual (self .d .get (b'empty' ), b'' )
43
+ self .assertEqual (self .d .setdefault (b'empty' ), b'' )
44
+ self .d .close ()
45
+
32
46
def test_modes (self ):
33
47
for mode in ['r' , 'rw' , 'w' , 'n' ]:
34
48
try :
You can’t perform that action at this time.
0 commit comments