@@ -1987,3 +1987,65 @@ def test_authorized_import(mock_kg, client, runner):
19871987 assert 1 == result .exit_code
19881988 assert "Unauthorized access to knowledge graph" not in result .output
19891989 assert "Resource not found in knowledge graph" in result .output
1990+
1991+
1992+ def test_update_local_file (runner , client , directory_tree ):
1993+ """Check updating local files."""
1994+ assert 0 == runner .invoke (cli , ["dataset" , "add" , "-c" , "my-data" , str (directory_tree )]).exit_code
1995+
1996+ file1 = Path (DATA_DIR ) / "my-data" / directory_tree .name / "file1"
1997+ file1 .write_text ("some updates" )
1998+ client .repo .git .add ("--all" )
1999+ client .repo .index .commit ("file1" )
2000+ commit_sha_after_file1 = client .repo .head .object .hexsha
2001+
2002+ file2 = Path (DATA_DIR ) / "my-data" / directory_tree .name / "dir1" / "file2"
2003+ file2 .write_text ("some updates" )
2004+ client .repo .git .add ("--all" )
2005+ client .repo .index .commit ("file2" )
2006+ commit_sha_after_file2 = client .repo .head .object .hexsha
2007+
2008+ old_dataset = client .load_dataset ("my-data" )
2009+
2010+ result = runner .invoke (cli , ["dataset" , "update" , "my-data" ])
2011+
2012+ assert 0 == result .exit_code
2013+ dataset = client .load_dataset ("my-data" )
2014+ assert commit_sha_after_file1 in dataset .find_file (file1 )._label
2015+ assert commit_sha_after_file2 in dataset .find_file (file2 )._label
2016+ assert_dataset_is_mutated (old = old_dataset , new = dataset )
2017+
2018+
2019+ def test_update_local_deleted_file (runner , client , directory_tree ):
2020+ """Check updating local deleted files."""
2021+ assert 0 == runner .invoke (cli , ["dataset" , "add" , "-c" , "my-data" , str (directory_tree )]).exit_code
2022+
2023+ file1 = Path (DATA_DIR ) / "my-data" / directory_tree .name / "file1"
2024+ file1 .unlink ()
2025+ client .repo .git .add ("--all" )
2026+ client .repo .index .commit ("deleted file1" )
2027+ commit_sha_after_file1_delete = client .repo .head .object .hexsha
2028+
2029+ result = runner .invoke (cli , ["dataset" , "update" , "my-data" ])
2030+
2031+ assert 0 == result .exit_code
2032+ assert "Some files are deleted." in result .output
2033+ assert "Updated 0 files" in result .output
2034+ assert commit_sha_after_file1_delete == client .repo .head .object .hexsha
2035+ old_dataset = client .load_dataset ("my-data" )
2036+ assert old_dataset .find_file (file1 )
2037+
2038+ # NOTE: Update with `--delete`
2039+ result = runner .invoke (cli , ["dataset" , "update" , "--delete" , "my-data" ])
2040+
2041+ assert 0 == result .exit_code
2042+ assert "Updated 0 files and deleted 1 files" in result .output
2043+ assert commit_sha_after_file1_delete != client .repo .head .object .hexsha
2044+ dataset = client .load_dataset ("my-data" )
2045+ assert dataset .find_file (file1 ) is None
2046+ assert_dataset_is_mutated (old = old_dataset , new = dataset )
2047+
2048+ result = runner .invoke (cli , ["dataset" , "update" , "--delete" , "my-data" ])
2049+
2050+ assert 0 == result .exit_code
2051+ assert "Updated 0 files and deleted 0 files" in result .output
0 commit comments