1 new commit in pytest:

https://bitbucket.org/hpk42/pytest/commits/ebcecaa7d610/
Changeset:   ebcecaa7d610
User:        hpk42
Date:        2013-10-03 14:22:54
Summary:     fix issue354: avoid tmpdir fixture to create too long filenames 
especially
when parametrization is used
Affected #:  3 files

diff -r 0e4482f0ba672ae3e31d21cd12d5f06b15e621d7 -r 
ebcecaa7d610a5ec2aa5b3367169bffc1b50415f CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -8,6 +8,9 @@
 - avoid "IOError: Bad Filedescriptor" on pytest shutdown by not closing
   the internal dupped stdout (fix is slightly hand-wavy but work).
 
+- avoid tmpdir fixture to create too long filenames especially
+  when parametrization is used (issue354)
+
 Changes between 2.4.0 and 2.4.1
 -----------------------------------
 

diff -r 0e4482f0ba672ae3e31d21cd12d5f06b15e621d7 -r 
ebcecaa7d610a5ec2aa5b3367169bffc1b50415f _pytest/tmpdir.py
--- a/_pytest/tmpdir.py
+++ b/_pytest/tmpdir.py
@@ -64,5 +64,8 @@
     """
     name = request.node.name
     name = py.std.re.sub("[\W]", "_", name)
+    MAXVAL = 30
+    if len(name) > MAXVAL:
+        name = name[:MAXVAL]
     x = request.config._tmpdirhandler.mktemp(name, numbered=True)
     return x

diff -r 0e4482f0ba672ae3e31d21cd12d5f06b15e621d7 -r 
ebcecaa7d610a5ec2aa5b3367169bffc1b50415f testing/test_tmpdir.py
--- a/testing/test_tmpdir.py
+++ b/testing/test_tmpdir.py
@@ -91,3 +91,12 @@
     result = testdir.runpytest("-s", p, '--basetemp=%s/bt' % linktemp)
     assert not result.ret
 
+def test_tmpdir_too_long_on_parametrization(testdir):
+    testdir.makepyfile("""
+        import pytest
+        @pytest.mark.parametrize("arg", ["1"*1000])
+        def test_some(arg, tmpdir):
+            tmpdir.ensure("hello")
+    """)
+    reprec = testdir.inline_run()
+    reprec.assertoutcome(passed=1)

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

Reply via email to