4 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/b79c1f94f7d6/ Changeset: b79c1f94f7d6 User: cgilling Date: 2014-03-03 19:36:59 Summary: Fix to work properly when @patch is used with new not equal to DEFAULT
also updated test_mock to include this situation Affected #: 2 files diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r b79c1f94f7d65333ce68d5518f369d599e31a60e _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1836,7 +1836,13 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - startindex += len(getattr(function, "patchings", [])) + try: + from mock import DEFAULT + for patching in getattr(function, "patchings", []): + if not patching.attribute_name and patching.new is DEFAULT: + startindex += 1 + except ImportError: + startindex += len(getattr(function, "patchings", [])) function = realfunction argnames = inspect.getargs(py.code.getrawcode(function))[0] defaults = getattr(function, 'func_defaults', diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r b79c1f94f7d65333ce68d5518f369d599e31a60e testing/python/integration.py --- a/testing/python/integration.py +++ b/testing/python/integration.py @@ -124,8 +124,11 @@ def test_hello(self, abspath): os.path.abspath("hello") abspath.assert_any_call("hello") + def mock_basename(path): + return "mock_basename" @mock.patch("os.path.abspath") @mock.patch("os.path.normpath") + @mock.patch("os.path.basename",new=mock_basename) def test_someting(normpath, abspath, tmpdir): abspath.return_value = "this" os.path.normpath(os.path.abspath("hello")) https://bitbucket.org/hpk42/pytest/commits/c93d674ac9f9/ Changeset: c93d674ac9f9 User: cgilling Date: 2014-03-26 17:27:33 Summary: change try/except to sys.module.get and a conditional Affected #: 1 file diff -r b79c1f94f7d65333ce68d5518f369d599e31a60e -r c93d674ac9f9b838d200fe1f82cc4602f124fb16 _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1836,12 +1836,12 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - try: - from mock import DEFAULT + mock_default = sys.modules.get('mock.DEFAULT') + if mock_default: for patching in getattr(function, "patchings", []): if not patching.attribute_name and patching.new is DEFAULT: startindex += 1 - except ImportError: + else: startindex += len(getattr(function, "patchings", [])) function = realfunction argnames = inspect.getargs(py.code.getrawcode(function))[0] https://bitbucket.org/hpk42/pytest/commits/daae64b3edbd/ Changeset: daae64b3edbd User: cgilling Date: 2014-03-26 17:36:02 Summary: use sys.modules.get correctly and reference DEFAULT with respect to it Affected #: 1 file diff -r c93d674ac9f9b838d200fe1f82cc4602f124fb16 -r daae64b3edbd8d604112dfd3340b60af6c820db0 _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1836,10 +1836,10 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - mock_default = sys.modules.get('mock.DEFAULT') - if mock_default: + mock = sys.modules.get('mock') + if mock is not None: for patching in getattr(function, "patchings", []): - if not patching.attribute_name and patching.new is DEFAULT: + if not patching.attribute_name and patching.new is mock.DEFAULT: startindex += 1 else: startindex += len(getattr(function, "patchings", [])) https://bitbucket.org/hpk42/pytest/commits/9f5aad82d1cf/ Changeset: 9f5aad82d1cf User: hpk42 Date: 2014-03-26 19:05:46 Summary: Merged in cgilling/pytest (pull request #123) Fix to work properly when @patch is used with new not equal to DEFAULT Affected #: 2 files diff -r 071018d4de31ec8d34b7663e50c4a9c633db12a9 -r 9f5aad82d1cf661b9a5b6ddfeb1ca945b3bd21de _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1841,7 +1841,13 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - startindex += len(getattr(function, "patchings", [])) + mock = sys.modules.get('mock') + if mock is not None: + for patching in getattr(function, "patchings", []): + if not patching.attribute_name and patching.new is mock.DEFAULT: + startindex += 1 + else: + startindex += len(getattr(function, "patchings", [])) function = realfunction argnames = inspect.getargs(py.code.getrawcode(function))[0] defaults = getattr(function, 'func_defaults', diff -r 071018d4de31ec8d34b7663e50c4a9c633db12a9 -r 9f5aad82d1cf661b9a5b6ddfeb1ca945b3bd21de testing/python/integration.py --- a/testing/python/integration.py +++ b/testing/python/integration.py @@ -124,8 +124,11 @@ def test_hello(self, abspath): os.path.abspath("hello") abspath.assert_any_call("hello") + def mock_basename(path): + return "mock_basename" @mock.patch("os.path.abspath") @mock.patch("os.path.normpath") + @mock.patch("os.path.basename",new=mock_basename) def test_someting(normpath, abspath, tmpdir): abspath.return_value = "this" os.path.normpath(os.path.abspath("hello")) Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit