This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch db/8386
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 6a09135f26c1872157862ba59489d89b7f51ab32
Author: Dave Brondsema <[email protected]>
AuthorDate: Fri Apr 30 18:47:30 2021 -0400

    [#8386] don't import nose any more, use our own assertion helpers
---
 Allura/allura/tests/decorators.py                  |  2 +-
 Allura/allura/tests/functional/test_admin.py       |  2 +-
 Allura/allura/tests/functional/test_auth.py        |  2 +-
 Allura/allura/tests/functional/test_discuss.py     |  2 +-
 Allura/allura/tests/functional/test_gravatar.py    |  2 +-
 Allura/allura/tests/functional/test_home.py        |  2 +-
 .../allura/tests/functional/test_neighborhood.py   |  2 +-
 .../tests/functional/test_personal_dashboard.py    |  2 +-
 Allura/allura/tests/functional/test_rest.py        |  2 +-
 Allura/allura/tests/functional/test_root.py        |  2 +-
 Allura/allura/tests/functional/test_site_admin.py  |  2 +-
 .../allura/tests/functional/test_trovecategory.py  |  2 +-
 .../allura/tests/functional/test_user_profile.py   |  2 +-
 Allura/allura/tests/model/test_artifact.py         |  3 +-
 Allura/allura/tests/model/test_auth.py             |  6 +-
 Allura/allura/tests/model/test_discussion.py       |  4 +-
 Allura/allura/tests/model/test_filesystem.py       |  2 +-
 Allura/allura/tests/model/test_monq.py             |  2 +-
 Allura/allura/tests/model/test_neighborhood.py     |  2 +-
 Allura/allura/tests/model/test_notification.py     |  2 +-
 Allura/allura/tests/model/test_oauth.py            |  2 +-
 Allura/allura/tests/model/test_project.py          |  3 +-
 Allura/allura/tests/model/test_repo.py             |  2 +-
 Allura/allura/tests/model/test_timeline.py         |  2 +-
 .../tests/scripts/test_create_sitemap_files.py     |  2 +-
 .../allura/tests/scripts/test_delete_projects.py   |  2 +-
 Allura/allura/tests/scripts/test_misc_scripts.py   |  2 +-
 Allura/allura/tests/scripts/test_reindexes.py      |  2 +-
 .../tests/templates/jinja_master/test_lib.py       |  2 +-
 Allura/allura/tests/test_app.py                    |  2 +-
 Allura/allura/tests/test_commands.py               |  2 +-
 Allura/allura/tests/test_decorators.py             |  2 +-
 Allura/allura/tests/test_globals.py                |  2 +-
 Allura/allura/tests/test_helpers.py                |  2 +-
 Allura/allura/tests/test_mail_util.py              |  2 +-
 Allura/allura/tests/test_middlewares.py            |  2 +-
 Allura/allura/tests/test_multifactor.py            |  2 +-
 Allura/allura/tests/test_patches.py                |  2 +-
 Allura/allura/tests/test_plugin.py                 |  2 +-
 Allura/allura/tests/test_security.py               |  2 +-
 Allura/allura/tests/test_tasks.py                  |  2 +-
 Allura/allura/tests/test_utils.py                  |  2 +-
 Allura/allura/tests/test_webhooks.py               |  2 +-
 .../test_discussion_moderation_controller.py       |  2 +-
 Allura/allura/tests/unit/phone/test_nexmo.py       |  2 +-
 .../allura/tests/unit/phone/test_phone_service.py  |  2 +-
 Allura/allura/tests/unit/spam/test_spam_filter.py  |  2 +-
 .../allura/tests/unit/spam/test_stopforumspam.py   |  2 +-
 Allura/allura/tests/unit/test_app.py               |  2 +-
 Allura/allura/tests/unit/test_discuss.py           |  2 +-
 Allura/allura/tests/unit/test_helpers/test_ago.py  |  2 +-
 .../tests/unit/test_helpers/test_set_context.py    |  2 +-
 .../allura/tests/unit/test_ldap_auth_provider.py   |  4 +-
 .../allura/tests/unit/test_package_path_loader.py  |  2 +-
 Allura/allura/tests/unit/test_repo.py              |  2 +-
 AlluraTest/alluratest/tools.py                     | 86 ++++++++++++++++++++++
 AlluraTest/alluratest/validation.py                |  5 +-
 .../forgeactivity/tests/functional/test_root.py    |  2 +-
 ForgeBlog/forgeblog/tests/functional/test_feeds.py |  2 +-
 ForgeBlog/forgeblog/tests/functional/test_rest.py  |  2 +-
 ForgeBlog/forgeblog/tests/functional/test_root.py  |  2 +-
 ForgeBlog/forgeblog/tests/test_app.py              |  2 +-
 ForgeBlog/forgeblog/tests/unit/test_blog_post.py   |  2 +-
 .../forgediscussion/tests/functional/test_forum.py |  2 +-
 .../tests/functional/test_import.py                |  2 +-
 .../forgediscussion/tests/functional/test_rest.py  |  2 +-
 ForgeDiscussion/forgediscussion/tests/test_app.py  |  2 +-
 .../forgefeedback/tests/functional/test_root.py    |  4 +-
 .../forgefeedback/tests/test_feedback_roles.py     |  2 +-
 .../forgefeedback/tests/unit/test_feedback.py      |  2 +-
 .../tests/unit/test_root_controller.py             |  2 +-
 .../forgegit/tests/functional/test_controllers.py  |  4 +-
 ForgeGit/forgegit/tests/model/test_repository.py   |  2 +-
 ForgeGit/forgegit/tests/test_git_app.py            |  2 +-
 .../forgeimporters/github/tests/test_utils.py      |  2 +-
 .../forgeimporters/github/tests/test_wiki.py       |  2 +-
 .../tests/github/functional/test_github.py         |  2 +-
 ForgeImporters/forgeimporters/tests/test_base.py   |  2 +-
 .../trac/tests/functional/test_trac.py             |  2 +-
 ForgeLink/forgelink/tests/functional/test_rest.py  |  2 +-
 ForgeLink/forgelink/tests/functional/test_root.py  |  2 +-
 ForgeLink/forgelink/tests/test_app.py              |  2 +-
 .../forgesvn/tests/functional/test_controllers.py  |  2 +-
 ForgeSVN/forgesvn/tests/model/test_repository.py   |  2 +-
 .../forgesvn/tests/model/test_svnimplementation.py |  2 +-
 ForgeSVN/forgesvn/tests/test_svn_app.py            |  2 +-
 ForgeSVN/forgesvn/tests/test_tasks.py              |  2 +-
 .../forgeshorturl/tests/functional/test.py         |  2 +-
 .../tests/command/test_fix_discussion.py           |  2 +-
 .../forgetracker/tests/functional/test_rest.py     |  2 +-
 .../forgetracker/tests/functional/test_root.py     |  2 +-
 ForgeTracker/forgetracker/tests/test_app.py        |  2 +-
 .../forgetracker/tests/unit/test_globals_model.py  |  2 +-
 .../tests/unit/test_milestone_controller.py        |  2 +-
 .../tests/unit/test_root_controller.py             |  2 +-
 .../forgetracker/tests/unit/test_search.py         |  2 +-
 .../forgetracker/tests/unit/test_ticket_model.py   |  2 +-
 ForgeWiki/forgewiki/tests/functional/test_rest.py  |  2 +-
 ForgeWiki/forgewiki/tests/functional/test_root.py  |  2 +-
 ForgeWiki/forgewiki/tests/test_app.py              |  2 +-
 ForgeWiki/forgewiki/tests/test_wiki_roles.py       |  2 +-
 101 files changed, 193 insertions(+), 110 deletions(-)

diff --git a/Allura/allura/tests/decorators.py 
b/Allura/allura/tests/decorators.py
index 28f6bb6..6d4e5e4 100644
--- a/Allura/allura/tests/decorators.py
+++ b/Allura/allura/tests/decorators.py
@@ -23,7 +23,7 @@ from functools import wraps
 import contextlib
 from six.moves.urllib.parse import parse_qs
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from ming.orm.ormsession import ThreadLocalORMSession
 from tg import tmpl_context as c
 from mock import patch
diff --git a/Allura/allura/tests/functional/test_admin.py 
b/Allura/allura/tests/functional/test_admin.py
index 75abc0e..40a6b84 100644
--- a/Allura/allura/tests/functional/test_admin.py
+++ b/Allura/allura/tests/functional/test_admin.py
@@ -27,7 +27,7 @@ from io import open
 
 import tg
 import PIL
-from nose.tools import assert_equals, assert_in, assert_not_in, 
assert_is_not_none, assert_greater
+from alluratest.tools import assert_equals, assert_in, assert_not_in, 
assert_is_not_none, assert_greater
 from ming.orm.ormsession import ThreadLocalORMSession
 from tg import expose
 from tg import tmpl_context as c, app_globals as g
diff --git a/Allura/allura/tests/functional/test_auth.py 
b/Allura/allura/tests/functional/test_auth.py
index 2b07312..c581a96 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -31,7 +31,7 @@ from ming.orm.ormsession import ThreadLocalORMSession, session
 from tg import config, expose
 from mock import patch, Mock
 import mock
-from nose.tools import (
+from alluratest.tools import (
     assert_equal,
     assert_not_equal,
     assert_is_none,
diff --git a/Allura/allura/tests/functional/test_discuss.py 
b/Allura/allura/tests/functional/test_discuss.py
index 1169396..4369482 100644
--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 import os
 from mock import patch
-from nose.tools import assert_in, assert_not_in, assert_equal, assert_false, 
assert_true, assert_raises
+from alluratest.tools import assert_in, assert_not_in, assert_equal, 
assert_false, assert_true, assert_raises
 from webtest.app import AppError
 from ming.odm import session
 
diff --git a/Allura/allura/tests/functional/test_gravatar.py 
b/Allura/allura/tests/functional/test_gravatar.py
index 7120de1..3865bd9 100644
--- a/Allura/allura/tests/functional/test_gravatar.py
+++ b/Allura/allura/tests/functional/test_gravatar.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
 from six.moves.urllib.parse import urlparse, parse_qs
 
 import tg
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from mock import patch
 
 from allura.tests import TestController
diff --git a/Allura/allura/tests/functional/test_home.py 
b/Allura/allura/tests/functional/test_home.py
index f40d347..e957fb3 100644
--- a/Allura/allura/tests/functional/test_home.py
+++ b/Allura/allura/tests/functional/test_home.py
@@ -23,7 +23,7 @@ import os
 from io import open
 
 from tg import tmpl_context as c
-from nose.tools import assert_equal, assert_not_in, assert_in
+from alluratest.tools import assert_equal, assert_not_in, assert_in
 from ming.orm import ThreadLocalORMSession
 
 import allura
diff --git a/Allura/allura/tests/functional/test_neighborhood.py 
b/Allura/allura/tests/functional/test_neighborhood.py
index 128afba..4a16c26 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -29,7 +29,7 @@ from io import open
 import PIL
 from mock import patch
 from tg import config
-from nose.tools import assert_equal, assert_in, assert_not_equal
+from alluratest.tools import assert_equal, assert_in, assert_not_equal
 from ming.orm.ormsession import ThreadLocalORMSession, session
 from paste.httpexceptions import HTTPFound, HTTPMovedPermanently
 from tg import app_globals as g, tmpl_context as c
diff --git a/Allura/allura/tests/functional/test_personal_dashboard.py 
b/Allura/allura/tests/functional/test_personal_dashboard.py
index 7d59f6d..53cf3dd 100644
--- a/Allura/allura/tests/functional/test_personal_dashboard.py
+++ b/Allura/allura/tests/functional/test_personal_dashboard.py
@@ -22,7 +22,7 @@ import mock
 import tg
 
 from ming.orm import ThreadLocalORMSession, ThreadLocalODMSession
-from nose.tools import assert_equal, assert_in, assert_not_in
+from alluratest.tools import assert_equal, assert_in, assert_not_in
 from tg import tmpl_context as c
 
 from allura import model as M
diff --git a/Allura/allura/tests/functional/test_rest.py 
b/Allura/allura/tests/functional/test_rest.py
index f96c9ee..6a96f66 100644
--- a/Allura/allura/tests/functional/test_rest.py
+++ b/Allura/allura/tests/functional/test_rest.py
@@ -26,7 +26,7 @@ import tg
 from bson import ObjectId
 from tg import app_globals as g
 import mock
-from nose.tools import assert_equal, assert_in, assert_not_in
+from alluratest.tools import assert_equal, assert_in, assert_not_in
 from ming.odm import ThreadLocalODMSession
 from tg import config
 
diff --git a/Allura/allura/tests/functional/test_root.py 
b/Allura/allura/tests/functional/test_root.py
index a9cecb0..beb49de 100644
--- a/Allura/allura/tests/functional/test_root.py
+++ b/Allura/allura/tests/functional/test_root.py
@@ -36,7 +36,7 @@ import six
 from six.moves.urllib.parse import quote
 
 from tg import tmpl_context as c
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 from ming.orm.ormsession import ThreadLocalORMSession
 import mock
 from IPython.testing.decorators import module_not_available, skipif
diff --git a/Allura/allura/tests/functional/test_site_admin.py 
b/Allura/allura/tests/functional/test_site_admin.py
index f7b11ef..cec0a86 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -23,7 +23,7 @@ import datetime as dt
 import bson
 
 from mock import patch, MagicMock
-from nose.tools import assert_equal, assert_in, assert_not_in
+from alluratest.tools import assert_equal, assert_in, assert_not_in
 from ming.odm import ThreadLocalORMSession
 from tg import tmpl_context as c
 from tg import config
diff --git a/Allura/allura/tests/functional/test_trovecategory.py 
b/Allura/allura/tests/functional/test_trovecategory.py
index 1161044..2895a55 100644
--- a/Allura/allura/tests/functional/test_trovecategory.py
+++ b/Allura/allura/tests/functional/test_trovecategory.py
@@ -20,7 +20,7 @@ from bs4 import BeautifulSoup
 import mock
 
 from tg import config
-from nose.tools import assert_equals, assert_true, assert_in, assert_equal
+from alluratest.tools import assert_equals, assert_true, assert_in, 
assert_equal
 from ming.orm import session
 
 from allura import model as M
diff --git a/Allura/allura/tests/functional/test_user_profile.py 
b/Allura/allura/tests/functional/test_user_profile.py
index 30d81a5..43e4770 100644
--- a/Allura/allura/tests/functional/test_user_profile.py
+++ b/Allura/allura/tests/functional/test_user_profile.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 import mock
 import tg
-from nose.tools import assert_equal, assert_in, assert_not_in
+from alluratest.tools import assert_equal, assert_in, assert_not_in
 
 from alluratest.controller import TestRestApiBase
 from allura.model import Project, User
diff --git a/Allura/allura/tests/model/test_artifact.py 
b/Allura/allura/tests/model/test_artifact.py
index cec7804..64b4fdc 100644
--- a/Allura/allura/tests/model/test_artifact.py
+++ b/Allura/allura/tests/model/test_artifact.py
@@ -26,8 +26,7 @@ import re
 from datetime import datetime
 
 from tg import tmpl_context as c
-from nose.tools import assert_raises, assert_equal
-from nose import with_setup
+from alluratest.tools import with_setup, assert_raises, assert_equal
 from mock import patch
 from ming.orm.ormsession import ThreadLocalORMSession
 from ming.orm import Mapper
diff --git a/Allura/allura/tests/model/test_auth.py 
b/Allura/allura/tests/model/test_auth.py
index bf3fa0c..a9b9d35 100644
--- a/Allura/allura/tests/model/test_auth.py
+++ b/Allura/allura/tests/model/test_auth.py
@@ -26,7 +26,7 @@ from __future__ import absolute_import
 import textwrap
 from datetime import datetime, timedelta
 
-from nose.tools import (
+from alluratest.tools import (
     with_setup,
     assert_equal,
     assert_not_equal,
@@ -131,8 +131,8 @@ def test_email_address_send_verification_link():
     assert_equal(rcpts, ['[email protected]'])
 
 
[email protected]_user_project('test-admin')
 @with_setup(setUp)
[email protected]_user_project('test-admin')
 def test_user():
     assert c.user.url() .endswith('/u/test-admin/')
     assert c.user.script_name .endswith('/u/test-admin/')
@@ -278,8 +278,8 @@ def test_email_address_claimed_by_user():
     assert addr.claimed_by_user() is None
 
 
[email protected]_user_project('test-admin')
 @with_setup(setUp)
[email protected]_user_project('test-admin')
 def test_user_projects_by_role():
     assert_equal(set(p.shortname for p in c.user.my_projects()),
                  set(['test', 'test2', 'u/test-admin', 'adobe-1', '--init--']))
diff --git a/Allura/allura/tests/model/test_discussion.py 
b/Allura/allura/tests/model/test_discussion.py
index 972a6a6..ba594eb 100644
--- a/Allura/allura/tests/model/test_discussion.py
+++ b/Allura/allura/tests/model/test_discussion.py
@@ -28,10 +28,10 @@ from datetime import datetime, timedelta
 from cgi import FieldStorage
 
 from tg import tmpl_context as c
-from nose.tools import assert_equals, with_setup
+from alluratest.tools import assert_equals, with_setup
 import mock
 from mock import patch
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 
 from ming.orm import session, ThreadLocalORMSession
 from webob import exc
diff --git a/Allura/allura/tests/model/test_filesystem.py 
b/Allura/allura/tests/model/test_filesystem.py
index 95dac13..c4f3880 100644
--- a/Allura/allura/tests/model/test_filesystem.py
+++ b/Allura/allura/tests/model/test_filesystem.py
@@ -26,7 +26,7 @@ from io import BytesIO
 import ming
 from tg import tmpl_context as c
 from ming.orm import session, Mapper
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from mock import patch
 from webob import Request, Response
 
diff --git a/Allura/allura/tests/model/test_monq.py 
b/Allura/allura/tests/model/test_monq.py
index 6ce7600..d544b51 100644
--- a/Allura/allura/tests/model/test_monq.py
+++ b/Allura/allura/tests/model/test_monq.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 import pprint
-from nose.tools import with_setup
+from alluratest.tools import with_setup
 
 from ming.orm import ThreadLocalORMSession
 
diff --git a/Allura/allura/tests/model/test_neighborhood.py 
b/Allura/allura/tests/model/test_neighborhood.py
index bd5801b..8f4a741 100644
--- a/Allura/allura/tests/model/test_neighborhood.py
+++ b/Allura/allura/tests/model/test_neighborhood.py
@@ -22,7 +22,7 @@ Model tests for neighborhood
 """
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import with_setup
+from alluratest.tools import with_setup
 
 from allura import model as M
 from allura.tests import decorators as td
diff --git a/Allura/allura/tests/model/test_notification.py 
b/Allura/allura/tests/model/test_notification.py
index 89c1adb..e44603f 100644
--- a/Allura/allura/tests/model/test_notification.py
+++ b/Allura/allura/tests/model/test_notification.py
@@ -22,7 +22,7 @@ from datetime import timedelta
 import collections
 
 from tg import tmpl_context as c, app_globals as g
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 from ming.orm import ThreadLocalORMSession
 import mock
 import bson
diff --git a/Allura/allura/tests/model/test_oauth.py 
b/Allura/allura/tests/model/test_oauth.py
index 831f3b3..2912d2c 100644
--- a/Allura/allura/tests/model/test_oauth.py
+++ b/Allura/allura/tests/model/test_oauth.py
@@ -20,7 +20,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import with_setup, assert_equal, assert_not_equal
+from alluratest.tools import with_setup, assert_equal, assert_not_equal
 
 from ming.odm import ThreadLocalORMSession
 
diff --git a/Allura/allura/tests/model/test_project.py 
b/Allura/allura/tests/model/test_project.py
index 8c2db7c..68f7015 100644
--- a/Allura/allura/tests/model/test_project.py
+++ b/Allura/allura/tests/model/test_project.py
@@ -22,8 +22,7 @@ Model tests for project
 """
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose import with_setup
-from nose.tools import assert_equals, assert_in
+from alluratest.tools import with_setup, assert_equals, assert_in
 from tg import tmpl_context as c
 from ming.orm.ormsession import ThreadLocalORMSession
 from formencode import validators as fev
diff --git a/Allura/allura/tests/model/test_repo.py 
b/Allura/allura/tests/model/test_repo.py
index ed9f0e6..c56e38a 100644
--- a/Allura/allura/tests/model/test_repo.py
+++ b/Allura/allura/tests/model/test_repo.py
@@ -23,7 +23,7 @@ from collections import defaultdict, OrderedDict
 
 import unittest
 import mock
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import tmpl_context as c
 from bson import ObjectId
 from ming.orm import session
diff --git a/Allura/allura/tests/model/test_timeline.py 
b/Allura/allura/tests/model/test_timeline.py
index eb28fbb..2671d61 100644
--- a/Allura/allura/tests/model/test_timeline.py
+++ b/Allura/allura/tests/model/test_timeline.py
@@ -17,7 +17,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura import model as M
 from allura.tests import decorators as td
diff --git a/Allura/allura/tests/scripts/test_create_sitemap_files.py 
b/Allura/allura/tests/scripts/test_create_sitemap_files.py
index ce70610..43d00e4 100644
--- a/Allura/allura/tests/scripts/test_create_sitemap_files.py
+++ b/Allura/allura/tests/scripts/test_create_sitemap_files.py
@@ -22,7 +22,7 @@ from shutil import rmtree
 import xml.etree.ElementTree as ET
 
 from tg import tmpl_context as c
-from nose.tools import assert_in, assert_not_in
+from alluratest.tools import assert_in, assert_not_in
 from testfixtures import TempDirectory
 
 from alluratest.controller import setup_basic_test
diff --git a/Allura/allura/tests/scripts/test_delete_projects.py 
b/Allura/allura/tests/scripts/test_delete_projects.py
index b18cdfa..e6f7740 100644
--- a/Allura/allura/tests/scripts/test_delete_projects.py
+++ b/Allura/allura/tests/scripts/test_delete_projects.py
@@ -21,7 +21,7 @@ from __future__ import absolute_import
 from ming.odm import session, Mapper, ThreadLocalODMSession
 from mock import patch
 from tg import app_globals as g
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from alluratest.controller import TestController
 from allura.tests.decorators import audits, out_audits, with_user_project
diff --git a/Allura/allura/tests/scripts/test_misc_scripts.py 
b/Allura/allura/tests/scripts/test_misc_scripts.py
index 7075c8a..995c159 100644
--- a/Allura/allura/tests/scripts/test_misc_scripts.py
+++ b/Allura/allura/tests/scripts/test_misc_scripts.py
@@ -18,7 +18,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 
 from bson import ObjectId
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.scripts.clear_old_notifications import ClearOldNotifications
 from alluratest.controller import setup_basic_test
diff --git a/Allura/allura/tests/scripts/test_reindexes.py 
b/Allura/allura/tests/scripts/test_reindexes.py
index 3c8cd8a..4b0d9ff 100644
--- a/Allura/allura/tests/scripts/test_reindexes.py
+++ b/Allura/allura/tests/scripts/test_reindexes.py
@@ -16,7 +16,7 @@
 #       under the License.
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_in, assert_equal
+from alluratest.tools import assert_in, assert_equal
 from testfixtures import LogCapture
 
 from allura.scripts.reindex_projects import ReindexProjects
diff --git a/Allura/allura/tests/templates/jinja_master/test_lib.py 
b/Allura/allura/tests/templates/jinja_master/test_lib.py
index 67c0571..d525013 100644
--- a/Allura/allura/tests/templates/jinja_master/test_lib.py
+++ b/Allura/allura/tests/templates/jinja_master/test_lib.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 from tg import config, app_globals as g
 from mock import Mock
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 import ming
 from allura.config.app_cfg import ForgeConfig, AlluraJinjaRenderer
diff --git a/Allura/allura/tests/test_app.py b/Allura/allura/tests/test_app.py
index 72b1425..d1fd47b 100644
--- a/Allura/allura/tests/test_app.py
+++ b/Allura/allura/tests/test_app.py
@@ -22,7 +22,7 @@ from __future__ import absolute_import
 from tg import tmpl_context as c
 import mock
 from ming.base import Object
-from nose.tools import assert_equal, assert_raises
+from alluratest.tools import assert_equal, assert_raises
 from formencode import validators as fev
 
 from alluratest.controller import setup_unit_test
diff --git a/Allura/allura/tests/test_commands.py 
b/Allura/allura/tests/test_commands.py
index 815a432..ccac09c 100644
--- a/Allura/allura/tests/test_commands.py
+++ b/Allura/allura/tests/test_commands.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 
 import six
-from nose.tools import assert_raises, assert_in
+from alluratest.tools import assert_raises, assert_in
 from testfixtures import OutputCapture
 
 from datadiff.tools import assert_equal
diff --git a/Allura/allura/tests/test_decorators.py 
b/Allura/allura/tests/test_decorators.py
index 9eba4a2..80dbf14 100644
--- a/Allura/allura/tests/test_decorators.py
+++ b/Allura/allura/tests/test_decorators.py
@@ -22,7 +22,7 @@ from mock import patch
 import random
 import gc
 
-from nose.tools import assert_equal, assert_not_equal
+from alluratest.tools import assert_equal, assert_not_equal
 
 from allura.lib.decorators import task, memoize
 
diff --git a/Allura/allura/tests/test_globals.py 
b/Allura/allura/tests/test_globals.py
index 72e3745..71a7dc1 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -29,7 +29,7 @@ import six
 from mock import patch, Mock
 
 from bson import ObjectId
-from nose.tools import with_setup, assert_equal, assert_in, assert_not_in
+from alluratest.tools import with_setup, assert_equal, assert_in, assert_not_in
 from tg import tmpl_context as c, app_globals as g
 import tg
 from oembed import OEmbedError
diff --git a/Allura/allura/tests/test_helpers.py 
b/Allura/allura/tests/test_helpers.py
index 3b668c8..1a2935d 100644
--- a/Allura/allura/tests/test_helpers.py
+++ b/Allura/allura/tests/test_helpers.py
@@ -27,7 +27,7 @@ import time
 import PIL
 from mock import Mock, patch
 from tg import tmpl_context as c
-from nose.tools import eq_, assert_equals, assert_raises
+from alluratest.tools import assert_equals, assert_raises
 from IPython.testing.decorators import skipif, module_not_available
 from datadiff import tools as dd
 from webob import Request
diff --git a/Allura/allura/tests/test_mail_util.py 
b/Allura/allura/tests/test_mail_util.py
index 7391aec..c8568f4 100644
--- a/Allura/allura/tests/test_mail_util.py
+++ b/Allura/allura/tests/test_mail_util.py
@@ -24,7 +24,7 @@ from six.moves.email_mime_multipart import MIMEMultipart
 from six.moves.email_mime_text import MIMEText
 
 import mock
-from nose.tools import raises, assert_equal, assert_false, assert_true, 
assert_in
+from alluratest.tools import raises, assert_equal, assert_false, assert_true, 
assert_in
 from ming.orm import ThreadLocalORMSession
 from tg import config as tg_config
 
diff --git a/Allura/allura/tests/test_middlewares.py 
b/Allura/allura/tests/test_middlewares.py
index 32793eb..b78504b 100644
--- a/Allura/allura/tests/test_middlewares.py
+++ b/Allura/allura/tests/test_middlewares.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 from mock import MagicMock, patch
 from datadiff.tools import assert_equal
-from nose.tools import assert_not_equal
+from alluratest.tools import assert_not_equal
 from allura.lib.custom_middleware import CORSMiddleware
 
 
diff --git a/Allura/allura/tests/test_multifactor.py 
b/Allura/allura/tests/test_multifactor.py
index 3105a1f..2690d65 100644
--- a/Allura/allura/tests/test_multifactor.py
+++ b/Allura/allura/tests/test_multifactor.py
@@ -25,7 +25,7 @@ from paste.deploy.converters import asint
 import ming
 from cryptography.hazmat.primitives.twofactor import InvalidToken
 from mock import patch, Mock
-from nose.tools import assert_equal, assert_raises
+from alluratest.tools import assert_equal, assert_raises
 from tg import config
 
 from allura import model as M
diff --git a/Allura/allura/tests/test_patches.py 
b/Allura/allura/tests/test_patches.py
index 570850b..a7d7fcd 100644
--- a/Allura/allura/tests/test_patches.py
+++ b/Allura/allura/tests/test_patches.py
@@ -21,7 +21,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 import webob
 from mock import patch
-from nose.tools import (
+from alluratest.tools import (
     assert_equal,
     assert_raises,
 )
diff --git a/Allura/allura/tests/test_plugin.py 
b/Allura/allura/tests/test_plugin.py
index 07254a6..08a2a76 100644
--- a/Allura/allura/tests/test_plugin.py
+++ b/Allura/allura/tests/test_plugin.py
@@ -25,7 +25,7 @@ from tg import tmpl_context as c
 from webob import Request, exc
 from bson import ObjectId
 from ming.orm.ormsession import ThreadLocalORMSession
-from nose.tools import (
+from alluratest.tools import (
     assert_equals,
     assert_equal,
     assert_raises,
diff --git a/Allura/allura/tests/test_security.py 
b/Allura/allura/tests/test_security.py
index 28ab9ff..c4cc7e8 100644
--- a/Allura/allura/tests/test_security.py
+++ b/Allura/allura/tests/test_security.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from tg import tmpl_context as c
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from ming.odm import ThreadLocalODMSession
 from allura.tests import decorators as td
diff --git a/Allura/allura/tests/test_tasks.py 
b/Allura/allura/tests/test_tasks.py
index 7c73399..c2663b9 100644
--- a/Allura/allura/tests/test_tasks.py
+++ b/Allura/allura/tests/test_tasks.py
@@ -34,7 +34,7 @@ import mock
 from tg import tmpl_context as c, app_globals as g
 
 from datadiff.tools import assert_equal
-from nose.tools import assert_in, assert_less
+from alluratest.tools import assert_in, assert_less
 from ming.orm import FieldProperty, Mapper
 from ming.orm import ThreadLocalORMSession
 from testfixtures import LogCapture
diff --git a/Allura/allura/tests/test_utils.py 
b/Allura/allura/tests/test_utils.py
index c3b82c8..7d576b9 100644
--- a/Allura/allura/tests/test_utils.py
+++ b/Allura/allura/tests/test_utils.py
@@ -32,7 +32,7 @@ from ming.odm import session
 from bson import ObjectId
 from webob import Request
 from mock import Mock, patch
-from nose.tools import (
+from alluratest.tools import (
     assert_equal,
     assert_not_equal,
     assert_raises,
diff --git a/Allura/allura/tests/test_webhooks.py 
b/Allura/allura/tests/test_webhooks.py
index 887141c..46a1fa8 100644
--- a/Allura/allura/tests/test_webhooks.py
+++ b/Allura/allura/tests/test_webhooks.py
@@ -23,7 +23,7 @@ import hashlib
 import datetime as dt
 
 from mock import Mock, MagicMock, patch, call
-from nose.tools import (
+from alluratest.tools import (
     assert_raises,
     assert_equal,
     assert_not_in,
diff --git 
a/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py 
b/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py
index 9c4d8c9..940b3b3 100644
--- 
a/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py
+++ 
b/Allura/allura/tests/unit/controllers/test_discussion_moderation_controller.py
@@ -17,7 +17,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from mock import Mock, patch
 from ming.orm import ThreadLocalORMSession, session
 
diff --git a/Allura/allura/tests/unit/phone/test_nexmo.py 
b/Allura/allura/tests/unit/phone/test_nexmo.py
index f6999ad..34e39ed 100644
--- a/Allura/allura/tests/unit/phone/test_nexmo.py
+++ b/Allura/allura/tests/unit/phone/test_nexmo.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
 import json
 from mock import patch
 from datadiff.tools import assert_equal
-from nose.tools import assert_in, assert_not_in
+from alluratest.tools import assert_in, assert_not_in
 
 from allura.lib.phone.nexmo import NexmoPhoneService
 
diff --git a/Allura/allura/tests/unit/phone/test_phone_service.py 
b/Allura/allura/tests/unit/phone/test_phone_service.py
index 8f60220..29d2696 100644
--- a/Allura/allura/tests/unit/phone/test_phone_service.py
+++ b/Allura/allura/tests/unit/phone/test_phone_service.py
@@ -17,7 +17,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_true
+from alluratest.tools import assert_true
 from datadiff.tools import assert_equal
 
 from allura.lib.phone import PhoneService
diff --git a/Allura/allura/tests/unit/spam/test_spam_filter.py 
b/Allura/allura/tests/unit/spam/test_spam_filter.py
index ae1f9db..f35dc67 100644
--- a/Allura/allura/tests/unit/spam/test_spam_filter.py
+++ b/Allura/allura/tests/unit/spam/test_spam_filter.py
@@ -23,7 +23,7 @@ import mock
 import unittest
 
 from ming.odm import ThreadLocalORMSession
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.lib.spam import SpamFilter, ChainedSpamFilter
 from allura import model as M
diff --git a/Allura/allura/tests/unit/spam/test_stopforumspam.py 
b/Allura/allura/tests/unit/spam/test_stopforumspam.py
index bfa15c9..d14fe02 100644
--- a/Allura/allura/tests/unit/spam/test_stopforumspam.py
+++ b/Allura/allura/tests/unit/spam/test_stopforumspam.py
@@ -23,7 +23,7 @@ import tempfile
 import mock
 
 from bson import ObjectId
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.lib.spam.stopforumspamfilter import StopForumSpamSpamFilter
 
diff --git a/Allura/allura/tests/unit/test_app.py 
b/Allura/allura/tests/unit/test_app.py
index 8ff7df9..942b255 100644
--- a/Allura/allura/tests/unit/test_app.py
+++ b/Allura/allura/tests/unit/test_app.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 from unittest import TestCase
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.app import Application
 from allura import model
diff --git a/Allura/allura/tests/unit/test_discuss.py 
b/Allura/allura/tests/unit/test_discuss.py
index 8f227f0..e42f1c2 100644
--- a/Allura/allura/tests/unit/test_discuss.py
+++ b/Allura/allura/tests/unit/test_discuss.py
@@ -17,7 +17,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_false, assert_true
+from alluratest.tools import assert_false, assert_true
 
 from allura import model as M
 from allura.tests.unit import WithDatabase
diff --git a/Allura/allura/tests/unit/test_helpers/test_ago.py 
b/Allura/allura/tests/unit/test_helpers/test_ago.py
index d688bd2..14d7db3 100644
--- a/Allura/allura/tests/unit/test_helpers/test_ago.py
+++ b/Allura/allura/tests/unit/test_helpers/test_ago.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
 from datetime import datetime
 
 from mock import patch
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.lib import helpers
 
diff --git a/Allura/allura/tests/unit/test_helpers/test_set_context.py 
b/Allura/allura/tests/unit/test_helpers/test_set_context.py
index 8f381ac..a675159 100644
--- a/Allura/allura/tests/unit/test_helpers/test_set_context.py
+++ b/Allura/allura/tests/unit/test_helpers/test_set_context.py
@@ -17,7 +17,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_raises
+from alluratest.tools import assert_raises
 from tg import tmpl_context as c
 from bson import ObjectId
 
diff --git a/Allura/allura/tests/unit/test_ldap_auth_provider.py 
b/Allura/allura/tests/unit/test_ldap_auth_provider.py
index 76733ee..d3a37d5 100644
--- a/Allura/allura/tests/unit/test_ldap_auth_provider.py
+++ b/Allura/allura/tests/unit/test_ldap_auth_provider.py
@@ -25,8 +25,8 @@ from datetime import datetime, timedelta
 
 from bson import ObjectId
 from mock import patch, Mock
-from nose.tools import assert_equal, assert_not_equal, assert_true
-from nose import SkipTest
+from alluratest.tools import assert_equal, assert_not_equal, assert_true
+from unittest import SkipTest
 from webob import Request
 from ming.orm.ormsession import ThreadLocalORMSession
 from tg import config
diff --git a/Allura/allura/tests/unit/test_package_path_loader.py 
b/Allura/allura/tests/unit/test_package_path_loader.py
index 73c3321..d377968 100644
--- a/Allura/allura/tests/unit/test_package_path_loader.py
+++ b/Allura/allura/tests/unit/test_package_path_loader.py
@@ -22,7 +22,7 @@ from collections import OrderedDict
 from unittest import TestCase
 
 import jinja2
-from nose.tools import assert_equal, assert_raises
+from alluratest.tools import assert_equal, assert_raises
 import mock
 from tg import config
 
diff --git a/Allura/allura/tests/unit/test_repo.py 
b/Allura/allura/tests/unit/test_repo.py
index 61bae24..6a204d1 100644
--- a/Allura/allura/tests/unit/test_repo.py
+++ b/Allura/allura/tests/unit/test_repo.py
@@ -22,7 +22,7 @@ import unittest
 
 import six
 from mock import patch, Mock, MagicMock, call
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from datadiff import tools as dd
 
 from tg import tmpl_context as c
diff --git a/AlluraTest/alluratest/tools.py b/AlluraTest/alluratest/tools.py
new file mode 100644
index 0000000..dd3e4d2
--- /dev/null
+++ b/AlluraTest/alluratest/tools.py
@@ -0,0 +1,86 @@
+#       Licensed to the Apache Software Foundation (ASF) under one
+#       or more contributor license agreements.  See the NOTICE file
+#       distributed with this work for additional information
+#       regarding copyright ownership.  The ASF licenses this file
+#       to you under the Apache License, Version 2.0 (the
+#       "License"); you may not use this file except in compliance
+#       with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#       Unless required by applicable law or agreed to in writing,
+#       software distributed under the License is distributed on an
+#       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#       KIND, either express or implied.  See the License for the
+#       specific language governing permissions and limitations
+#       under the License.
+
+import unittest
+
+from decorator import decorator
+
+testcase = unittest.TestCase(methodName='__init__')  # py2 needs a methodName 
that is a valid attr :/
+
+def with_setup(setup, teardown=None):
+    # this might have subtle ordering differences from a true "setup" method, 
esp. if other decorators are involved
+    @decorator
+    def inner_with_setup(func, *a, **kw):
+        try:
+            setup()
+            return func(*a, **kw)
+        finally:
+            if teardown:
+                teardown()
+    return inner_with_setup
+
+def raises(ExcType):
+    @decorator
+    def inner_raises(func, *a, **kw):
+        with testcase.assertRaises(ExcType):
+            return func(*a, **kw)
+    return inner_raises
+
+def assert_equal(*a, **kw):
+    return testcase.assertEqual(*a, **kw)
+
+def assert_equals(*a, **kw):
+    return testcase.assertEquals(*a, **kw)
+
+def assert_not_equal(*a, **kw):
+    return testcase.assertNotEqual(*a, **kw)
+
+def assert_raises(*a, **kw):
+    return testcase.assertRaises(*a, **kw)
+
+def assert_is_none(*a, **kw):
+    return testcase.assertIsNone(*a, **kw)
+
+def assert_is_not_none(*a, **kw):
+    return testcase.assertIsNotNone(*a, **kw)
+
+def assert_is(*a, **kw):
+    return testcase.assertIs(*a, **kw)
+
+def assert_true(*a, **kw):
+    return testcase.assertTrue(*a, **kw)
+
+def assert_false(*a, **kw):
+    return testcase.assertFalse(*a, **kw)
+
+def assert_in(*a, **kw):
+    return testcase.assertIn(*a, **kw)
+
+def assert_not_in(*a, **kw):
+    return testcase.assertNotIn(*a, **kw)
+
+def assert_less(*a, **kw):
+    return testcase.assertLess(*a, **kw)
+
+def assert_greater(*a, **kw):
+    return testcase.assertGreater(*a, **kw)
+
+def assert_greater_equal(*a, **kw):
+    return testcase.assertGreaterEqual(*a, **kw)
+
+def assert_regexp_matches(*a, **kw):
+    return testcase.assertRegexpMatches(*a, **kw)
diff --git a/AlluraTest/alluratest/validation.py 
b/AlluraTest/alluratest/validation.py
index 61188df..30f9c46 100644
--- a/AlluraTest/alluratest/validation.py
+++ b/AlluraTest/alluratest/validation.py
@@ -38,7 +38,6 @@ import six
 
 import webtest
 from webtest import TestApp
-from nose.tools import ok_
 from ming.utils import LazyProperty
 import requests
 
@@ -88,7 +87,7 @@ class Config(object):
 
 def report_validation_error(val_name, filename, message):
     message = '%s Validation errors (%s):\n%s\n' % (val_name, filename, 
message)
-    ok_(False, message)
+    raise AssertionError(message)
 
 
 def dump_to_file(prefix, contents, suffix=''):
@@ -121,7 +120,7 @@ def validate_json(json_or_response):
     try:
         obj = json.loads(j)
     except Exception as e:
-        ok_(False, "Couldn't validate JSON: " + str(e) + ':' + j[:100] + '...')
+        raise AssertionError("Couldn't validate JSON: " + str(e) + ':' + 
j[:100] + '...')
 
     return obj
 
diff --git a/ForgeActivity/forgeactivity/tests/functional/test_root.py 
b/ForgeActivity/forgeactivity/tests/functional/test_root.py
index 1213ca7..9963972 100644
--- a/ForgeActivity/forgeactivity/tests/functional/test_root.py
+++ b/ForgeActivity/forgeactivity/tests/functional/test_root.py
@@ -24,7 +24,7 @@ from mock import patch
 from tg import config
 from bson import ObjectId
 import dateutil.parser
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import app_globals as g
 from activitystream.storage.mingstorage import Activity
 from ming.odm import ThreadLocalODMSession
diff --git a/ForgeBlog/forgeblog/tests/functional/test_feeds.py 
b/ForgeBlog/forgeblog/tests/functional/test_feeds.py
index f75ea4e..f14335e 100644
--- a/ForgeBlog/forgeblog/tests/functional/test_feeds.py
+++ b/ForgeBlog/forgeblog/tests/functional/test_feeds.py
@@ -21,7 +21,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 import datetime
 
-from nose.tools import assert_in, assert_not_in
+from alluratest.tools import assert_in, assert_not_in
 from ming.orm.ormsession import ThreadLocalORMSession
 from tg import tmpl_context as c
 
diff --git a/ForgeBlog/forgeblog/tests/functional/test_rest.py 
b/ForgeBlog/forgeblog/tests/functional/test_rest.py
index 8b685ae..7025464 100644
--- a/ForgeBlog/forgeblog/tests/functional/test_rest.py
+++ b/ForgeBlog/forgeblog/tests/functional/test_rest.py
@@ -21,7 +21,7 @@ from __future__ import absolute_import
 from datetime import date
 
 import tg
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 
 from allura.lib import helpers as h
 from allura.tests import decorators as td
diff --git a/ForgeBlog/forgeblog/tests/functional/test_root.py 
b/ForgeBlog/forgeblog/tests/functional/test_root.py
index d7e551b..c2b7e42 100644
--- a/ForgeBlog/forgeblog/tests/functional/test_root.py
+++ b/ForgeBlog/forgeblog/tests/functional/test_root.py
@@ -23,7 +23,7 @@ import datetime
 import json
 
 import tg
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 from mock import patch
 
 from allura.lib import helpers as h
diff --git a/ForgeBlog/forgeblog/tests/test_app.py 
b/ForgeBlog/forgeblog/tests/test_app.py
index c5b3405..38e2e60 100644
--- a/ForgeBlog/forgeblog/tests/test_app.py
+++ b/ForgeBlog/forgeblog/tests/test_app.py
@@ -23,7 +23,7 @@ import os
 from cgi import FieldStorage
 from io import BytesIO
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import tmpl_context as c
 from ming.orm import ThreadLocalORMSession
 
diff --git a/ForgeBlog/forgeblog/tests/unit/test_blog_post.py 
b/ForgeBlog/forgeblog/tests/unit/test_blog_post.py
index f4b7b58..8cb80a1 100644
--- a/ForgeBlog/forgeblog/tests/unit/test_blog_post.py
+++ b/ForgeBlog/forgeblog/tests/unit/test_blog_post.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from datetime import datetime
-from nose.tools import assert_equal, assert_true
+from alluratest.tools import assert_equal, assert_true
 from tg import tmpl_context as c
 
 from forgeblog import model as M
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py 
b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
index a1d2614..3788a7f 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
@@ -34,7 +34,7 @@ from ming.odm import ThreadLocalORMSession
 from tg import tmpl_context as c
 from tg import config
 
-from nose.tools import assert_equal, assert_in, assert_not_in, assert_true, 
assert_false, assert_raises
+from alluratest.tools import assert_equal, assert_in, assert_not_in, 
assert_true, assert_false, assert_raises
 import feedparser
 
 from allura import model as M
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_import.py 
b/ForgeDiscussion/forgediscussion/tests/functional/test_import.py
index c95cf35..7d745d8 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_import.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_import.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
 import os
 import json
 from datetime import datetime, timedelta
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 import ming
 from tg import config
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py 
b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
index f07c1a3..7f80291 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_rest.py
@@ -19,7 +19,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 
 from allura.lib import helpers as h
 from allura.tests import decorators as td
diff --git a/ForgeDiscussion/forgediscussion/tests/test_app.py 
b/ForgeDiscussion/forgediscussion/tests/test_app.py
index eee63a5..fe0c271 100644
--- a/ForgeDiscussion/forgediscussion/tests/test_app.py
+++ b/ForgeDiscussion/forgediscussion/tests/test_app.py
@@ -26,7 +26,7 @@ from operator import attrgetter
 from cgi import FieldStorage
 from io import BytesIO
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import tmpl_context as c
 
 from forgediscussion.site_stats import posts_24hr
diff --git a/ForgeFeedback/forgefeedback/tests/functional/test_root.py 
b/ForgeFeedback/forgefeedback/tests/functional/test_root.py
index cbd4477..e92f588 100644
--- a/ForgeFeedback/forgefeedback/tests/functional/test_root.py
+++ b/ForgeFeedback/forgefeedback/tests/functional/test_root.py
@@ -19,8 +19,8 @@ from __future__ import absolute_import
 from tg import tmpl_context as c
 from tg import config
 
-from nose.tools import assert_equal, assert_in, assert_not_in
-from nose.tools import assert_true, assert_false, assert_raises
+from alluratest.tools import assert_equal, assert_in, assert_not_in
+from alluratest.tools import assert_true, assert_false, assert_raises
 
 from allura import model as M
 from alluratest.controller import TestController
diff --git a/ForgeFeedback/forgefeedback/tests/test_feedback_roles.py 
b/ForgeFeedback/forgefeedback/tests/test_feedback_roles.py
index e7ebe07..27f0762 100644
--- a/ForgeFeedback/forgefeedback/tests/test_feedback_roles.py
+++ b/ForgeFeedback/forgefeedback/tests/test_feedback_roles.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 from tg import tmpl_context as c, app_globals as g
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from alluratest.controller import setup_basic_test, setup_global_objects
 from allura import model as M
diff --git a/ForgeFeedback/forgefeedback/tests/unit/test_feedback.py 
b/ForgeFeedback/forgefeedback/tests/unit/test_feedback.py
index 440e124..4ac8b27 100644
--- a/ForgeFeedback/forgefeedback/tests/unit/test_feedback.py
+++ b/ForgeFeedback/forgefeedback/tests/unit/test_feedback.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from datetime import datetime
-from nose.tools import assert_equal, assert_true
+from alluratest.tools import assert_equal, assert_true
 from tg import tmpl_context as c
 
 from forgefeedback.tests.unit import FeedbackTestWithModel
diff --git a/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py 
b/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py
index 9786960..c4b008c 100644
--- a/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py
+++ b/ForgeFeedback/forgefeedback/tests/unit/test_root_controller.py
@@ -23,7 +23,7 @@ from mock import Mock, patch
 from ming.orm.ormsession import session
 from tg import tmpl_context as c
 from tg import request
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.lib import helpers as h
 from allura.model import User
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py 
b/ForgeGit/forgegit/tests/functional/test_controllers.py
index d6b0285..d8680c2 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -28,9 +28,9 @@ import tempfile
 import textwrap
 
 from datadiff.tools import assert_equal as dd_assert_equal
-from nose.tools import assert_equal, assert_in, assert_not_in, assert_not_equal
+from alluratest.tools import assert_equal, assert_in, assert_not_in, 
assert_not_equal
 import pkg_resources
-from nose.tools import assert_regexp_matches
+from alluratest.tools import assert_regexp_matches
 from tg import tmpl_context as c
 import tg
 from ming.orm import ThreadLocalORMSession
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py 
b/ForgeGit/forgegit/tests/model/test_repository.py
index d69d26f..aecead7 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -33,7 +33,7 @@ from tg import tmpl_context as c, app_globals as g
 import tg
 from ming.base import Object
 from ming.orm import ThreadLocalORMSession, session
-from nose.tools import assert_equal, assert_in, assert_less
+from alluratest.tools import assert_equal, assert_in, assert_less
 from testfixtures import TempDirectory
 from datadiff.tools import assert_equals
 
diff --git a/ForgeGit/forgegit/tests/test_git_app.py 
b/ForgeGit/forgegit/tests/test_git_app.py
index f8e850f..bc72402 100644
--- a/ForgeGit/forgegit/tests/test_git_app.py
+++ b/ForgeGit/forgegit/tests/test_git_app.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 import unittest
-from nose.tools import assert_equals
+from alluratest.tools import assert_equals
 
 from tg import tmpl_context as c
 from ming.orm import ThreadLocalORMSession
diff --git a/ForgeImporters/forgeimporters/github/tests/test_utils.py 
b/ForgeImporters/forgeimporters/github/tests/test_utils.py
index 86d8763..b6a4f37 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_utils.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_utils.py
@@ -17,7 +17,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from forgeimporters.github.utils import GitHubMarkdownConverter
 
diff --git a/ForgeImporters/forgeimporters/github/tests/test_wiki.py 
b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
index d300907..578a875 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_wiki.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
@@ -20,7 +20,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from unittest import TestCase
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from mock import Mock, patch, call
 from ming.odm import ThreadLocalORMSession
 import git
diff --git 
a/ForgeImporters/forgeimporters/tests/github/functional/test_github.py 
b/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
index f6b7ad5..5cb7b8f 100644
--- a/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
+++ b/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
@@ -19,7 +19,7 @@ from __future__ import absolute_import
 import requests
 import tg
 from mock import patch, call, Mock
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from unittest import TestCase
 
 from allura.tests import TestController
diff --git a/ForgeImporters/forgeimporters/tests/test_base.py 
b/ForgeImporters/forgeimporters/tests/test_base.py
index 3601905..c426310 100644
--- a/ForgeImporters/forgeimporters/tests/test_base.py
+++ b/ForgeImporters/forgeimporters/tests/test_base.py
@@ -23,7 +23,7 @@ import errno
 from formencode import Invalid
 import mock
 from tg import expose, config
-from nose.tools import assert_equal, assert_raises
+from alluratest.tools import assert_equal, assert_raises
 from webob.exc import HTTPUnauthorized
 
 from alluratest.controller import TestController, setup_basic_test
diff --git a/ForgeImporters/forgeimporters/trac/tests/functional/test_trac.py 
b/ForgeImporters/forgeimporters/trac/tests/functional/test_trac.py
index fa34cec..e8ccbbb 100644
--- a/ForgeImporters/forgeimporters/trac/tests/functional/test_trac.py
+++ b/ForgeImporters/forgeimporters/trac/tests/functional/test_trac.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from mock import patch, Mock
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import config
 
 from allura.lib import helpers as h
diff --git a/ForgeLink/forgelink/tests/functional/test_rest.py 
b/ForgeLink/forgelink/tests/functional/test_rest.py
index c93f2c5..1b7ad50 100644
--- a/ForgeLink/forgelink/tests/functional/test_rest.py
+++ b/ForgeLink/forgelink/tests/functional/test_rest.py
@@ -19,7 +19,7 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from allura.tests import decorators as td
 from alluratest.controller import TestRestApiBase
 from allura import model as M
diff --git a/ForgeLink/forgelink/tests/functional/test_root.py 
b/ForgeLink/forgelink/tests/functional/test_root.py
index fe2f1c3..cef6820 100644
--- a/ForgeLink/forgelink/tests/functional/test_root.py
+++ b/ForgeLink/forgelink/tests/functional/test_root.py
@@ -20,7 +20,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 import json
 
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 
 from allura import model as M
 from allura.lib import helpers as h
diff --git a/ForgeLink/forgelink/tests/test_app.py 
b/ForgeLink/forgelink/tests/test_app.py
index 1055f81..75a3b08 100644
--- a/ForgeLink/forgelink/tests/test_app.py
+++ b/ForgeLink/forgelink/tests/test_app.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
 import tempfile
 import json
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import tmpl_context as c
 
 from allura.tests import decorators as td
diff --git a/ForgeSVN/forgesvn/tests/functional/test_controllers.py 
b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
index b142bfe..116542c 100644
--- a/ForgeSVN/forgesvn/tests/functional/test_controllers.py
+++ b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
@@ -30,7 +30,7 @@ import pkg_resources
 from tg import tmpl_context as c
 from ming.orm import ThreadLocalORMSession
 from mock import patch
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 from IPython.testing.decorators import onlyif
 
 from allura import model as M
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py 
b/ForgeSVN/forgesvn/tests/model/test_repository.py
index 14e6602..6781b9f 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -31,7 +31,7 @@ from collections import defaultdict
 
 from tg import tmpl_context as c, app_globals as g
 import mock
-from nose.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, assert_in
 from datadiff.tools import assert_equals
 import tg
 import ming
diff --git a/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py 
b/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
index ed599f2..5ea682e 100644
--- a/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
+++ b/ForgeSVN/forgesvn/tests/model/test_svnimplementation.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from mock import Mock, patch
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import app_globals as g
 
 from alluratest.controller import setup_unit_test
diff --git a/ForgeSVN/forgesvn/tests/test_svn_app.py 
b/ForgeSVN/forgesvn/tests/test_svn_app.py
index 49d945b..e6d223b 100644
--- a/ForgeSVN/forgesvn/tests/test_svn_app.py
+++ b/ForgeSVN/forgesvn/tests/test_svn_app.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 import unittest
-from nose.tools import assert_equals
+from alluratest.tools import assert_equals
 
 from tg import tmpl_context as c
 from ming.orm import ThreadLocalORMSession
diff --git a/ForgeSVN/forgesvn/tests/test_tasks.py 
b/ForgeSVN/forgesvn/tests/test_tasks.py
index 925f706..e1e630d 100644
--- a/ForgeSVN/forgesvn/tests/test_tasks.py
+++ b/ForgeSVN/forgesvn/tests/test_tasks.py
@@ -27,7 +27,7 @@ import tg
 import mock
 from tg import tmpl_context as c
 from paste.deploy.converters import asbool
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from alluratest.controller import setup_basic_test
 
diff --git a/ForgeShortUrl/forgeshorturl/tests/functional/test.py 
b/ForgeShortUrl/forgeshorturl/tests/functional/test.py
index 18c0549..718fabb 100644
--- a/ForgeShortUrl/forgeshorturl/tests/functional/test.py
+++ b/ForgeShortUrl/forgeshorturl/tests/functional/test.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 from tg import tmpl_context as c
 from tg import config
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 import mock
 
 from allura.lib import helpers as h
diff --git a/ForgeTracker/forgetracker/tests/command/test_fix_discussion.py 
b/ForgeTracker/forgetracker/tests/command/test_fix_discussion.py
index 2831835..93add49 100644
--- a/ForgeTracker/forgetracker/tests/command/test_fix_discussion.py
+++ b/ForgeTracker/forgetracker/tests/command/test_fix_discussion.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from ming.orm import session
-from nose.tools import assert_equal, assert_not_equal
+from alluratest.tools import assert_equal, assert_not_equal
 import pkg_resources
 
 from alluratest.controller import setup_basic_test, setup_global_objects
diff --git a/ForgeTracker/forgetracker/tests/functional/test_rest.py 
b/ForgeTracker/forgetracker/tests/functional/test_rest.py
index 581e45a..bc1e0e3 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_rest.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_rest.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
 from tg import tmpl_context as c
 
 from datadiff.tools import assert_equal
-from nose.tools import assert_not_equal
+from alluratest.tools import assert_not_equal
 from mock import patch
 from tg import config
 
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py 
b/ForgeTracker/forgetracker/tests/functional/test_root.py
index e6155b1..d403d59 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -33,7 +33,7 @@ from io import open
 import PIL
 from bs4 import BeautifulSoup
 from mock import patch
-from nose.tools import (
+from alluratest.tools import (
     assert_true,
     assert_false,
     assert_equal,
diff --git a/ForgeTracker/forgetracker/tests/test_app.py 
b/ForgeTracker/forgetracker/tests/test_app.py
index 72c64cd..e2c2b91 100644
--- a/ForgeTracker/forgetracker/tests/test_app.py
+++ b/ForgeTracker/forgetracker/tests/test_app.py
@@ -23,7 +23,7 @@ import operator
 import os
 from io import BytesIO
 
-from nose.tools import assert_equal, assert_true
+from alluratest.tools import assert_equal, assert_true
 from tg import tmpl_context as c
 from cgi import FieldStorage
 
diff --git a/ForgeTracker/forgetracker/tests/unit/test_globals_model.py 
b/ForgeTracker/forgetracker/tests/unit/test_globals_model.py
index b047539..82ec88b 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_globals_model.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_globals_model.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
 from datetime import datetime, timedelta
 
 import mock
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import tmpl_context as c
 from ming.orm.ormsession import ThreadLocalORMSession
 
diff --git a/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py 
b/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py
index 7795434..f0b09bf 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_milestone_controller.py
@@ -21,7 +21,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 from mock import Mock
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.lib import helpers as h
 from tg import tmpl_context as c
diff --git a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py 
b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
index 5020a21..2a5031b 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_root_controller.py
@@ -22,7 +22,7 @@ import unittest
 from mock import Mock, patch
 from ming.orm.ormsession import session
 from tg import tmpl_context as c
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from allura.lib import helpers as h
 from allura.model import User
diff --git a/ForgeTracker/forgetracker/tests/unit/test_search.py 
b/ForgeTracker/forgetracker/tests/unit/test_search.py
index 2a9f308..ce28681 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_search.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_search.py
@@ -18,7 +18,7 @@
 from __future__ import unicode_literals
 from __future__ import absolute_import
 import mock
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from forgetracker.search import get_facets, query_filter_choices
 
 
diff --git a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py 
b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
index 62232b5..112f694 100644
--- a/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
+++ b/ForgeTracker/forgetracker/tests/unit/test_ticket_model.py
@@ -27,7 +27,7 @@ import mock
 from ming.orm.ormsession import ThreadLocalORMSession
 from ming.orm import session
 from ming import schema
-from nose.tools import (
+from alluratest.tools import (
     raises,
     assert_equal,
     assert_in,
diff --git a/ForgeWiki/forgewiki/tests/functional/test_rest.py 
b/ForgeWiki/forgewiki/tests/functional/test_rest.py
index a41f3f7..2edcd2a 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_rest.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_rest.py
@@ -22,7 +22,7 @@ from __future__ import absolute_import
 import json
 from io import open
 
-from nose.tools import assert_equal, assert_in, assert_not_equal
+from alluratest.tools import assert_equal, assert_in, assert_not_equal
 import tg
 
 from allura.lib import helpers as h
diff --git a/ForgeWiki/forgewiki/tests/functional/test_root.py 
b/ForgeWiki/forgewiki/tests/functional/test_root.py
index 4d8fbdd..4c4f284 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_root.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_root.py
@@ -27,7 +27,7 @@ import json
 from io import open
 
 import PIL
-from nose.tools import assert_true, assert_equal, assert_in, assert_not_equal, 
assert_not_in
+from alluratest.tools import assert_true, assert_equal, assert_in, 
assert_not_equal, assert_not_in
 from ming.orm.ormsession import ThreadLocalORMSession
 from mock import patch
 from tg import config
diff --git a/ForgeWiki/forgewiki/tests/test_app.py 
b/ForgeWiki/forgewiki/tests/test_app.py
index 66b11b9..65e472c 100644
--- a/ForgeWiki/forgewiki/tests/test_app.py
+++ b/ForgeWiki/forgewiki/tests/test_app.py
@@ -24,7 +24,7 @@ import operator
 import os
 from io import BytesIO
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 from tg import tmpl_context as c
 from ming.orm import ThreadLocalORMSession
 
diff --git a/ForgeWiki/forgewiki/tests/test_wiki_roles.py 
b/ForgeWiki/forgewiki/tests/test_wiki_roles.py
index 856dd2b..d7bd426 100644
--- a/ForgeWiki/forgewiki/tests/test_wiki_roles.py
+++ b/ForgeWiki/forgewiki/tests/test_wiki_roles.py
@@ -19,7 +19,7 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 from tg import tmpl_context as c, app_globals as g
 
-from nose.tools import assert_equal
+from alluratest.tools import assert_equal
 
 from alluratest.controller import setup_basic_test, setup_global_objects
 from allura import model as M

Reply via email to