[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:
parent
499d60c8ab
commit
ab6dded07a
|
@ -6,17 +6,15 @@ from py.__.test.defaultconftest import adddefaultoptions
|
|||
|
||||
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
|
||||
the given string as the trailing part.
|
||||
"""
|
||||
# we may be in a forking situation and want to use
|
||||
# separate dirs then (XXX or not?)
|
||||
pid = py.std.os.getpid()
|
||||
basetemp = _pid2dir.get(pid, None)
|
||||
global basetemp
|
||||
if basetemp is None:
|
||||
basetemp = py.path.local.make_numbered_dir(prefix='pytest-')
|
||||
_pid2dir[pid] = basetemp
|
||||
return basetemp.ensure(string, dir=dir)
|
||||
|
||||
class CmdOptions(object):
|
||||
|
|
|
@ -10,21 +10,6 @@ def test_tmpdir():
|
|||
assert d1 == d2
|
||||
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():
|
||||
o = py.test.ensuretemp('configoptions')
|
||||
o.ensure("conftest.py").write(py.code.Source("""
|
||||
|
|
Loading…
Reference in New Issue