# GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
+# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
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__'
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
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.
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":
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
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