mirror of
https://github.com/Novartis/cellxgene-gateway.git
synced 2026-10-01 15:48:12 +08:00
added status.json test
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import json
|
||||
import unittest
|
||||
from types import SimpleNamespace
|
||||
|
||||
from cellxgene_gateway.gateway import do_GET_status_json, app, cache
|
||||
from cellxgene_gateway.cache_entry import CacheEntry, CacheEntryStatus
|
||||
|
||||
|
||||
class TestGatewayStatusJson(unittest.TestCase):
|
||||
def test_do_GET_status_json_returns_expected_structure(self):
|
||||
# Create a minimal fake key with required attributes
|
||||
h5ad_item = SimpleNamespace(descriptor="somedir/dataset.h5ad")
|
||||
key = SimpleNamespace(h5ad_item=h5ad_item, annotation_descriptor="somedir/dataset_annotations/foo.csv")
|
||||
|
||||
# Create a CacheEntry with known launchtime/timestamp/status
|
||||
entry = CacheEntry(
|
||||
None,
|
||||
key,
|
||||
8000,
|
||||
111,
|
||||
222,
|
||||
CacheEntryStatus.loaded,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
)
|
||||
|
||||
# Install into the gateway cache and set app launchtime
|
||||
cache.entry_list = [entry]
|
||||
app.extensions.setdefault("cellxgene_gateway", {})["launchtime"] = "LAUNCH_TIME"
|
||||
|
||||
rv = do_GET_status_json()
|
||||
|
||||
data = json.loads(rv)
|
||||
# top-level launchtime comes from app.extensions
|
||||
self.assertEqual("LAUNCH_TIME", data["launchtime"])
|
||||
|
||||
self.assertIn("entry_list", data)
|
||||
self.assertEqual(1, len(data["entry_list"]))
|
||||
|
||||
e = data["entry_list"][0]
|
||||
self.assertEqual("somedir/dataset.h5ad", e["dataset"])
|
||||
self.assertEqual("somedir/dataset_annotations/foo.csv", e["annotation_file"])
|
||||
self.assertEqual("loaded", e["status"])
|
||||
self.assertEqual(111, e["launchtime"])
|
||||
self.assertEqual(222, e["last_access"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user