From dd73d0b84e0e86ce1959e6b57d97f1a91434d92d Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Wed, 14 Sep 2016 10:47:03 -0400 Subject: [PATCH 1/2] TEST: Ignore atime, wait for clock ticks to make test deterministic --- nipype/utils/tests/test_filemanip.py | 38 ++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/nipype/utils/tests/test_filemanip.py b/nipype/utils/tests/test_filemanip.py index a344e1df5c..9d0cedae14 100644 --- a/nipype/utils/tests/test_filemanip.py +++ b/nipype/utils/tests/test_filemanip.py @@ -5,6 +5,7 @@ from builtins import open import os +import time from tempfile import mkstemp, mkdtemp import warnings @@ -19,6 +20,17 @@ import numpy as np +def _wait_for_tick(tic=None): + tic = time.time() if tic is None else tic + toc = time.time() + while int(tic) == int(toc): + toc = time.time() + + +def _ignore_atime(stat): + return stat[:7] + stat[8:] + + def test_split_filename(): res = split_filename('foo.nii') yield assert_equal, res, ('', 'foo', '.nii') @@ -192,27 +204,37 @@ def test_recopy(): # tick if copy and not use_hardlink and hashmethod == 'timestamp': continue + + tic = time.time() copyfile(orig_img, new_img, **kwargs) - img_stat = os.stat(new_img) - hdr_stat = os.stat(new_hdr) + img_stat = _ignore_atime(os.stat(new_img)) + hdr_stat = _ignore_atime(os.stat(new_hdr)) + _wait_for_tick(tic) copyfile(orig_img, new_img, **kwargs) err_msg = "Regular - OS: {}; Copy: {}; Hardlink: {}".format( os.name, copy, use_hardlink) - yield assert_equal, img_stat, os.stat(new_img), err_msg - yield assert_equal, hdr_stat, os.stat(new_hdr), err_msg + yield (assert_equal, img_stat, _ignore_atime(os.stat(new_img)), + err_msg) + yield (assert_equal, hdr_stat, _ignore_atime(os.stat(new_hdr)), + err_msg) os.unlink(new_img) os.unlink(new_hdr) + tic = time.time() copyfile(img_link, new_img, **kwargs) - img_stat = os.stat(new_img) - hdr_stat = os.stat(new_hdr) + img_stat = _ignore_atime(os.stat(new_img)) + hdr_stat = _ignore_atime(os.stat(new_hdr)) + _wait_for_tick(tic) copyfile(img_link, new_img, **kwargs) err_msg = "Symlink - OS: {}; Copy: {}; Hardlink: {}".format( os.name, copy, use_hardlink) - yield assert_equal, img_stat, os.stat(new_img), err_msg - yield assert_equal, hdr_stat, os.stat(new_hdr), err_msg + yield (assert_equal, img_stat, _ignore_atime(os.stat(new_img)), + err_msg) + yield (assert_equal, hdr_stat, _ignore_atime(os.stat(new_hdr)), + err_msg) os.unlink(new_img) os.unlink(new_hdr) + os.unlink(img_link) os.unlink(hdr_link) os.unlink(orig_img) From ab5efeff8dae01c4433a204a5bc54e9fd20a46ae Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Wed, 14 Sep 2016 16:31:26 -0400 Subject: [PATCH 2/2] TEST: Remove clock-tick waits --- nipype/utils/tests/test_filemanip.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/nipype/utils/tests/test_filemanip.py b/nipype/utils/tests/test_filemanip.py index 9d0cedae14..b0d43a4f3f 100644 --- a/nipype/utils/tests/test_filemanip.py +++ b/nipype/utils/tests/test_filemanip.py @@ -5,7 +5,6 @@ from builtins import open import os -import time from tempfile import mkstemp, mkdtemp import warnings @@ -20,13 +19,6 @@ import numpy as np -def _wait_for_tick(tic=None): - tic = time.time() if tic is None else tic - toc = time.time() - while int(tic) == int(toc): - toc = time.time() - - def _ignore_atime(stat): return stat[:7] + stat[8:] @@ -205,11 +197,9 @@ def test_recopy(): if copy and not use_hardlink and hashmethod == 'timestamp': continue - tic = time.time() copyfile(orig_img, new_img, **kwargs) img_stat = _ignore_atime(os.stat(new_img)) hdr_stat = _ignore_atime(os.stat(new_hdr)) - _wait_for_tick(tic) copyfile(orig_img, new_img, **kwargs) err_msg = "Regular - OS: {}; Copy: {}; Hardlink: {}".format( os.name, copy, use_hardlink) @@ -220,11 +210,9 @@ def test_recopy(): os.unlink(new_img) os.unlink(new_hdr) - tic = time.time() copyfile(img_link, new_img, **kwargs) img_stat = _ignore_atime(os.stat(new_img)) hdr_stat = _ignore_atime(os.stat(new_hdr)) - _wait_for_tick(tic) copyfile(img_link, new_img, **kwargs) err_msg = "Symlink - OS: {}; Copy: {}; Hardlink: {}".format( os.name, copy, use_hardlink)