logins are now somewhat tested

This commit is contained in:
Chris Moylan 2011-06-17 00:15:24 -05:00
parent 8af8e3c1a9
commit 757690cc2e

View File

@ -209,8 +209,6 @@ def test_register_views(test_app):
assert new_user['status'] == u'active' assert new_user['status'] == u'active'
assert new_user['email_verified'] == True assert new_user['email_verified'] == True
## TODO: Try logging in
# Uniqueness checks # Uniqueness checks
# ----------------- # -----------------
## We shouldn't be able to register with that user twice ## We shouldn't be able to register with that user twice
@ -229,3 +227,43 @@ def test_register_views(test_app):
u'Sorry, a user with that name already exists.'] u'Sorry, a user with that name already exists.']
## TODO: Also check for double instances of an email address? ## TODO: Also check for double instances of an email address?
@setup_fresh_app
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()
# Get login
test_app.get('/auth/login/')
# Make sure it rendered with the appropriate template
assert util.TEMPLATE_TEST_CONTEXT.has_key(
'mediagoblin/auth/login.html')
# Log in as that user
util.clear_test_template_context()
response = test_app.post(
'/auth/login/', {
'username': u'chris',
'password': 'toast'})
response.follow()
assert_equal(
urlparse.urlsplit(response.location)[2],
'/')
assert util.TEMPLATE_TEST_CONTEXT.has_key(
'mediagoblin/root.html')
# Make sure we're in the session or something
session = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']['request'].session
assert session['user_id'] == unicode(test_user['_id'])
# Log out as that user
# Make sure we're not in the session