aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/tests/tools.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/tests/tools.py')
-rw-r--r--mediagoblin/tests/tools.py34
1 files changed, 23 insertions, 11 deletions
diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py
index 420d9ba8..49a3d33e 100644
--- a/mediagoblin/tests/tools.py
+++ b/mediagoblin/tests/tools.py
@@ -26,6 +26,8 @@ from mediagoblin.tools import testing
from mediagoblin.init.config import read_mediagoblin_config
from mediagoblin.decorators import _make_safe
from mediagoblin.db.open import setup_connection_and_db_from_config
+from mediagoblin.meddleware import BaseMeddleware
+from mediagoblin.auth.lib import bcrypt_gen_password_hash
MEDIAGOBLIN_TEST_DB_NAME = u'__mediagoblin_tests__'
@@ -50,9 +52,9 @@ $ CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests ./bin/nosetests"""
class BadCeleryEnviron(Exception): pass
-class TestingMiddleware(object):
+class TestingMeddleware(BaseMeddleware):
"""
- Middleware for the Unit tests
+ Meddleware for the Unit tests
It might make sense to perform some tests on all
requests/responses. Or prepare them in a special
@@ -60,7 +62,7 @@ class TestingMiddleware(object):
for being valid html *after* being rendered.
This module is getting inserted at the front of the
- middleware list, which means: requests are handed here
+ meddleware list, which means: requests are handed here
first, responses last. So this wraps up the "normal"
app.
@@ -69,12 +71,6 @@ class TestingMiddleware(object):
create a new method and call it from process_*.
"""
- def __init__(self, mg_app):
- self.app = mg_app
-
- def process_request(self, request):
- pass
-
def process_response(self, request, response):
# All following tests should be for html only!
if response.content_type != "text/html":
@@ -149,11 +145,11 @@ def get_test_app(dump_old_app=True):
test_app = loadapp(
'config:' + TEST_SERVER_CONFIG)
- # Insert the TestingMiddleware, which can do some
+ # Insert the TestingMeddleware, which can do some
# sanity checks on every request/response.
# Doing it this way is probably not the cleanest way.
# We'll fix it, when we have plugins!
- mg_globals.app.middleware.insert(0, TestingMiddleware(mg_globals.app))
+ mg_globals.app.meddleware.insert(0, TestingMeddleware(mg_globals.app))
app = TestApp(test_app)
MGOBLIN_APP = app
@@ -205,3 +201,19 @@ def assert_db_meets_expected(db, expected):
document = collection.find_one({'_id': expected_document['_id']})
assert document is not None # make sure it exists
assert document == expected_document # make sure it matches
+
+
+def fixture_add_user(username = u'chris', password = 'toast',
+ active_user = True):
+ test_user = mg_globals.database.User()
+ test_user.username = username
+ test_user.email = username + u'@example.com'
+ if password is not None:
+ test_user.pw_hash = bcrypt_gen_password_hash(password)
+ if active_user:
+ test_user.email_verified = True
+ test_user.status = u'active'
+
+ test_user.save()
+
+ return test_user