Skip to content

Commit b8ef4b6

Browse files
authored
Merge pull request #538 from effigies/fix/restore_license_check_arg
FIX: Restore and deprecate license argument to ``check_valid_fs_license``
2 parents 8455714 + 561085d commit b8ef4b6

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

niworkflows/utils/misc.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ def pass_dummy_scans(algo_dummy_scans, dummy_scans=None):
289289
return dummy_scans
290290

291291

292-
def check_valid_fs_license():
292+
def check_valid_fs_license(lic=None):
293293
"""
294294
Run ``mri_convert`` to assess FreeSurfer access to a license.
295295
@@ -304,6 +304,13 @@ def check_valid_fs_license():
304304
from tempfile import TemporaryDirectory
305305
from pkg_resources import resource_filename
306306

307+
if lic is not None:
308+
import warnings
309+
warnings.warn("The license argument has been deprecated, has no effect, and will be "
310+
"removed in 1.3.0. Please set the environment if needed before calling "
311+
"this function without arguments.",
312+
DeprecationWarning)
313+
307314
with TemporaryDirectory() as tmpdir:
308315
# quick FreeSurfer command
309316
_cmd = (

niworkflows/utils/tests/test_misc.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ def test_fs_license_check(stdout, rc, valid):
3434
assert check_valid_fs_license() is valid
3535

3636

37-
@pytest.mark.skipif(not os.getenv("FS_LICENSE"), reason="No FS license found")
38-
def test_fs_license_check2(monkeypatch):
37+
@pytest.mark.skipif(shutil.which('mri_convert') is None, reason="FreeSurfer not installed")
38+
@pytest.mark.xfail(not os.getenv("FS_LICENSE"), reason="No FS license found")
39+
def test_fs_license_check2():
3940
"""Execute the canary itself."""
4041
assert check_valid_fs_license() is True
4142

@@ -46,3 +47,12 @@ def test_fs_license_check3(monkeypatch):
4647
m.delenv("FS_LICENSE", raising=False)
4748
m.delenv("FREESURFER_HOME", raising=False)
4849
assert check_valid_fs_license() is False
50+
51+
52+
def test_fs_license_check_deprecated_arg():
53+
"""Execute the canary with passed license."""
54+
with mock.patch("subprocess.run") as mocked_run:
55+
mocked_run.return_value.stdout = b""
56+
mocked_run.return_value.returncode = 0
57+
with pytest.deprecated_call():
58+
check_valid_fs_license(lic="Any non-None value")

0 commit comments

Comments
 (0)