@@ -451,6 +451,43 @@ def test_mock_backend_overwrite():
451451 ]
452452
453453
454+ @pytest .mark .parametrize ("mode" , ["append" , "overwrite" ])
455+ def test_mock_backend_has_no_rows_written (mode ) -> None :
456+ mock_backend = MockBackend ()
457+ # There are no rows written
458+ assert not mock_backend .has_rows_written_for ("a.b.c" )
459+ # and the results contains no rows
460+ assert not mock_backend .rows_written_for ("a.b.c" , mode )
461+
462+
463+ @pytest .mark .parametrize ("mode" , ["append" , "overwrite" ])
464+ def test_mock_backend_has_zero_rows_written (mode ) -> None :
465+ mock_backend = MockBackend ()
466+ mock_backend .save_table ("a.b.c" , [], Foo , mode )
467+ # There are rows written
468+ assert mock_backend .has_rows_written_for ("a.b.c" )
469+ # while the results contains no rows
470+ assert not mock_backend .rows_written_for ("a.b.c" , mode )
471+
472+
473+ @pytest .mark .parametrize ("mode" , ["append" , "overwrite" ])
474+ def test_mock_backend_has_rows_written_for_after_first_write (mode ) -> None :
475+ mock_backend = MockBackend ()
476+ mock_backend .save_table ("a.b.c" , [Foo ("a1" , True ), Foo ("c2" , False )], Foo , mode )
477+ assert mock_backend .has_rows_written_for ("a.b.c" )
478+ assert not mock_backend .has_rows_written_for ("a.b.d" )
479+
480+
481+ @pytest .mark .parametrize ("first_mode" , ["append" , "overwrite" ])
482+ @pytest .mark .parametrize ("second_mode" , ["append" , "overwrite" ])
483+ def test_mock_backend_has_rows_written_for_after_two_writes (first_mode , second_mode ) -> None :
484+ mock_backend = MockBackend ()
485+ mock_backend .save_table ("a.b.c" , [Foo ("a1" , True ), Foo ("c2" , False )], Foo , first_mode )
486+ mock_backend .save_table ("a.b.c" , [Foo ("aaa" , True ), Foo ("bbb" , False )], Foo , second_mode )
487+ assert mock_backend .has_rows_written_for ("a.b.c" )
488+ assert not mock_backend .has_rows_written_for ("a.b.d" )
489+
490+
454491@dataclass
455492class Nested :
456493 foo : Foo
0 commit comments