Merge branch 'misc/fixture_add_user'

* misc/fixture_add_user:
  fixture_add_user: Factoring a unit test tool
This commit is contained in:
Elrond 2011-12-04 14:59:33 +01:00
commit ea5a5b15a3
4 changed files with 26 additions and 32 deletions

View File

@ -20,7 +20,7 @@ import datetime
from nose.tools import assert_equal
from mediagoblin.auth import lib as auth_lib
from mediagoblin.tests.tools import setup_fresh_app
from mediagoblin.tests.tools import setup_fresh_app, fixture_add_user
from mediagoblin import mg_globals
from mediagoblin.tools import template, mail
@ -332,11 +332,7 @@ def test_authentication_views(test_app):
Test logging in and logging out
"""
# Make a new user
test_user = mg_globals.database.User()
test_user['username'] = u'chris'
test_user['email'] = u'chris@example.com'
test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast')
test_user.save()
test_user = fixture_add_user(active_user=False)
# Get login
# ---------

View File

@ -15,23 +15,16 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin import mg_globals
from mediagoblin.tests.tools import setup_fresh_app
from mediagoblin.tests.tools import setup_fresh_app, fixture_add_user
from mediagoblin.tools import template
from mediagoblin.auth.lib import bcrypt_check_password, \
bcrypt_gen_password_hash
from mediagoblin.auth.lib import bcrypt_check_password
@setup_fresh_app
def test_change_password(test_app):
"""Test changing password correctly and incorrectly"""
# set up new user
test_user = mg_globals.database.User()
test_user['username'] = u'chris'
test_user['email'] = u'chris@example.com'
test_user['email_verified'] = True
test_user['status'] = u'active'
test_user['pw_hash'] = bcrypt_gen_password_hash('toast')
test_user.save()
test_user = fixture_add_user()
test_app.post(
'/auth/login/', {
@ -73,13 +66,7 @@ def test_change_password(test_app):
def change_bio_url(test_app):
"""Test changing bio and URL"""
# set up new user
test_user = mg_globals.database.User()
test_user['username'] = u'chris'
test_user['email'] = u'chris@example.com'
test_user['email_verified'] = True
test_user['status'] = u'active'
test_user['pw_hash'] = bcrypt_gen_password_hash('toast')
test_user.save()
test_user = fixture_add_user()
# test changing the bio and the URL properly
test_app.post(

View File

@ -19,8 +19,8 @@ import pkg_resources
from nose.tools import assert_equal, assert_true, assert_false
from mediagoblin.auth import lib as auth_lib
from mediagoblin.tests.tools import setup_fresh_app, get_test_app
from mediagoblin.tests.tools import setup_fresh_app, get_test_app, \
fixture_add_user
from mediagoblin import mg_globals
from mediagoblin.tools import template, common
@ -45,13 +45,7 @@ class TestSubmission:
# TODO: Possibly abstract into a decorator like:
# @as_authenticated_user('chris')
test_user = mg_globals.database.User()
test_user['username'] = u'chris'
test_user['email'] = u'chris@example.com'
test_user['email_verified'] = True
test_user['status'] = u'active'
test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast')
test_user.save()
test_user = fixture_add_user()
self.test_user = test_user

View File

@ -27,6 +27,7 @@ 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__'
@ -200,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