Commit f6cac0e3 authored by Julien Muchembled's avatar Julien Muchembled

tests: gather temporary folders in a subfolder to not pollute default /tmp

git-svn-id: https://svn.erp5.org/repos/neo/trunk@2668 71dcc9de-d417-0410-9af5-da40c76e7ee4
parent bb49f74b
...@@ -18,13 +18,13 @@ ...@@ -18,13 +18,13 @@
import traceback import traceback
import unittest import unittest
import tempfile
import logging import logging
import time import time
import sys import sys
import neo import neo
import os import os
from neo.tests import getTempDirectory
from neo.tests.benchmark import BenchmarkRunner from neo.tests.benchmark import BenchmarkRunner
# list of test modules # list of test modules
...@@ -111,8 +111,7 @@ class NeoTestRunner(unittest.TestResult): ...@@ -111,8 +111,7 @@ class NeoTestRunner(unittest.TestResult):
self.modulesStats = {} self.modulesStats = {}
self.failedImports = {} self.failedImports = {}
self.lastStart = None self.lastStart = None
self.temp_directory = tempfile.mkdtemp(prefix='neo_') self.temp_directory = getTempDirectory()
print "Base directory : %s" % (self.temp_directory, )
def run(self, name, modules): def run(self, name, modules):
print '\n', name print '\n', name
......
...@@ -52,6 +52,24 @@ def buildUrlFromString(address): ...@@ -52,6 +52,24 @@ def buildUrlFromString(address):
pass pass
return address return address
def getTempDirectory():
"""get the current temp directory or a new one"""
try:
temp_dir = os.environ['TEMP']
except KeyError:
neo_dir = os.path.join(tempfile.gettempdir(), 'neo_tests')
while True:
temp_dir = os.path.join(neo_dir, repr(time()))
try:
os.makedirs(temp_dir)
break
except OSError, e:
if e.errno != errno.EEXIST:
raise
os.environ['TEMP'] = temp_dir
print 'Using temp directory %r.' % temp_dir
return temp_dir
class NeoTestBase(unittest.TestCase): class NeoTestBase(unittest.TestCase):
def setUp(self): def setUp(self):
sys.stdout.write(' * %s ' % (self.id(), )) sys.stdout.write(' * %s ' % (self.id(), ))
......
...@@ -33,7 +33,7 @@ from neo.neoctl.neoctl import NeoCTL, NotReadyException ...@@ -33,7 +33,7 @@ from neo.neoctl.neoctl import NeoCTL, NotReadyException
from neo.lib.protocol import ClusterStates, NodeTypes, CellStates, NodeStates from neo.lib.protocol import ClusterStates, NodeTypes, CellStates, NodeStates
from neo.lib.util import dump, SOCKET_CONNECTORS_DICT from neo.lib.util import dump, SOCKET_CONNECTORS_DICT
from neo.tests import DB_ADMIN, DB_PASSWD, NeoTestBase, buildUrlFromString, \ from neo.tests import DB_ADMIN, DB_PASSWD, NeoTestBase, buildUrlFromString, \
ADDRESS_TYPE, IP_VERSION_FORMAT_DICT, SocketLock ADDRESS_TYPE, IP_VERSION_FORMAT_DICT, SocketLock, getTempDirectory
from neo.client.Storage import Storage from neo.client.Storage import Storage
NEO_MASTER = 'neomaster' NEO_MASTER = 'neomaster'
...@@ -613,14 +613,8 @@ class NEOCluster(object): ...@@ -613,14 +613,8 @@ class NEOCluster(object):
class NEOFunctionalTest(NeoTestBase): class NEOFunctionalTest(NeoTestBase):
def getTempDirectory(self): def getTempDirectory(self):
# get the current temp directory or a new one
temp_dir = os.environ.get('TEMP', None)
if temp_dir is None:
temp_dir = tempfile.mkdtemp(prefix='neo_')
os.environ['TEMP'] = temp_dir
print 'Using temp directory %r.' % (temp_dir, )
# build the full path based on test case and current test method # build the full path based on test case and current test method
temp_dir = os.path.join(temp_dir, self.id()) temp_dir = os.path.join(getTempDirectory(), self.id())
# build the path if needed # build the path if needed
if not os.path.exists(temp_dir): if not os.path.exists(temp_dir):
os.makedirs(temp_dir) os.makedirs(temp_dir)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment