@@ -746,6 +746,50 @@ def test_datasets_ls_files_lfs(tmpdir, large_file, runner, project):
746746 assert file2_entry .endswith ("*" )
747747
748748
749+ def test_datasets_ls_files_json (tmpdir , large_file , runner , project ):
750+ """Test file listing lfs status."""
751+ # NOTE: create a dataset
752+ result = runner .invoke (cli , ["dataset" , "create" , "my-dataset" ])
753+ assert 0 == result .exit_code
754+ assert "OK" in result .output
755+
756+ # NOTE: create some data
757+ paths = []
758+
759+ new_file = tmpdir .join ("file_1" )
760+ new_file .write (str (1 ))
761+ paths .append (str (new_file ))
762+
763+ paths .append (str (large_file ))
764+
765+ # NOTE: add data to dataset
766+ result = runner .invoke (cli , ["dataset" , "add" , "my-dataset" ] + paths , catch_exceptions = False ,)
767+ assert 0 == result .exit_code
768+
769+ # NOTE: check files
770+ result = runner .invoke (cli , ["dataset" , "ls-files" , "--format" , "json" ])
771+ assert 0 == result .exit_code
772+
773+ result = json .loads (result .output )
774+
775+ assert len (result ) == 2
776+ file1 = next ((f for f in result if f ["path" ].endswith ("file_1" )))
777+ file2 = next ((f for f in result if f ["path" ].endswith (large_file .name )))
778+
779+ assert not file1 ["is_lfs" ]
780+ assert file2 ["is_lfs" ]
781+
782+ assert file1 ["creators" ]
783+ assert file1 ["size" ]
784+ assert file1 ["dataset_name" ]
785+ assert file1 ["dataset_id" ]
786+
787+ assert file2 ["creators" ]
788+ assert file2 ["size" ]
789+ assert file2 ["dataset_name" ]
790+ assert file2 ["dataset_id" ]
791+
792+
749793@pytest .mark .parametrize ("column" , DATASET_FILES_COLUMNS .keys ())
750794def test_datasets_ls_files_columns_correctly (runner , project , column , directory_tree ):
751795 """Test file listing only shows requested columns."""
0 commit comments