Merge remote-tracking branch 'refs/remotes/rodney757/auth_refactor'
Conflicts: mediagoblin/auth/views.py mediagoblin/edit/forms.py mediagoblin/templates/mediagoblin/edit/edit_account.html
This commit is contained in:
@@ -3,8 +3,8 @@ direct_remote_path = /test_static/
|
||||
email_sender_address = "notice@mediagoblin.example.org"
|
||||
email_debug_mode = true
|
||||
|
||||
# TODO: Switch to using an in-memory database
|
||||
sql_engine = "sqlite:///%(here)s/user_dev/mediagoblin.db"
|
||||
sql_engine = "sqlite://"
|
||||
run_migrations = true
|
||||
|
||||
# Celery shouldn't be set up by the application as it's setup via
|
||||
# mediagoblin.init.celery.from_celery
|
||||
|
||||
@@ -18,8 +18,8 @@ direct_remote_path = /test_static/
|
||||
email_sender_address = "notice@mediagoblin.example.org"
|
||||
email_debug_mode = true
|
||||
|
||||
# TODO: Switch to using an in-memory database
|
||||
sql_engine = "sqlite:///%(here)s/user_dev/mediagoblin.db"
|
||||
sql_engine = "sqlite://"
|
||||
run_migrations = true
|
||||
|
||||
# Celery shouldn't be set up by the application as it's setup via
|
||||
# mediagoblin.init.celery.from_celery
|
||||
|
||||
@@ -183,7 +183,7 @@ def test_register_views(test_app):
|
||||
message = mail.EMAIL_TEST_INBOX.pop()
|
||||
assert message['To'] == 'happygrrl@example.org'
|
||||
email_context = template.TEMPLATE_TEST_CONTEXT[
|
||||
'mediagoblin/auth/fp_verification_email.txt']
|
||||
'mediagoblin/plugins/basic_auth/fp_verification_email.txt']
|
||||
#TODO - change the name of verification_url to something forgot-password-ish
|
||||
assert email_context['verification_url'] in message.get_payload(decode=True)
|
||||
|
||||
@@ -204,7 +204,8 @@ def test_register_views(test_app):
|
||||
## Verify step 1 of password-change works -- can see form to change password
|
||||
template.clear_test_template_context()
|
||||
response = test_app.get("%s?%s" % (path, get_params))
|
||||
assert 'mediagoblin/auth/change_fp.html' in template.TEMPLATE_TEST_CONTEXT
|
||||
assert 'mediagoblin/plugins/basic_auth/change_fp.html' in \
|
||||
template.TEMPLATE_TEST_CONTEXT
|
||||
|
||||
## Verify step 2.1 of password-change works -- report success to user
|
||||
template.clear_test_template_context()
|
||||
|
||||
@@ -13,7 +13,12 @@
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
import urlparse
|
||||
|
||||
from mediagoblin.db.models import User
|
||||
from mediagoblin.plugins.basic_auth import tools as auth_tools
|
||||
from mediagoblin.tests.tools import fixture_add_user
|
||||
from mediagoblin.tools import template
|
||||
from mediagoblin.tools.testing import _activate_testing
|
||||
|
||||
_activate_testing()
|
||||
@@ -57,3 +62,40 @@ def test_bcrypt_gen_password_hash():
|
||||
pw, hashed_pw, '3><7R45417')
|
||||
assert not auth_tools.bcrypt_check_password(
|
||||
'notthepassword', hashed_pw, '3><7R45417')
|
||||
|
||||
|
||||
def test_change_password(test_app):
|
||||
"""Test changing password correctly and incorrectly"""
|
||||
test_user = fixture_add_user(password=u'toast')
|
||||
|
||||
test_app.post(
|
||||
'/auth/login/', {
|
||||
'username': u'chris',
|
||||
'password': u'toast'})
|
||||
|
||||
# test that the password can be changed
|
||||
res = test_app.post(
|
||||
'/edit/password/', {
|
||||
'old_password': 'toast',
|
||||
'new_password': '123456',
|
||||
})
|
||||
res.follow()
|
||||
|
||||
# Did we redirect to the correct page?
|
||||
assert urlparse.urlsplit(res.location)[2] == '/edit/account/'
|
||||
|
||||
# test_user has to be fetched again in order to have the current values
|
||||
test_user = User.query.filter_by(username=u'chris').first()
|
||||
assert auth_tools.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/password/', {
|
||||
'old_password': 'toast',
|
||||
'new_password': '098765',
|
||||
})
|
||||
|
||||
test_user = User.query.filter_by(username=u'chris').first()
|
||||
assert not auth_tools.bcrypt_check_password('098765', test_user.pw_hash)
|
||||
|
||||
@@ -56,41 +56,6 @@ class TestUserEdit(object):
|
||||
self.login(test_app)
|
||||
|
||||
|
||||
def test_change_password(self, test_app):
|
||||
"""Test changing password correctly and incorrectly"""
|
||||
self.login(test_app)
|
||||
|
||||
# test that the password can be changed
|
||||
template.clear_test_template_context()
|
||||
res = test_app.post(
|
||||
'/edit/password/', {
|
||||
'old_password': 'toast',
|
||||
'new_password': '123456',
|
||||
})
|
||||
res.follow()
|
||||
|
||||
# Did we redirect to the correct page?
|
||||
assert urlparse.urlsplit(res.location)[2] == '/edit/account/'
|
||||
|
||||
# test_user has to be fetched again in order to have the current values
|
||||
test_user = User.query.filter_by(username=u'chris').first()
|
||||
assert auth.check_password('123456', test_user.pw_hash)
|
||||
# Update current user passwd
|
||||
self.user_password = '123456'
|
||||
|
||||
# test that the password cannot be changed if the given
|
||||
# old_password is wrong
|
||||
template.clear_test_template_context()
|
||||
test_app.post(
|
||||
'/edit/password/', {
|
||||
'old_password': 'toast',
|
||||
'new_password': '098765',
|
||||
})
|
||||
|
||||
test_user = User.query.filter_by(username=u'chris').first()
|
||||
assert not auth.check_password('098765', test_user.pw_hash)
|
||||
|
||||
|
||||
def test_change_bio_url(self, test_app):
|
||||
"""Test changing bio and URL"""
|
||||
self.login(test_app)
|
||||
|
||||
@@ -29,6 +29,7 @@ from mediagoblin.plugins.openid.models import OpenIDUserURL
|
||||
from mediagoblin.tests.tools import get_app, fixture_add_user
|
||||
from mediagoblin.tools import template
|
||||
|
||||
|
||||
# App with plugin enabled
|
||||
@pytest.fixture()
|
||||
def openid_plugin_app(request):
|
||||
|
||||
Reference in New Issue
Block a user