diff --git a/pylons_app/tests/__init__.py b/pylons_app/tests/__init__.py --- a/pylons_app/tests/__init__.py +++ b/pylons_app/tests/__init__.py @@ -16,7 +16,9 @@ from routes.util import URLGenerator from webtest import TestApp import os from pylons_app.model import meta +from pylons_app.lib.indexers import IDX_LOCATION import logging +import shutil log = logging.getLogger(__name__) import pylons.test @@ -25,6 +27,23 @@ __all__ = ['environ', 'url', 'TestContro # Invoke websetup with the current config file #SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']]) +def create_index(repo_location, full_index): + from pylons_app.lib.indexers import daemon + from pylons_app.lib.indexers.daemon import WhooshIndexingDaemon + from pylons_app.lib.indexers.pidlock import DaemonLock, LockHeld + + try: + l = DaemonLock() + WhooshIndexingDaemon(repo_location=repo_location)\ + .run(full_index=full_index) + l.release() + except LockHeld: + pass + +if os.path.exists(IDX_LOCATION): + shutil.rmtree(IDX_LOCATION) + +create_index('/tmp/*', True) environ = {} @@ -36,6 +55,7 @@ class TestController(TestCase): self.app = TestApp(wsgiapp) url._push_object(URLGenerator(config['routes.map'], environ)) self.sa = meta.Session + TestCase.__init__(self, *args, **kwargs) @@ -46,4 +66,5 @@ class TestController(TestCase): assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status assert response.session['hg_app_user'].username == 'test_admin', 'wrong logged in user' return response.follow() - \ No newline at end of file + +