diff --git a/tests/test_filetree/test_query.py b/tests/test_filetree/test_query.py
index 274604312e5fdbe536abc3d24bb8ec8f4a662606..3d4bef6db3f229b88f0a7dfef21b38d41a1cb166 100644
--- a/tests/test_filetree/test_query.py
+++ b/tests/test_filetree/test_query.py
@@ -25,6 +25,7 @@ subj-{participant}
     T1w.nii.gz (T1w)
     T2w.nii.gz (T2w)
     {hemi}.{surf}.gii (surface)
+scalar_file.txt (scalar)
 """.strip()
 
 _subjs = ['01', '02', '03']
@@ -36,7 +37,7 @@ _surfs = ['midthickness', 'pial', 'white']
 @contextlib.contextmanager
 def _test_data():
 
-    files = []
+    files = ['scalar_file.txt']
 
     for subj, ses in it.product(_subjs, _sess):
         sesdir = op.join('subj-{}'.format(subj), 'ses-{}'.format(ses))
@@ -60,6 +61,12 @@ def _expected_matches(template, tree, **kwargs):
     surfs   = kwargs.get('surf',        _surfs)
     hemis   = kwargs.get('hemi',        _hemis)
 
+    if template == 'scalar':
+        matches.append(ftquery.Match('scalar_file.txt',
+                                     template,
+                                     tree,
+                                     {}))
+
     for subj, ses in it.product(subjs, sess):
 
         sesdir = op.join('subj-{}'.format(subj), 'ses-{}'.format(ses))
@@ -100,7 +107,10 @@ def _run_and_check_query(query, template, asarray=False, **vars):
     else:
         snvars = query.variables(template)
 
-        assert len(snvars) == len(gotmatches.shape)
+        if len(snvars) == 0:
+            assert gotmatches.shape == (1,)
+        else:
+            assert len(snvars) == len(gotmatches.shape)
 
         for i, var in enumerate(sorted(snvars.keys())):
             if var not in vars or vars[var] == '*':
@@ -124,30 +134,32 @@ def test_query_properties():
         tree  = filetree.FileTree.read('_test_tree.tree', '.')
         query = filetree.FileTreeQuery(tree)
 
+        assert sorted(query.axes('scalar'))  == []
         assert sorted(query.axes('T1w'))     == ['participant', 'session']
         assert sorted(query.axes('T2w'))     == ['participant', 'session']
         assert sorted(query.axes('surface')) == ['hemi',
                                                  'participant',
                                                  'session',
                                                  'surf']
-        assert sorted(query.templates)       == ['T1w', 'T2w', 'surface']
-
-        assert query.variables('T1w')     == {'participant' : ['01', '02', '03'],
-                                              'session'     : ['1', '2']}
-        assert query.variables('T2w')     == {'participant' : ['01', '02', '03'],
-                                              'session'     : ['1', '2']}
-        assert query.variables('surface') == {'participant' : ['01', '02', '03'],
-                                              'session'     : ['1', '2'],
-                                              'surf'        : ['midthickness',
-                                                               'pial',
-                                                               'white'],
-                                              'hemi'        : ['L', 'R']}
-        assert query.variables()          == {'participant' : ['01', '02', '03'],
-                                              'session'     : ['1', '2'],
-                                              'surf'        : ['midthickness',
-                                                               'pial',
-                                                               'white'],
-                                              'hemi'        : ['L', 'R']}
+        assert sorted(query.templates)       == ['T1w', 'T2w', 'scalar', 'surface']
+
+        assert query.variables('scalar')     == {}
+        assert query.variables('T1w')        == {'participant' : ['01', '02', '03'],
+                                                 'session'     : ['1', '2']}
+        assert query.variables('T2w')        == {'participant' : ['01', '02', '03'],
+                                                 'session'     : ['1', '2']}
+        assert query.variables('surface')    == {'participant' : ['01', '02', '03'],
+                                                 'session'     : ['1', '2'],
+                                                 'surf'        : ['midthickness',
+                                                                  'pial',
+                                                                  'white'],
+                                                 'hemi'        : ['L', 'R']}
+        assert query.variables()             == {'participant' : ['01', '02', '03'],
+                                                 'session'     : ['1', '2'],
+                                                 'surf'        : ['midthickness',
+                                                                  'pial',
+                                                                  'white'],
+                                                 'hemi'        : ['L', 'R']}
 
 
 def test_query():
@@ -155,6 +167,7 @@ def test_query():
         tree  = filetree.FileTree.read('_test_tree.tree', '.')
         query = filetree.FileTreeQuery(tree)
 
+    _run_and_check_query(query, 'scalar')
     _run_and_check_query(query, 'T1w')
     _run_and_check_query(query, 'T1w', participant='01')
     _run_and_check_query(query, 'T1w', session='2')
@@ -269,6 +282,7 @@ def test_query_asarray():
         tree  = filetree.FileTree.read('_test_tree.tree', '.')
         query = filetree.FileTreeQuery(tree)
 
+        _run_and_check_query(query, 'scalar', asarray=True)
         _run_and_check_query(query, 'T1w', asarray=True)
         _run_and_check_query(query, 'T1w', asarray=True, participant='01')
         _run_and_check_query(query, 'T1w', asarray=True, session='2')
@@ -388,7 +402,10 @@ def test_scan():
         tree    = filetree.FileTree.read('_test_tree.tree', '.')
         gotmatches = ftquery.scan(tree)
 
-    expmatches = []
+    expmatches = [ftquery.Match('scalar_file.txt',
+                                'scalar',
+                                tree,
+                                {})]
 
     for subj, ses in it.product(_subjs, _sess):
 
@@ -416,6 +433,8 @@ def test_scan():
     assert len(gotmatches) == len(expmatches)
 
     for got, exp in zip(sorted(gotmatches), sorted(expmatches)):
+        assert got            == exp
+        assert str(got)       == str(exp)
         assert got.filename   == exp.filename
         assert got.template   == exp.template
         assert got.variables  == exp.variables
@@ -433,6 +452,7 @@ def test_allVariables():
             'surf'        : _surfs,
             'hemi'        : _hemis}
         expsnames = {
+            'scalar'  : [],
             'T1w'     : ['participant', 'session'],
             'T2w'     : ['participant', 'session'],
             'surface' : ['hemi', 'participant', 'session', 'surf']}