@@ -246,9 +246,27 @@ def test_missing_data(self):
246246 _delete_files ()
247247 with self .assertRaises (FileNotFoundError ):
248248 dumbdbm .open (_fname , value )
249+ self .assertFalse (os .path .exists (_fname + '.dat' ))
249250 self .assertFalse (os .path .exists (_fname + '.dir' ))
250251 self .assertFalse (os .path .exists (_fname + '.bak' ))
251252
253+ for value in ('c' , 'n' ):
254+ _delete_files ()
255+ with dumbdbm .open (_fname , value ) as f :
256+ self .assertTrue (os .path .exists (_fname + '.dat' ))
257+ self .assertTrue (os .path .exists (_fname + '.dir' ))
258+ self .assertFalse (os .path .exists (_fname + '.bak' ))
259+ self .assertFalse (os .path .exists (_fname + '.bak' ))
260+
261+ for value in ('c' , 'n' ):
262+ _delete_files ()
263+ with dumbdbm .open (_fname , value ) as f :
264+ f ['key' ] = 'value'
265+ self .assertTrue (os .path .exists (_fname + '.dat' ))
266+ self .assertTrue (os .path .exists (_fname + '.dir' ))
267+ self .assertFalse (os .path .exists (_fname + '.bak' ))
268+ self .assertTrue (os .path .exists (_fname + '.bak' ))
269+
252270 def test_missing_index (self ):
253271 with dumbdbm .open (_fname , 'n' ) as f :
254272 pass
@@ -259,6 +277,60 @@ def test_missing_index(self):
259277 self .assertFalse (os .path .exists (_fname + '.dir' ))
260278 self .assertFalse (os .path .exists (_fname + '.bak' ))
261279
280+ for value in ('c' , 'n' ):
281+ with dumbdbm .open (_fname , value ) as f :
282+ self .assertTrue (os .path .exists (_fname + '.dir' ))
283+ self .assertFalse (os .path .exists (_fname + '.bak' ))
284+ self .assertFalse (os .path .exists (_fname + '.bak' ))
285+ os .unlink (_fname + '.dir' )
286+
287+ for value in ('c' , 'n' ):
288+ with dumbdbm .open (_fname , value ) as f :
289+ f ['key' ] = 'value'
290+ self .assertTrue (os .path .exists (_fname + '.dir' ))
291+ self .assertFalse (os .path .exists (_fname + '.bak' ))
292+ self .assertTrue (os .path .exists (_fname + '.bak' ))
293+ os .unlink (_fname + '.dir' )
294+ os .unlink (_fname + '.bak' )
295+
296+ def test_sync_empty_unmodified (self ):
297+ with dumbdbm .open (_fname , 'n' ) as f :
298+ pass
299+ os .unlink (_fname + '.dir' )
300+ for value in ('c' , 'n' ):
301+ with dumbdbm .open (_fname , value ) as f :
302+ self .assertTrue (os .path .exists (_fname + '.dir' ))
303+ self .assertFalse (os .path .exists (_fname + '.bak' ))
304+ f .sync ()
305+ self .assertTrue (os .path .exists (_fname + '.dir' ))
306+ self .assertFalse (os .path .exists (_fname + '.bak' ))
307+ os .unlink (_fname + '.dir' )
308+ f .sync ()
309+ self .assertFalse (os .path .exists (_fname + '.dir' ))
310+ self .assertFalse (os .path .exists (_fname + '.bak' ))
311+ self .assertFalse (os .path .exists (_fname + '.dir' ))
312+ self .assertFalse (os .path .exists (_fname + '.bak' ))
313+
314+ def test_sync_nonempty_unmodified (self ):
315+ with dumbdbm .open (_fname , 'n' ) as f :
316+ pass
317+ os .unlink (_fname + '.dir' )
318+ for value in ('c' , 'n' ):
319+ with dumbdbm .open (_fname , value ) as f :
320+ f ['key' ] = 'value'
321+ self .assertTrue (os .path .exists (_fname + '.dir' ))
322+ self .assertFalse (os .path .exists (_fname + '.bak' ))
323+ f .sync ()
324+ self .assertTrue (os .path .exists (_fname + '.dir' ))
325+ self .assertTrue (os .path .exists (_fname + '.bak' ))
326+ os .unlink (_fname + '.dir' )
327+ os .unlink (_fname + '.bak' )
328+ f .sync ()
329+ self .assertFalse (os .path .exists (_fname + '.dir' ))
330+ self .assertFalse (os .path .exists (_fname + '.bak' ))
331+ self .assertFalse (os .path .exists (_fname + '.dir' ))
332+ self .assertFalse (os .path .exists (_fname + '.bak' ))
333+
262334 def test_invalid_flag (self ):
263335 for flag in ('x' , 'rf' , None ):
264336 with self .assertRaisesRegex (ValueError ,
0 commit comments