Switch test_app generation over to use py.test fixtures.
[mediagoblin.git] / mediagoblin / tests / test_auth.py
index a40c9cbc55f4a87bfd134ebb2e95bdde111acfdf..f9fe8ed1685adb74bd717f066b42326d3a66686c 100644 (file)
@@ -22,7 +22,7 @@ from nose.tools import assert_equal
 from mediagoblin import mg_globals
 from mediagoblin.auth import lib as auth_lib
 from mediagoblin.db.models import User
-from mediagoblin.tests.tools import get_test_app, fixture_add_user
+from mediagoblin.tests.tools import fixture_add_user
 from mediagoblin.tools import template, mail
 
 
@@ -40,7 +40,6 @@ def test_bcrypt_check_password():
         'notthepassword',
         '$2a$12$PXU03zfrVCujBhVeICTwtOaHTUs5FFwsscvSSTJkqx/2RQ0Lhy/nO')
 
-
     # Same thing, but with extra fake salt.
     assert not auth_lib.bcrypt_check_password(
         'notthepassword',
@@ -58,7 +57,6 @@ def test_bcrypt_gen_password_hash():
     assert not auth_lib.bcrypt_check_password(
         'notthepassword', hashed_pw)
 
-
     # Same thing, extra salt.
     hashed_pw = auth_lib.bcrypt_gen_password_hash(pw, '3><7R45417')
     assert auth_lib.bcrypt_check_password(
@@ -67,18 +65,16 @@ def test_bcrypt_gen_password_hash():
         'notthepassword', hashed_pw, '3><7R45417')
 
 
-def test_register_views():
+def test_register_views(test_app):
     """
     Massive test function that all our registration-related views all work.
     """
-    test_app = get_test_app(dump_old_app=False)
     # Test doing a simple GET on the page
     # -----------------------------------
 
     test_app.get('/auth/register/')
     # Make sure it rendered with the appropriate template
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/auth/register.html')
+    assert 'mediagoblin/auth/register.html' in template.TEMPLATE_TEST_CONTEXT
 
     # Try to register without providing anything, should error
     # --------------------------------------------------------
@@ -105,10 +101,8 @@ def test_register_views():
     context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
     form = context['register_form']
 
-    assert form.username.errors == [
-        u'Field must be between 3 and 30 characters long.']
-    assert form.password.errors == [
-        u'Field must be between 6 and 30 characters long.']
+    assert_equal (form.username.errors, [u'Field must be between 3 and 30 characters long.'])
+    assert_equal (form.password.errors, [u'Field must be between 5 and 1024 characters long.'])
 
     ## bad form
     template.clear_test_template_context()
@@ -119,13 +113,11 @@ def test_register_views():
     context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html']
     form = context['register_form']
 
-    assert form.username.errors == [
-        u'Invalid input.']
-    assert form.email.errors == [
-        u'Invalid email address.']
+    assert_equal (form.username.errors, [u'This field does not take email addresses.'])
+    assert_equal (form.email.errors, [u'This field requires an email address.'])
 
     ## At this point there should be no users in the database ;)
-    assert not User.query.count()
+    assert_equal(User.query.count(), 0)
 
     # Successful register
     # -------------------
@@ -141,8 +133,7 @@ def test_register_views():
     assert_equal(
         urlparse.urlsplit(response.location)[2],
         '/u/happygirl/')
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/user_pages/user.html')
+    assert 'mediagoblin/user_pages/user.html' in template.TEMPLATE_TEST_CONTEXT
 
     ## Make sure user is in place
     new_user = mg_globals.database.User.find_one(
@@ -235,8 +226,7 @@ def test_register_views():
     assert_equal(
         urlparse.urlsplit(response.location)[2],
         '/auth/login/')
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/auth/login.html')
+    assert 'mediagoblin/auth/login.html' in template.TEMPLATE_TEST_CONTEXT
 
     ## Make sure link to change password is sent by email
     assert len(mail.EMAIL_TEST_INBOX) == 1
@@ -282,7 +272,7 @@ def test_register_views():
     ## 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 template.TEMPLATE_TEST_CONTEXT.has_key('mediagoblin/auth/change_fp.html')
+    assert 'mediagoblin/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()
@@ -292,8 +282,7 @@ def test_register_views():
             'password': 'iamveryveryhappy',
             'token': parsed_get_params['token']})
     response.follow()
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/auth/login.html')
+    assert 'mediagoblin/auth/login.html' in template.TEMPLATE_TEST_CONTEXT
 
     ## Verify step 2.2 of password-change works -- login w/ new password success
     template.clear_test_template_context()
@@ -307,23 +296,20 @@ def test_register_views():
     assert_equal(
         urlparse.urlsplit(response.location)[2],
         '/')
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/root.html')
+    assert 'mediagoblin/root.html' in template.TEMPLATE_TEST_CONTEXT
 
 
-def test_authentication_views():
+def test_authentication_views(test_app):
     """
     Test logging in and logging out
     """
-    test_app = get_test_app(dump_old_app=False)
     # Make a new user
     test_user = fixture_add_user(active_user=False)
 
     # Get login
     # ---------
     test_app.get('/auth/login/')
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/auth/login.html')
+    assert 'mediagoblin/auth/login.html' in template.TEMPLATE_TEST_CONTEXT
 
     # Failed login - blank form
     # -------------------------
@@ -370,7 +356,7 @@ def test_authentication_views():
     response = test_app.post(
         '/auth/login/', {
             'username': u'chris',
-            'password': 'jam'})
+            'password': 'jam_and_ham'})
     context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html']
     assert context['login_failed']
 
@@ -387,8 +373,7 @@ def test_authentication_views():
     assert_equal(
         urlparse.urlsplit(response.location)[2],
         '/')
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/root.html')
+    assert 'mediagoblin/root.html' in template.TEMPLATE_TEST_CONTEXT
 
     # Make sure user is in the session
     context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
@@ -405,13 +390,12 @@ def test_authentication_views():
     assert_equal(
         urlparse.urlsplit(response.location)[2],
         '/')
-    assert template.TEMPLATE_TEST_CONTEXT.has_key(
-        'mediagoblin/root.html')
+    assert 'mediagoblin/root.html' in template.TEMPLATE_TEST_CONTEXT
 
     # Make sure the user is not in the session
     context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
     session = context['request'].session
-    assert session.has_key('user_id') == False
+    assert 'user_id' not in session
 
     # User is redirected to custom URL if POST['next'] is set
     # -------------------------------------------------------
@@ -424,4 +408,3 @@ def test_authentication_views():
     assert_equal(
         urlparse.urlsplit(response.location)[2],
         '/u/chris/')
-