[svn r38207] revert 38182 and 38184 changes to ensuretemp()

because getpid() is different per thread
(and if e.g. run via execnet in threads ...
it creates new tempdirectories all the time)
let's consider this sometime else

--HG--
branch : trunk
This commit is contained in:
hpk 2007-02-08 21:31:50 +01:00
parent 499d60c8ab
commit ab6dded07a
2 changed files with 4 additions and 21 deletions

View File

@ -6,17 +6,15 @@ from py.__.test.defaultconftest import adddefaultoptions
optparse = py.compat.optparse optparse = py.compat.optparse
def ensuretemp(string, dir=1, _pid2dir={}): # XXX move to Config class
basetemp = None
def ensuretemp(string, dir=1):
""" return temporary directory path with """ return temporary directory path with
the given string as the trailing part. the given string as the trailing part.
""" """
# we may be in a forking situation and want to use global basetemp
# separate dirs then (XXX or not?)
pid = py.std.os.getpid()
basetemp = _pid2dir.get(pid, None)
if basetemp is None: if basetemp is None:
basetemp = py.path.local.make_numbered_dir(prefix='pytest-') basetemp = py.path.local.make_numbered_dir(prefix='pytest-')
_pid2dir[pid] = basetemp
return basetemp.ensure(string, dir=dir) return basetemp.ensure(string, dir=dir)
class CmdOptions(object): class CmdOptions(object):

View File

@ -10,21 +10,6 @@ def test_tmpdir():
assert d1 == d2 assert d1 == d2
assert d1.check(dir=1) assert d1.check(dir=1)
def test_ensuretemp_fork():
os = py.std.os
org_getpid = os.getpid
currpid = 0
def getpid():
return currpid
try:
os.getpid = getpid
d1 = py.test.ensuretemp('hello')
currpid = 1
d2 = py.test.ensuretemp('hello')
finally:
os.getpid = org_getpid
assert d1 != d2
def test_config_cmdline_options(): def test_config_cmdline_options():
o = py.test.ensuretemp('configoptions') o = py.test.ensuretemp('configoptions')
o.ensure("conftest.py").write(py.code.Source(""" o.ensure("conftest.py").write(py.code.Source("""