From 2211bbd6491d4bfabe4c73aee85abac6834af830 Mon Sep 17 00:00:00 2001
From: Michiel Cottaar <MichielCottaar@protonmail.com>
Date: Fri, 27 Mar 2020 14:06:24 +0000
Subject: [PATCH] REF: set partial_fill to False again

Still using `partial_fill` when creating FileTreeQuery
---
 fsl/utils/filetree/filetree.py   | 2 +-
 fsl/utils/filetree/query.py      | 2 ++
 tests/test_filetree/test_read.py | 9 ++++++++-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/fsl/utils/filetree/filetree.py b/fsl/utils/filetree/filetree.py
index 3159fefa8..44f2b7b15 100644
--- a/fsl/utils/filetree/filetree.py
+++ b/fsl/utils/filetree/filetree.py
@@ -354,7 +354,7 @@ class FileTree(object):
         self.variables = {}
 
     @classmethod
-    def read(cls, tree_name: str, directory='.', partial_fill=True, **variables) -> "FileTree":
+    def read(cls, tree_name: str, directory='.', partial_fill=False, **variables) -> "FileTree":
         """
         Reads a FileTree from a specific file
 
diff --git a/fsl/utils/filetree/query.py b/fsl/utils/filetree/query.py
index a2e215c84..d371bcdf3 100644
--- a/fsl/utils/filetree/query.py
+++ b/fsl/utils/filetree/query.py
@@ -89,6 +89,8 @@ class FileTreeQuery(object):
 
         :arg tree: The :class:`.FileTree` object
         """
+        # Hard-code into the templates any pre-defined variables
+        tree = tree.partial_fill()
 
         # Find all files present in the directory
         # (as Match objects), and find all variables,
diff --git a/tests/test_filetree/test_read.py b/tests/test_filetree/test_read.py
index 6627969e3..0ceaa5086 100644
--- a/tests/test_filetree/test_read.py
+++ b/tests/test_filetree/test_read.py
@@ -13,14 +13,21 @@ def same_path(p1, p2):
 
 def test_simple_tree():
     tree = filetree.FileTree.read('eddy')
-    assert 'basename' not in tree.variables
+    assert 'basename' in tree.variables
 
     same_path(tree.get('basename'), './eddy_output')
     same_path(tree.get('image'), './eddy_output.nii.gz')
+    same_path(tree.update(basename='eddy').get('image'), './eddy.nii.gz')
 
     tree = filetree.FileTree.read('eddy.tree', basename='out')
+    assert 'basename' in tree.variables
+    same_path(tree.get('basename'), './out')
+    same_path(tree.update(basename='eddy').get('image'), './eddy.nii.gz')
+
+    tree = filetree.FileTree.read('eddy.tree', basename='out', partial_fill=True)
     assert 'basename' not in tree.variables
     same_path(tree.get('basename'), './out')
+    same_path(tree.update(basename='eddy').get('image'), './out.nii.gz')
 
     with pytest.raises(ValueError):
         filetree.FileTree.read('non_existing')
-- 
GitLab