From f76c111b7d8544d52d317442569500d8f4018643 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Mon, 23 Oct 2017 12:11:01 +0100
Subject: [PATCH] Don't kill memory in CI tests

---
 tests/test_atlases_query.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/tests/test_atlases_query.py b/tests/test_atlases_query.py
index 449a4f25f..7b61bb36a 100644
--- a/tests/test_atlases_query.py
+++ b/tests/test_atlases_query.py
@@ -15,6 +15,7 @@ import                    pytest
 import fsl.data.atlases    as fslatlases
 import fsl.data.image      as fslimage
 import fsl.utils.transform as transform
+import fsl.utils.cache     as cache
 
 from . import (testdir, make_random_mask)
 
@@ -33,15 +34,18 @@ def _repeat(iterator, n):
             yield elem
 
 
-# atype: (label|prob)
-_atlases = {}
+# We can't cache all atlases, because CI
+# jobs will take up too much memory and
+# be killed
+_atlases = cache.Cache(3)
 def _get_atlas(atlasID, res, summary=False):
-    atlas = _atlases.get((atlasID, res, summary))
+    atlas = _atlases.get((atlasID, res, summary), default=None)
     if atlas is None:
         atlas = fslatlases.loadAtlas(atlasID,
                                      loadSummary=summary,
                                      resolution=res)
-        _atlases[atlasID, res, summary] = atlas
+        _atlases.put((atlasID, res, summary), atlas)
+
     return atlas
 
 def _random_atlas(atype, res, summary=False):
-- 
GitLab