# HG changeset patch # User Sylvain Thénault # Date 1287745837 -7200 # Node ID 207dc5111af2e94dbe1c7950f42f401f14e27191 # Parent c4aa6186d3a3bfc406f3066f80b69447f151eb44# Parent 9af22f2c0c4c624a3f29d529ec9505c3ba692b0a merge diff -r c4aa6186d3a3 -r 207dc5111af2 devtools/__init__.py --- a/devtools/__init__.py Fri Oct 22 13:09:09 2010 +0200 +++ b/devtools/__init__.py Fri Oct 22 13:10:37 2010 +0200 @@ -100,7 +100,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 @@ -110,10 +117,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): @@ -187,8 +191,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 c4aa6186d3a3 -r 207dc5111af2 devtools/test/unittest_dbfill.py --- a/devtools/test/unittest_dbfill.py Fri Oct 22 13:09:09 2010 +0200 +++ b/devtools/test/unittest_dbfill.py Fri Oct 22 13:10:37 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 c4aa6186d3a3 -r 207dc5111af2 devtools/testlib.py --- a/devtools/testlib.py Fri Oct 22 13:09:09 2010 +0200 +++ b/devtools/testlib.py Fri Oct 22 13:10:37 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