fix issue354: avoid tmpdir fixture to create too long filenames especially
when parametrization is used
This commit is contained in:
		
							parent
							
								
									e49eca8d59
								
							
						
					
					
						commit
						9fdfa155fb
					
				|  | @ -8,6 +8,9 @@ Changes between 2.4.1 and 2.4.2 | ||||||
| - avoid "IOError: Bad Filedescriptor" on pytest shutdown by not closing | - avoid "IOError: Bad Filedescriptor" on pytest shutdown by not closing | ||||||
|   the internal dupped stdout (fix is slightly hand-wavy but work). |   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 | Changes between 2.4.0 and 2.4.1 | ||||||
| ----------------------------------- | ----------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -64,5 +64,8 @@ def tmpdir(request): | ||||||
|     """ |     """ | ||||||
|     name = request.node.name |     name = request.node.name | ||||||
|     name = py.std.re.sub("[\W]", "_", 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) |     x = request.config._tmpdirhandler.mktemp(name, numbered=True) | ||||||
|     return x |     return x | ||||||
|  |  | ||||||
|  | @ -91,3 +91,12 @@ def test_tmpdir_always_is_realpath(testdir): | ||||||
|     result = testdir.runpytest("-s", p, '--basetemp=%s/bt' % linktemp) |     result = testdir.runpytest("-s", p, '--basetemp=%s/bt' % linktemp) | ||||||
|     assert not result.ret |     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) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue