[svn r38182] Made that ensuretemp() creates a new dir after forks.
--HG-- branch : trunk
This commit is contained in:
parent
1e8845dfa5
commit
e89d5e5880
|
@ -8,12 +8,15 @@ optparse = py.compat.optparse
|
|||
|
||||
# XXX move to Config class
|
||||
basetemp = None
|
||||
_pid = None
|
||||
def ensuretemp(string, dir=1):
|
||||
""" return temporary directory path with
|
||||
the given string as the trailing part.
|
||||
"""
|
||||
global basetemp
|
||||
if basetemp is None:
|
||||
global basetemp, _pid
|
||||
currpid = py.std.os.getpid()
|
||||
if basetemp is None or _pid != currpid:
|
||||
_pid = currpid
|
||||
basetemp = py.path.local.make_numbered_dir(prefix='pytest-')
|
||||
return basetemp.ensure(string, dir=dir)
|
||||
|
||||
|
|
|
@ -10,6 +10,21 @@ 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