# 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
# 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/', {
# test that the password can be changed
# template.clear_test_template_context()
test_app.post(
- '/edit/profile/', {
- 'bio': u'',
- 'url': u'',
+ '/edit/account/', {
'old_password': 'toast',
'new_password': '123456',
- 'confirm_password': '123456'})
+ 'wants_comment_notification': 'y'
+ })
# test_user has to be fetched again in order to have the current values
- test_user = mg_globals.database.User.one({'username': 'chris'})
+ test_user = mg_globals.database.User.one({'username': u'chris'})
- assert bcrypt_check_password('123456', test_user['pw_hash'])
+ assert bcrypt_check_password('123456', test_user.pw_hash)
# test that the password cannot be changed if the given old_password
# is wrong
# template.clear_test_template_context()
test_app.post(
- '/edit/profile/', {
- 'bio': u'',
- 'url': u'',
+ '/edit/account/', {
'old_password': 'toast',
'new_password': '098765',
- 'confirm_password': '098765'})
+ })
- test_user = mg_globals.database.User.one({'username': 'chris'})
+ test_user = mg_globals.database.User.one({'username': u'chris'})
- assert not bcrypt_check_password('098765', test_user['pw_hash'])
+ assert not bcrypt_check_password('098765', test_user.pw_hash)
@setup_fresh_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(
'bio': u'I love toast!',
'url': u'http://dustycloud.org/'})
- test_user = mg_globals.database.User.one({'username': 'chris'})
+ test_user = mg_globals.database.User.one({'username': u'chris'})
- assert test_user['bio'] == u'I love toast!'
- assert test_user['url'] == u'http://dustycloud.org/'
+ assert test_user.bio == u'I love toast!'
+ assert test_user.url == u'http://dustycloud.org/'
# test changing the bio and the URL inproperly
too_long_bio = 150 * 'T' + 150 * 'o' + 150 * 'a' + 150 * 's' + 150* 't'
'bio': too_long_bio,
'url': 'this-is-no-url'})
- test_user = mg_globals.database.User.one({'username': 'chris'})
+ test_user = mg_globals.database.User.one({'username': u'chris'})
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/edit/edit_profile.html']
form = context['edit_profile_form']