mirror of
https://github.com/Novartis/cellxgene-gateway.git
synced 2026-09-16 21:37:56 +08:00
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
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,
|
|
):
|
|
source = FileItemSource(tempfile.gettempdir(), "local")
|
|
item = source.make_fileitem_from_path(
|
|
"customanno.csv", "someh5ad_annotations", True
|
|
)
|
|
self.assertEqual(item.name, "customanno")
|
|
self.assertEqual(item.descriptor, "someh5ad_annotations/customanno.csv")
|
|
|
|
def test_make_fileitem_from_path_GIVEN_h5ad_file_THEN_returns_name(self):
|
|
source = FileItemSource(tempfile.gettempdir(), "local")
|
|
item = source.make_fileitem_from_path("someanalysis.h5ad", "studydir")
|
|
self.assertEqual(item.name, "someanalysis.h5ad")
|
|
self.assertEqual(item.descriptor, "studydir/someanalysis.h5ad")
|