diff --git a/cellxgene_gateway/items/file/fileitem_source.py b/cellxgene_gateway/items/file/fileitem_source.py index 5a23048..4d236bc 100644 --- a/cellxgene_gateway/items/file/fileitem_source.py +++ b/cellxgene_gateway/items/file/fileitem_source.py @@ -51,7 +51,7 @@ class FileItemSource(ItemSource): return self.convert_h5ad_path_to_annotation(item.descriptor) def list_items(self, filter: str = None) -> ItemTree: - item_tree = self.scan_directory() + item_tree = self.scan_directory("" if filter is None else filter) """def get_items(dir): if dir.branches: diff --git a/tests/items/file/test_fileitem_source.py b/tests/items/file/test_fileitem_source.py index eca34ab..782fcad 100644 --- a/tests/items/file/test_fileitem_source.py +++ b/tests/items/file/test_fileitem_source.py @@ -1,10 +1,31 @@ import tempfile import unittest +from unittest.mock import patch from cellxgene_gateway.items.file.fileitem_source import FileItemSource +def stub_join(path): + path.join = lambda x, y: x + "/" + y + + class TestFileItemSource(unittest.TestCase): + @patch("os.path") + @patch("os.listdir") + def test_list_items_GIVEN_no_subpath_THEN_checks_dir(self, listdir, path): + stub_join(path) + source = FileItemSource("/tmp/unittest", "local") + source.list_items() + path.exists.assert_called_once_with("/tmp/unittest/") + + @patch("os.path") + @patch("os.listdir") + def test_list_items_GIVEN_subpath_THEN_checks_subpath(self, listdir, path): + stub_join(path) + source = FileItemSource("/tmp/unittest", "local") + source.list_items("foo") + path.exists.assert_called_once_with("/tmp/unittest/foo") + def test_make_fileitem_from_path_GIVEN_annotation_file_THEN_name_lacks_csv( self, ):