1 new changeset in pytest: http://bitbucket.org/hpk42/pytest/changeset/a7e4bf1c36af/ changeset: a7e4bf1c36af user: gutworth date: 2011-09-20 23:53:07 summary: rewrite file newlines when the python parser is picky affected #: 3 files (-1 bytes)
--- a/CHANGELOG Mon Sep 12 08:57:35 2011 +0200 +++ b/CHANGELOG Tue Sep 20 17:53:07 2011 -0400 @@ -1,6 +1,7 @@ Changes between 2.1.1 and [NEXT VERSION] ---------------------------------------- +- fix assertion rewriting on files with windows newlines on some Python versions - refine test discovery by package/module name (--pyargs), thanks Florian Mayer - fix issue69 / assertion rewriting fixed on some boolean operations - fix issue68 / packages now work with assertion rewriting --- a/_pytest/assertion/rewrite.py Mon Sep 12 08:57:35 2011 +0200 +++ b/_pytest/assertion/rewrite.py Tue Sep 20 17:53:07 2011 -0400 @@ -38,6 +38,8 @@ PYC_EXT = ".py" + "c" if __debug__ else "o" PYC_TAIL = "." + PYTEST_TAG + PYC_EXT +REWRITE_NEWLINES = sys.version_info[:2] != (2, 7) and sys.version_info < (3, 2) + class AssertionRewritingHook(object): """Import hook which rewrites asserts.""" @@ -181,12 +183,19 @@ fp.close() return True +RN = "\r\n".encode("utf-8") +N = "\n".encode("utf-8") + def _rewrite_test(state, fn): """Try to read and rewrite *fn* and return the code object.""" try: source = fn.read("rb") except EnvironmentError: return None + # On Python versions which are not 2.7 and less than or equal to 3.1, the + # parser expects *nix newlines. + if REWRITE_NEWLINES: + source = source.replace(RN, N) + N try: tree = ast.parse(source) except SyntaxError: --- a/testing/test_assertrewrite.py Mon Sep 12 08:57:35 2011 +0200 +++ b/testing/test_assertrewrite.py Tue Sep 20 17:53:07 2011 -0400 @@ -357,3 +357,9 @@ def test_rewritten(): assert "@py_builtins" in globals()""") assert testdir.runpytest().ret == 0 + + def test_translate_newlines(self, testdir): + content = "def test_rewritten():\r\n assert '@py_builtins' in globals()" + b = content.encode("utf-8") + testdir.tmpdir.join("test_newlines.py").write(b, "wb") + assert testdir.runpytest().ret == 0 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. _______________________________________________ py-svn mailing list py-svn@codespeak.net http://codespeak.net/mailman/listinfo/py-svn