# HG changeset patch # User Sylvain Thénault # Date 1287745827 -7200 # Node ID 9af22f2c0c4c624a3f29d529ec9505c3ba692b0a # Parent df0b2de62cec10c84a2fff5233db05852cbffe93 [test] start to make tests independant from cwd (more to do for tests which don't inherit from CubicWebTC diff -r df0b2de62cec -r 9af22f2c0c4c devtools/__init__.py --- a/devtools/__init__.py Thu Oct 21 09:34:21 2010 +0200 +++ b/devtools/__init__.py Fri Oct 22 13:10:27 2010 +0200 @@ -111,7 +111,14 @@ }), )) - def __init__(self, appid, log_threshold=logging.CRITICAL+10): + def __init__(self, appid, apphome=None, log_threshold=logging.CRITICAL+10): + # must be set before calling parent __init__ + if apphome is None: + if exists(self.appid): + apphome = abspath(self.appid) + else: # cube test + apphome = abspath('..') + self._apphome = apphome ServerConfiguration.__init__(self, appid) self.init_log(log_threshold, force=True) # need this, usually triggered by cubicweb-ctl @@ -121,10 +128,7 @@ @property def apphome(self): - if exists(self.appid): - return abspath(self.appid) - # cube test - return abspath('..') + return self._apphome appdatahome = apphome def load_configuration(self): @@ -196,8 +200,10 @@ # XXX merge with BaseApptestConfiguration ? class ApptestConfiguration(BaseApptestConfiguration): - def __init__(self, appid, log_threshold=logging.CRITICAL, sourcefile=None): - BaseApptestConfiguration.__init__(self, appid, log_threshold=log_threshold) + def __init__(self, appid, apphome=None, + log_threshold=logging.CRITICAL, sourcefile=None): + BaseApptestConfiguration.__init__(self, appid, apphome, + log_threshold=log_threshold) self.init_repository = sourcefile is None self.sourcefile = sourcefile diff -r df0b2de62cec -r 9af22f2c0c4c devtools/test/unittest_dbfill.py --- a/devtools/test/unittest_dbfill.py Thu Oct 21 09:34:21 2010 +0200 +++ b/devtools/test/unittest_dbfill.py Fri Oct 22 13:10:27 2010 +0200 @@ -16,9 +16,7 @@ # # You should have received a copy of the GNU Lesser General Public License along # with CubicWeb. If not, see . -"""unit tests for database value generator - -""" +"""unit tests for database value generator""" import os.path as osp import re @@ -56,7 +54,7 @@ return [f.strip() for f in file(osp.join(DATADIR, 'firstnames.txt'))] def setUp(self): - config = ApptestConfiguration('data') + config = ApptestConfiguration('data', apphome=DATADIR) config.bootstrap_cubes() schema = config.load_schema() e_schema = schema.eschema('Person') diff -r df0b2de62cec -r 9af22f2c0c4c devtools/testlib.py --- a/devtools/testlib.py Thu Oct 21 09:34:21 2010 +0200 +++ b/devtools/testlib.py Fri Oct 22 13:10:27 2010 +0200 @@ -24,8 +24,9 @@ import os import sys import re +import urlparse +from os.path import dirname from urllib import unquote -import urlparse from math import log from contextlib import contextmanager from warnings import warn @@ -198,7 +199,9 @@ try: return cls.__dict__['_config'] except KeyError: - config = cls._config = cls.configcls(cls.appid) + home = join(dirname(sys.modules[self.__class__.__module__].__file__), + cls.appid) + config = cls._config = cls.configcls(cls.appid, apphome=home) config.mode = 'test' return config