From: Dylan Baker <[email protected]> There are some Exceptions that changed in python 3.x, this adds a test that will only by run on python 3
Signed-off-by: Dylan Baker <[email protected]> --- unittests/core_tests.py | 12 +++++++++++- unittests/utils.py | 25 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/unittests/core_tests.py b/unittests/core_tests.py index 8cbac8e..825fb73 100644 --- a/unittests/core_tests.py +++ b/unittests/core_tests.py @@ -295,7 +295,7 @@ def test_check_dir_stat_ENOENT(): def test_check_dir_stat_ENOTDIR(): - """core.check_dir: if the directory exists (ENOTDIR) and failifexsits is False continue""" + """core.check_dir: if a file exists (ENOTDIR) and failifexsits is False continue""" with mock.patch('framework.core.os.stat', mock.Mock(side_effect=OSError('foo', errno.ENOTDIR))): with mock.patch('framework.core.os.makedirs') as makedirs: @@ -330,3 +330,13 @@ def test_check_dir_handler(): mock.Mock(side_effect=OSError('foo', errno.ENOTDIR))): core.check_dir('foo', handler=mock.Mock(side_effect=utils.SentinalException)) + + [email protected](not six.PY3, 'Test is only relevant on python 3.x') +def test_check_dir_stat_FileNotFoundError(): + """core.check_dir: FileNotFoundError is raised and failifexsits is False continue""" + with mock.patch('framework.core.os.stat', + mock.Mock(side_effect=FileNotFoundError)): + with mock.patch('framework.core.os.makedirs') as makedirs: + core.check_dir('foo', False) + nt.eq_(makedirs.called, 1) diff --git a/unittests/utils.py b/unittests/utils.py index 255f253..99cf482 100644 --- a/unittests/utils.py +++ b/unittests/utils.py @@ -541,3 +541,28 @@ def unset_compression(): os.environ['PIGLIT_COMPRESSION'] = _SAVED_COMPRESSION else: del os.environ['PIGLIT_COMPRESSION'] + + +def skip(condition, description): + """Skip a test if the condition is met. + + Arguments: + condition -- If this is truthy then the test will be skippped + description -- the message that SkipTest will display if the test is + skipped + + """ + + def _wrapper(func): + """The function that acutally does the wrapping.""" + + @functools.wraps(func) + def _inner(*args, **kwargs): + """The function that is actually called.""" + if condition: + raise SkipTest(description) + return func(*args, **kwargs) + + return _inner + + return _wrapper -- 2.8.2 _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
