diff --git a/tests/test_dir_util.py b/tests/test_dir_util.py new file mode 100644 index 0000000..b8c3bcf --- /dev/null +++ b/tests/test_dir_util.py @@ -0,0 +1,35 @@ +import unittest +from unittest.mock import MagicMock, patch + +from cellxgene_gateway.dir_util import ensure_dir_exists, make_annotations, make_h5ad + + +class TestMakeH5ad(unittest.TestCase): + def test_GIVEN_annotation_dir_THEN_returns_h5ad(self): + self.assertEqual(make_h5ad("pbmc_annotations"), "pbmc.h5ad") + + +class TestMakeAnnotations(unittest.TestCase): + def test_GIVEN_h5ad_THEN_returns_annotations(self): + self.assertEqual(make_annotations("pbmc.h5ad"), "pbmc_annotations") + + +class TestMakeAnnotations(unittest.TestCase): + def test_GIVEN_h5ad_THEN_returns_annotations(self): + self.assertEqual(make_annotations("pbmc.h5ad"), "pbmc_annotations") + + +class TestEnsureDirExists(unittest.TestCase): + @patch("os.path.exists") + @patch("os.makedirs") + def test_GIVEN_existing_THEN_does_not_call_makedir(self, makedirsMock, existsMock): + existsMock.return_value = True + ensure_dir_exists("/foo") + makedirsMock.assert_not_called() + + @patch("os.path.exists") + @patch("os.makedirs") + def test_GIVEN_not_existing_THEN_calls_makedir(self, makedirsMock, existsMock): + existsMock.return_value = False + ensure_dir_exists("/foo") + makedirsMock.assert_called_once_with("/foo")