@@ -304,45 +304,31 @@ def test_create_diff_checkpoint(diff_project):
304304
305305 basefile , diffs = FileHistory .diffs_chain (file_path_id , 32 )
306306 assert basefile .project_version_name == 9
307- # so far we only have individual diffs
308- assert len (diffs ) == 22
307+ assert len (diffs ) == 3
308+ # also a lower diff rank was created
309+ lower_diff = FileDiff .query .filter_by (version = 24 , rank = 1 ).first ()
310+ assert os .path .exists (lower_diff .abs_path )
309311
310312 # diff for v17-v20 from individual diffs
311313 assert FileDiff .can_create_checkpoint (file_path_id , Checkpoint (1 , 5 )) is True
312- diff = FileDiff (
313- basefile = basefile , path = f"test.gpkg-diff-{ uuid .uuid4 ()} " , version = 20 , rank = 1
314- )
315- db .session .add (diff )
316- db .session .commit ()
317- assert not os .path .exists (diff .abs_path )
314+ diff = FileDiff .query .filter_by (
315+ file_path_id = file_path_id , version = 20 , rank = 1
316+ ).first ()
317+ os .remove (diff .abs_path )
318318 diff .construct_checkpoint ()
319319 assert os .path .exists (diff .abs_path )
320320
321321 basefile , diffs = FileHistory .diffs_chain (file_path_id , 20 )
322322 assert basefile .project_version_name == 9
323- # 6 individual diffs (v11 -v16) + merged diff (v17-v20) as the last one
324- assert len (diffs ) == 7
323+ # individual diff v12 + (v13 -v16) + (v17-v20) as the last one
324+ assert len (diffs ) == 3
325325 assert diffs [- 1 ] == diff
326326
327327 # repeat - nothing to do
328328 mtime = os .path .getmtime (diff .abs_path )
329329 diff .construct_checkpoint ()
330330 assert mtime == os .path .getmtime (diff .abs_path )
331331
332- # some lower rank diffs still missing
333- assert not FileDiff .query .filter_by (version = 24 , rank = 1 ).count ()
334-
335- # diff for v17-v32 with merged diffs, this will also create lower missing ranks
336- diff = FileDiff (
337- basefile = basefile , path = f"test.gpkg-diff-{ uuid .uuid4 ()} " , version = 32 , rank = 2
338- )
339- db .session .add (diff )
340- db .session .commit ()
341- diff .construct_checkpoint ()
342- assert os .path .exists (diff .abs_path )
343- lower_diff = FileDiff .query .filter_by (version = 24 , rank = 1 ).first ()
344- assert os .path .exists (lower_diff .abs_path )
345-
346332 # assert gpkg diff is the same as it would be from merging all individual diffs
347333 individual_diffs = (
348334 FileDiff .query .filter_by (file_path_id = file_path_id , rank = 0 )
@@ -368,11 +354,12 @@ def test_create_diff_checkpoint(diff_project):
368354
369355 # geodiff failure
370356 mock .side_effect = GeoDiffLibError
371- diff = FileDiff (
372- basefile = basefile , path = f"test.gpkg-diff-{ uuid .uuid4 ()} " , version = 16 , rank = 1
373- )
374- db .session .add (diff )
375- db .session .commit ()
357+ diff = FileDiff .query .filter_by (
358+ file_path_id = file_path_id , version = 16 , rank = 1
359+ ).first ()
360+ if os .path .exists (diff .abs_path ):
361+ os .remove (diff .abs_path )
362+
376363 diff .construct_checkpoint ()
377364 assert mock .called
378365 assert not os .path .exists (diff .abs_path )
0 commit comments