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 @@ -38,8 +38,7 @@ def delete_files():
38
38
39
39
40
40
class AnyDBMTestCase :
41
- _dict = {'0' : b'' ,
42
- 'a' : b'Python:' ,
41
+ _dict = {'a' : b'Python:' ,
43
42
'b' : b'Programming' ,
44
43
'c' : b'the' ,
45
44
'd' : b'way' ,
@@ -109,6 +108,20 @@ def test_anydbm_keys(self):
109
108
keys = self .keys_helper (f )
110
109
f .close ()
111
110
111
+ def test_empty_value (self ):
112
+ if getattr (dbm ._defaultmod , 'library' , None ) == 'Berkeley DB' :
113
+ self .skipTest ("Berkeley DB doesn't distinguish the empty value "
114
+ "from the absent one" )
115
+ f = dbm .open (_fname , 'c' )
116
+ self .assertEqual (f .keys (), [])
117
+ f [b'empty' ] = b''
118
+ self .assertEqual (f .keys (), [b'empty' ])
119
+ self .assertIn (b'empty' , f )
120
+ self .assertEqual (f [b'empty' ], b'' )
121
+ self .assertEqual (f .get (b'empty' ), b'' )
122
+ self .assertEqual (f .setdefault (b'empty' ), b'' )
123
+ f .close ()
124
+
112
125
def test_anydbm_access (self ):
113
126
self .init_db ()
114
127
f = dbm .open (_fname , 'r' )
Original file line number Diff line number Diff line change @@ -36,6 +36,20 @@ def test_keys(self):
36
36
self .assertEqual (self .d [b'xxx' ], b'foo' )
37
37
self .d .close ()
38
38
39
+ def test_empty_value (self ):
40
+ if dbm .ndbm .library == 'Berkeley DB' :
41
+ self .skipTest ("Berkeley DB doesn't distinguish the empty value "
42
+ "from the absent one" )
43
+ self .d = dbm .ndbm .open (self .filename , 'c' )
44
+ self .assertEqual (self .d .keys (), [])
45
+ self .d ['empty' ] = ''
46
+ self .assertEqual (self .d .keys (), [b'empty' ])
47
+ self .assertIn (b'empty' , self .d )
48
+ self .assertEqual (self .d [b'empty' ], b'' )
49
+ self .assertEqual (self .d .get (b'empty' ), b'' )
50
+ self .assertEqual (self .d .setdefault (b'empty' ), b'' )
51
+ self .d .close ()
52
+
39
53
def test_modes (self ):
40
54
for mode in ['r' , 'rw' , 'w' , 'n' ]:
41
55
try :
You can’t perform that action at this time.
0 commit comments