Add test case for dirs without h5ad

This commit is contained in:
Andreas Eisenbarth
2022-10-12 16:38:14 +02:00
parent 88b9b815c0
commit 0e92b73347

View File

@@ -1,4 +1,5 @@
import unittest
from collections import defaultdict
from unittest.mock import MagicMock, patch
from cellxgene_gateway.filecrawl import (
@@ -70,3 +71,18 @@ class TestRenderItemTree(unittest.TestCase):
" | annotations: <a class='new' href='/source/FakeSource/view/FakeAnnotations'>new</a>"
"</li></ul></li>",
)
@patch("os.listdir", side_effect=lambda parent: defaultdict(list, {"tmp": ["foo"], "tmp/foo": ["bar"]})[parent])
@patch("os.path.exists", return_value=True)
def test_GIVEN_dirs_without_h5ad_THEN_excludes_dirs_in_output(self, listdir, exists):
# Directories:
# - tmp
# - foo
# - bar (no h5ad files)
item_source = FileItemSource("tmp", name="local")
item_tree = item_source.list_items("foo")
rendered = render_item_tree(item_tree, item_source)
self.assertEqual(
rendered,
"<li><a href='/filecrawl/foo?source=local'>foo</a><ul></ul></li>",
)