You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2012/10/29 16:45:56 UTC

[2/2] git commit: [#5145] Renamed test_(neighborhood|project)_root.py to exclude them from test run

[#5145] Renamed test_(neighborhood|project)_root.py to exclude them from test run

Signed-off-by: Cory Johns <jo...@geek.net>


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/ade7d6db
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/ade7d6db
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/ade7d6db

Branch: refs/heads/master
Commit: ade7d6db15563732a9f1484210c1f6a6a1f3b250
Parents: 4910dd9
Author: Cory Johns <jo...@geek.net>
Authored: Mon Oct 29 15:36:26 2012 +0000
Committer: Cory Johns <jo...@geek.net>
Committed: Mon Oct 29 15:36:26 2012 +0000

----------------------------------------------------------------------
 .../controllers/basetest_neighborhood_root.py      |  170 ++++++++++++++
 Allura/allura/controllers/basetest_project_root.py |  180 +++++++++++++++
 .../allura/controllers/test_neighborhood_root.py   |  170 --------------
 Allura/allura/controllers/test_project_root.py     |  180 ---------------
 .../allura/tests/functional/test_neighborhood.py   |    2 +-
 run_tests                                          |    2 +-
 6 files changed, 352 insertions(+), 352 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ade7d6db/Allura/allura/controllers/basetest_neighborhood_root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/basetest_neighborhood_root.py b/Allura/allura/controllers/basetest_neighborhood_root.py
new file mode 100644
index 0000000..997d1b6
--- /dev/null
+++ b/Allura/allura/controllers/basetest_neighborhood_root.py
@@ -0,0 +1,170 @@
+# -*- coding: utf-8 -*-
+"""Main Controller"""
+import os
+import logging
+from urllib import unquote
+
+import pkg_resources
+from pylons import c, g, request, response
+from webob import exc
+from tg import expose, redirect
+from tg.decorators import without_trailing_slash
+
+import  ming.orm.ormsession
+
+import allura
+from allura.lib.base import WsgiDispatchController
+from allura.lib.security import require, require_authenticated, require_access, has_access
+from allura.lib import helpers as h
+from allura.lib import plugin
+from allura import model as M
+from .root import RootController
+from .project import NeighborhoodController, ProjectController
+from .auth import AuthController
+from .static import NewForgeController
+from .search import SearchController
+from .error import ErrorController
+from .rest import RestController
+
+__all__ = ['RootController']
+
+log = logging.getLogger(__name__)
+
+class BasetestNeighborhoodRootController(WsgiDispatchController, NeighborhoodController):
+    '''Root controller for testing -- it behaves just like a
+    NeighborhoodController for test/ except that all tools are mounted,
+    on-demand, at the mount point that is the same as their entry point
+    name.
+
+    Also, the test-admin is perpetually logged in here.
+
+    The name of this controller is dictated by the override_root setting
+    in development.ini and the magical import rules of TurboGears.  The
+    override_root setting has to match the name of this file, which has
+    to match (less underscores, case changes, and the addition of
+    "Controller") the name of this class.  It will then be registered
+    as the root controller instead of allura.controllers.root.RootController.
+    '''
+
+    def __init__(self):
+        for n in M.Neighborhood.query.find():
+            if n.url_prefix.startswith('//'): continue
+            n.bind_controller(self)
+        self.p_nbhd = M.Neighborhood.query.get(name='Projects')
+        proxy_root = RootController()
+        self.dispatch = DispatchTest()
+        self.security = SecurityTests()
+        for attr in ('index', 'browse', 'auth', 'nf', 'error'):
+            setattr(self, attr, getattr(proxy_root, attr))
+        self.gsearch = proxy_root.search
+        self.rest = RestController()
+        super(BasetestNeighborhoodRootController, self).__init__()
+
+    def _setup_request(self):
+        pass
+
+    def _cleanup_request(self):
+        pass
+
+    @expose()
+    def _lookup(self, pname, *remainder):
+        pname = unquote(pname)
+        if not h.re_path_portion.match(pname):
+            raise exc.HTTPNotFound, pname
+        project = M.Project.query.get(shortname=self.prefix + pname, neighborhood_id=self.neighborhood._id)
+        if project is None:
+            project = self.neighborhood.neighborhood_project
+            c.project = project
+            return ProjectController()._lookup(pname, *remainder)
+        if project.database_configured == False:
+            if remainder == ('user_icon',):
+                redirect(g.forge_static('images/user.png'))
+            elif c.user.username == pname:
+                log.info('Configuring %s database for access to %r',
+                         pname, remainder)
+                project.configure_project(is_user_project=True)
+            else:
+                raise exc.HTTPNotFound, pname
+        c.project = project
+        if project is None or (project.deleted and not has_access(c.project, 'update')()):
+            raise exc.HTTPNotFound, pname
+        if project.neighborhood.name != self.neighborhood_name:
+            redirect(project.url())
+        return ProjectController(), remainder
+
+    def __call__(self, environ, start_response):
+        c.app = None
+        c.user = plugin.AuthenticationProvider.get(request).by_username(
+            environ.get('username', 'test-admin'))
+        return WsgiDispatchController.__call__(self, environ, start_response)
+
+class DispatchTest(object):
+
+    @expose()
+    def _lookup(self, *args):
+        if args:
+            return NamedController(args[0]), args[1:]
+        else:
+            raise exc.HTTPNotFound()
+
+class NamedController(object):
+
+    def __init__(self, name):
+        self.name = name
+
+    @expose()
+    def index(self, **kw):
+        return 'index ' + self.name
+
+    @expose()
+    def _default(self, *args):
+        return 'default(%s)(%r)' % (self.name, args)
+
+class SecurityTests(object):
+
+    @expose()
+    def _lookup(self, name, *args):
+        name = unquote(name)
+        if name == '*anonymous':
+            c.user = M.User.anonymous()
+        return SecurityTest(), args
+
+class SecurityTest(object):
+
+    def __init__(self):
+        from forgewiki import model as WM
+        c.app = c.project.app_instance('wiki')
+        self.page = WM.Page.query.get(app_config_id=c.app.config._id, title='Home')
+
+    @expose()
+    def forbidden(self):
+        require(lambda:False, 'Never allowed')
+        return ''
+
+    @expose()
+    def needs_auth(self):
+        require_authenticated()
+        return ''
+
+    @expose()
+    def needs_project_access_fail(self):
+        require_access(c.project, 'no_such_permission')
+        return ''
+
+    @expose()
+    def needs_project_access_ok(self):
+        pred = has_access(c.project, 'read')
+        if not pred():
+            log.info('Inside needs_project_access, c.user = %s' % c.user)
+        require(pred)
+        return ''
+
+    @expose()
+    def needs_artifact_access_fail(self):
+        require_access(self.page, 'no_such_permission')
+        return ''
+
+    @expose()
+    def needs_artifact_access_ok(self):
+        require_access(self.page, 'read')
+        return ''

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ade7d6db/Allura/allura/controllers/basetest_project_root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/basetest_project_root.py b/Allura/allura/controllers/basetest_project_root.py
new file mode 100644
index 0000000..c45d64d
--- /dev/null
+++ b/Allura/allura/controllers/basetest_project_root.py
@@ -0,0 +1,180 @@
+# -*- coding: utf-8 -*-
+"""Main Controller"""
+import os
+import logging
+from urllib import unquote
+
+import pkg_resources
+from pylons import c, request, response
+from webob import exc
+from tg import expose
+from tg.decorators import without_trailing_slash
+
+import  ming.orm.ormsession
+
+import allura
+from allura.lib.base import WsgiDispatchController
+from allura.lib.security import require, require_authenticated, require_access, has_access
+from allura.lib import helpers as h
+from allura.lib import plugin
+from allura import model as M
+from .root import RootController
+from .project import ProjectController
+from .auth import AuthController
+from .static import NewForgeController
+from .search import SearchController
+from .error import ErrorController
+from .rest import RestController
+
+__all__ = ['RootController']
+
+log = logging.getLogger(__name__)
+
+class BasetestProjectRootController(WsgiDispatchController, ProjectController):
+    '''Root controller for testing -- it behaves just like a
+    ProjectController for test/ except that all tools are mounted,
+    on-demand, at the mount point that is the same as their entry point
+    name.
+
+    Also, the test-admin is perpetually logged in here.
+
+    The name of this controller is dictated by the override_root setting
+    in development.ini and the magical import rules of TurboGears.  The
+    override_root setting has to match the name of this file, which has
+    to match (less underscores, case changes, and the addition of
+    "Controller") the name of this class.  It will then be registered
+    as the root controller instead of allura.controllers.root.RootController.
+    '''
+
+    def __init__(self):
+        setattr(self, 'feed.rss', self.feed)
+        setattr(self, 'feed.atom', self.feed)
+        for n in M.Neighborhood.query.find():
+            if n.url_prefix.startswith('//'): continue
+            n.bind_controller(self)
+        self.p_nbhd = M.Neighborhood.query.get(name='Projects')
+        proxy_root = RootController()
+        self.dispatch = DispatchTest()
+        self.security = SecurityTests()
+        for attr in ('index', 'browse', 'auth', 'nf', 'error'):
+            setattr(self, attr, getattr(proxy_root, attr))
+        self.gsearch = proxy_root.search
+        self.rest = RestController()
+        super(BasetestProjectRootController, self).__init__()
+
+    def _setup_request(self):
+        # This code fixes a race condition in our tests
+        c.project = M.Project.query.get(shortname='test', neighborhood_id=self.p_nbhd._id)
+        c.memoize_cache = {}
+        count = 20
+        while c.project is None:
+            import sys, time
+            time.sleep(0.5)
+            log.warning('Project "test" not found, retrying...')
+            c.project = M.Project.query.get(shortname='test', neighborhood_id=self.p_nbhd._id)
+            count -= 1
+            assert count > 0, 'Timeout waiting for test project to appear'
+
+    def _cleanup_request(self):
+        pass
+
+    @expose()
+    def _lookup(self, name, *remainder):
+        if not h.re_path_portion.match(name):
+            raise exc.HTTPNotFound, name
+        subproject = M.Project.query.get(shortname=c.project.shortname + '/' + name,
+                                         neighborhood_id=self.p_nbhd._id)
+        if subproject:
+            c.project = subproject
+            c.app = None
+            return ProjectController(), remainder
+        app = c.project.app_instance(name)
+        if app is None:
+            prefix = 'test-app-'
+            ep_name = name
+            if name.startswith('test-app-'):
+                ep_name = name[len(prefix):]
+            c.project.install_app(ep_name, name)
+            app = c.project.app_instance(name)
+            if app is None:
+                raise exc.HTTPNotFound, name
+        c.app = app
+        return app.root, remainder
+
+    def __call__(self, environ, start_response):
+        c.app = None
+        c.project = M.Project.query.get(shortname='test', neighborhood_id=self.p_nbhd._id)
+        c.user = plugin.AuthenticationProvider.get(request).by_username(
+            environ.get('username', 'test-admin'))
+        return WsgiDispatchController.__call__(self, environ, start_response)
+
+class DispatchTest(object):
+
+    @expose()
+    def _lookup(self, *args):
+        if args:
+            return NamedController(args[0]), args[1:]
+        else:
+            raise exc.HTTPNotFound()
+
+class NamedController(object):
+
+    def __init__(self, name):
+        self.name = name
+
+    @expose()
+    def index(self, **kw):
+        return 'index ' + self.name
+
+    @expose()
+    def _default(self, *args):
+        return 'default(%s)(%r)' % (self.name, args)
+
+class SecurityTests(object):
+
+    @expose()
+    def _lookup(self, name, *args):
+        name = unquote(name)
+        if name == '*anonymous':
+            c.user = M.User.anonymous()
+        return SecurityTest(), args
+
+class SecurityTest(object):
+
+    def __init__(self):
+        from forgewiki import model as WM
+        c.app = c.project.app_instance('wiki')
+        self.page = WM.Page.query.get(app_config_id=c.app.config._id, title='Home')
+
+    @expose()
+    def forbidden(self):
+        require(lambda:False, 'Never allowed')
+        return ''
+
+    @expose()
+    def needs_auth(self):
+        require_authenticated()
+        return ''
+
+    @expose()
+    def needs_project_access_fail(self):
+        require_access(c.project, 'no_such_permission')
+        return ''
+
+    @expose()
+    def needs_project_access_ok(self):
+        pred = has_access(c.project, 'read')
+        if not pred():
+            log.info('Inside needs_project_access, c.user = %s' % c.user)
+        require(pred)
+        return ''
+
+    @expose()
+    def needs_artifact_access_fail(self):
+        require_access(self.page, 'no_such_permission')
+        return ''
+
+    @expose()
+    def needs_artifact_access_ok(self):
+        require_access(self.page, 'read')
+        return ''

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ade7d6db/Allura/allura/controllers/test_neighborhood_root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/test_neighborhood_root.py b/Allura/allura/controllers/test_neighborhood_root.py
deleted file mode 100644
index ccd7d4a..0000000
--- a/Allura/allura/controllers/test_neighborhood_root.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# -*- coding: utf-8 -*-
-"""Main Controller"""
-import os
-import logging
-from urllib import unquote
-
-import pkg_resources
-from pylons import c, g, request, response
-from webob import exc
-from tg import expose, redirect
-from tg.decorators import without_trailing_slash
-
-import  ming.orm.ormsession
-
-import allura
-from allura.lib.base import WsgiDispatchController
-from allura.lib.security import require, require_authenticated, require_access, has_access
-from allura.lib import helpers as h
-from allura.lib import plugin
-from allura import model as M
-from .root import RootController
-from .project import NeighborhoodController, ProjectController
-from .auth import AuthController
-from .static import NewForgeController
-from .search import SearchController
-from .error import ErrorController
-from .rest import RestController
-
-__all__ = ['RootController']
-
-log = logging.getLogger(__name__)
-
-class TestNeighborhoodRootController(WsgiDispatchController, NeighborhoodController):
-    '''Root controller for testing -- it behaves just like a
-    NeighborhoodController for test/ except that all tools are mounted,
-    on-demand, at the mount point that is the same as their entry point
-    name.
-
-    Also, the test-admin is perpetually logged in here.
-
-    The name of this controller is dictated by the override_root setting
-    in development.ini and the magical import rules of TurboGears.  The
-    override_root setting has to match the name of this file, which has
-    to match (less underscores, case changes, and the addition of
-    "Controller") the name of this class.  It will then be registered
-    as the root controller instead of allura.controllers.root.RootController.
-    '''
-
-    def __init__(self):
-        for n in M.Neighborhood.query.find():
-            if n.url_prefix.startswith('//'): continue
-            n.bind_controller(self)
-        self.p_nbhd = M.Neighborhood.query.get(name='Projects')
-        proxy_root = RootController()
-        self.dispatch = DispatchTest()
-        self.security = SecurityTests()
-        for attr in ('index', 'browse', 'auth', 'nf', 'error'):
-            setattr(self, attr, getattr(proxy_root, attr))
-        self.gsearch = proxy_root.search
-        self.rest = RestController()
-        super(TestNeighborhoodRootController, self).__init__()
-
-    def _setup_request(self):
-        pass
-
-    def _cleanup_request(self):
-        pass
-
-    @expose()
-    def _lookup(self, pname, *remainder):
-        pname = unquote(pname)
-        if not h.re_path_portion.match(pname):
-            raise exc.HTTPNotFound, pname
-        project = M.Project.query.get(shortname=self.prefix + pname, neighborhood_id=self.neighborhood._id)
-        if project is None:
-            project = self.neighborhood.neighborhood_project
-            c.project = project
-            return ProjectController()._lookup(pname, *remainder)
-        if project.database_configured == False:
-            if remainder == ('user_icon',):
-                redirect(g.forge_static('images/user.png'))
-            elif c.user.username == pname:
-                log.info('Configuring %s database for access to %r',
-                         pname, remainder)
-                project.configure_project(is_user_project=True)
-            else:
-                raise exc.HTTPNotFound, pname
-        c.project = project
-        if project is None or (project.deleted and not has_access(c.project, 'update')()):
-            raise exc.HTTPNotFound, pname
-        if project.neighborhood.name != self.neighborhood_name:
-            redirect(project.url())
-        return ProjectController(), remainder
-
-    def __call__(self, environ, start_response):
-        c.app = None
-        c.user = plugin.AuthenticationProvider.get(request).by_username(
-            environ.get('username', 'test-admin'))
-        return WsgiDispatchController.__call__(self, environ, start_response)
-
-class DispatchTest(object):
-
-    @expose()
-    def _lookup(self, *args):
-        if args:
-            return NamedController(args[0]), args[1:]
-        else:
-            raise exc.HTTPNotFound()
-
-class NamedController(object):
-
-    def __init__(self, name):
-        self.name = name
-
-    @expose()
-    def index(self, **kw):
-        return 'index ' + self.name
-
-    @expose()
-    def _default(self, *args):
-        return 'default(%s)(%r)' % (self.name, args)
-
-class SecurityTests(object):
-
-    @expose()
-    def _lookup(self, name, *args):
-        name = unquote(name)
-        if name == '*anonymous':
-            c.user = M.User.anonymous()
-        return SecurityTest(), args
-
-class SecurityTest(object):
-
-    def __init__(self):
-        from forgewiki import model as WM
-        c.app = c.project.app_instance('wiki')
-        self.page = WM.Page.query.get(app_config_id=c.app.config._id, title='Home')
-
-    @expose()
-    def forbidden(self):
-        require(lambda:False, 'Never allowed')
-        return ''
-
-    @expose()
-    def needs_auth(self):
-        require_authenticated()
-        return ''
-
-    @expose()
-    def needs_project_access_fail(self):
-        require_access(c.project, 'no_such_permission')
-        return ''
-
-    @expose()
-    def needs_project_access_ok(self):
-        pred = has_access(c.project, 'read')
-        if not pred():
-            log.info('Inside needs_project_access, c.user = %s' % c.user)
-        require(pred)
-        return ''
-
-    @expose()
-    def needs_artifact_access_fail(self):
-        require_access(self.page, 'no_such_permission')
-        return ''
-
-    @expose()
-    def needs_artifact_access_ok(self):
-        require_access(self.page, 'read')
-        return ''

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ade7d6db/Allura/allura/controllers/test_project_root.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/test_project_root.py b/Allura/allura/controllers/test_project_root.py
deleted file mode 100644
index e709506..0000000
--- a/Allura/allura/controllers/test_project_root.py
+++ /dev/null
@@ -1,180 +0,0 @@
-# -*- coding: utf-8 -*-
-"""Main Controller"""
-import os
-import logging
-from urllib import unquote
-
-import pkg_resources
-from pylons import c, request, response
-from webob import exc
-from tg import expose
-from tg.decorators import without_trailing_slash
-
-import  ming.orm.ormsession
-
-import allura
-from allura.lib.base import WsgiDispatchController
-from allura.lib.security import require, require_authenticated, require_access, has_access
-from allura.lib import helpers as h
-from allura.lib import plugin
-from allura import model as M
-from .root import RootController
-from .project import ProjectController
-from .auth import AuthController
-from .static import NewForgeController
-from .search import SearchController
-from .error import ErrorController
-from .rest import RestController
-
-__all__ = ['RootController']
-
-log = logging.getLogger(__name__)
-
-class TestProjectRootController(WsgiDispatchController, ProjectController):
-    '''Root controller for testing -- it behaves just like a
-    ProjectController for test/ except that all tools are mounted,
-    on-demand, at the mount point that is the same as their entry point
-    name.
-
-    Also, the test-admin is perpetually logged in here.
-
-    The name of this controller is dictated by the override_root setting
-    in development.ini and the magical import rules of TurboGears.  The
-    override_root setting has to match the name of this file, which has
-    to match (less underscores, case changes, and the addition of
-    "Controller") the name of this class.  It will then be registered
-    as the root controller instead of allura.controllers.root.RootController.
-    '''
-
-    def __init__(self):
-        setattr(self, 'feed.rss', self.feed)
-        setattr(self, 'feed.atom', self.feed)
-        for n in M.Neighborhood.query.find():
-            if n.url_prefix.startswith('//'): continue
-            n.bind_controller(self)
-        self.p_nbhd = M.Neighborhood.query.get(name='Projects')
-        proxy_root = RootController()
-        self.dispatch = DispatchTest()
-        self.security = SecurityTests()
-        for attr in ('index', 'browse', 'auth', 'nf', 'error'):
-            setattr(self, attr, getattr(proxy_root, attr))
-        self.gsearch = proxy_root.search
-        self.rest = RestController()
-        super(TestProjectRootController, self).__init__()
-
-    def _setup_request(self):
-        # This code fixes a race condition in our tests
-        c.project = M.Project.query.get(shortname='test', neighborhood_id=self.p_nbhd._id)
-        c.memoize_cache = {}
-        count = 20
-        while c.project is None:
-            import sys, time
-            time.sleep(0.5)
-            log.warning('Project "test" not found, retrying...')
-            c.project = M.Project.query.get(shortname='test', neighborhood_id=self.p_nbhd._id)
-            count -= 1
-            assert count > 0, 'Timeout waiting for test project to appear'
-
-    def _cleanup_request(self):
-        pass
-
-    @expose()
-    def _lookup(self, name, *remainder):
-        if not h.re_path_portion.match(name):
-            raise exc.HTTPNotFound, name
-        subproject = M.Project.query.get(shortname=c.project.shortname + '/' + name,
-                                         neighborhood_id=self.p_nbhd._id)
-        if subproject:
-            c.project = subproject
-            c.app = None
-            return ProjectController(), remainder
-        app = c.project.app_instance(name)
-        if app is None:
-            prefix = 'test-app-'
-            ep_name = name
-            if name.startswith('test-app-'):
-                ep_name = name[len(prefix):]
-            c.project.install_app(ep_name, name)
-            app = c.project.app_instance(name)
-            if app is None:
-                raise exc.HTTPNotFound, name
-        c.app = app
-        return app.root, remainder
-
-    def __call__(self, environ, start_response):
-        c.app = None
-        c.project = M.Project.query.get(shortname='test', neighborhood_id=self.p_nbhd._id)
-        c.user = plugin.AuthenticationProvider.get(request).by_username(
-            environ.get('username', 'test-admin'))
-        return WsgiDispatchController.__call__(self, environ, start_response)
-
-class DispatchTest(object):
-
-    @expose()
-    def _lookup(self, *args):
-        if args:
-            return NamedController(args[0]), args[1:]
-        else:
-            raise exc.HTTPNotFound()
-
-class NamedController(object):
-
-    def __init__(self, name):
-        self.name = name
-
-    @expose()
-    def index(self, **kw):
-        return 'index ' + self.name
-
-    @expose()
-    def _default(self, *args):
-        return 'default(%s)(%r)' % (self.name, args)
-
-class SecurityTests(object):
-
-    @expose()
-    def _lookup(self, name, *args):
-        name = unquote(name)
-        if name == '*anonymous':
-            c.user = M.User.anonymous()
-        return SecurityTest(), args
-
-class SecurityTest(object):
-
-    def __init__(self):
-        from forgewiki import model as WM
-        c.app = c.project.app_instance('wiki')
-        self.page = WM.Page.query.get(app_config_id=c.app.config._id, title='Home')
-
-    @expose()
-    def forbidden(self):
-        require(lambda:False, 'Never allowed')
-        return ''
-
-    @expose()
-    def needs_auth(self):
-        require_authenticated()
-        return ''
-
-    @expose()
-    def needs_project_access_fail(self):
-        require_access(c.project, 'no_such_permission')
-        return ''
-
-    @expose()
-    def needs_project_access_ok(self):
-        pred = has_access(c.project, 'read')
-        if not pred():
-            log.info('Inside needs_project_access, c.user = %s' % c.user)
-        require(pred)
-        return ''
-
-    @expose()
-    def needs_artifact_access_fail(self):
-        require_access(self.page, 'no_such_permission')
-        return ''
-
-    @expose()
-    def needs_artifact_access_ok(self):
-        require_access(self.page, 'read')
-        return ''

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ade7d6db/Allura/allura/tests/functional/test_neighborhood.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_neighborhood.py b/Allura/allura/tests/functional/test_neighborhood.py
index 9356fc5..b6b6ac4 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -22,7 +22,7 @@ class TestNeighborhood(TestController):
         # change the override_root config value to change which root controller the test uses
         self._make_app = allura.config.middleware.make_app
         def make_app(global_conf, full_stack=True, **app_conf):
-            app_conf['override_root'] = 'test_neighborhood_root'
+            app_conf['override_root'] = 'basetest_neighborhood_root'
             return self._make_app(global_conf, full_stack, **app_conf)
         allura.config.middleware.make_app = make_app
         super(TestNeighborhood, self).setUp()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ade7d6db/run_tests
----------------------------------------------------------------------
diff --git a/run_tests b/run_tests
index 18d806e..a37f012 100755
--- a/run_tests
+++ b/run_tests
@@ -32,6 +32,6 @@ for module in $TEST_MODULES; do
         echo "Running tests in module $module"
         cd $module
         cover_package=$(echo $module | tr "[:upper:]" "[:lower:]")
-        nosetests --ignore-files="^test_.+_root" --cover-package=$cover_package --cover-html-dir=report.coverage --cover-erase $* || exit
+        nosetests --cover-package=$cover_package --cover-html-dir=report.coverage --cover-erase $* || exit
     ) || exit
 done