A setup_fresh_app decorator which should make writing tests a bit easier.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 6 Jun 2011 12:45:18 +0000 (07:45 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 6 Jun 2011 12:45:18 +0000 (07:45 -0500)
Setting test_register_views() to use it also.

mediagoblin/tests/test_auth.py
mediagoblin/tests/tools.py

index cf6d48f52d6dfae5eebb63f9e928739d1b81a90c..cdfeccabbc9fa462c647844e1a28fdb82693baa6 100644 (file)
@@ -19,7 +19,7 @@ import urlparse
 from nose.tools import assert_equal
 
 from mediagoblin.auth import lib as auth_lib
-from mediagoblin.tests.tools import get_test_app
+from mediagoblin.tests.tools import setup_fresh_app
 from mediagoblin import globals as mgoblin_globals
 from mediagoblin import util
 
@@ -65,13 +65,11 @@ def test_bcrypt_gen_password_hash():
         'notthepassword', hashed_pw, '3><7R45417')
 
 
-def test_register_views():
+@setup_fresh_app
+def test_register_views(test_app):
     """
     Massive test function that all our registration-related views all work.
     """
-    util.clear_test_template_context()
-    test_app = get_test_app()
-
     # Test doing a simple GET on the page
     # -----------------------------------
 
index a51402e9d90c7b12cf8d7252f5fadbaf9e355b96..342b54b7657e73265bd0b533ba4c38d74f36035e 100644 (file)
@@ -21,6 +21,8 @@ import os, shutil
 from paste.deploy import appconfig, loadapp
 from webtest import TestApp
 
+from mediagoblin import util
+from mediagoblin.decorators import _make_safe
 from mediagoblin.db.open import setup_connection_and_db_from_config
 
 
@@ -91,3 +93,17 @@ def get_test_app(dump_old_app=True):
         'config:' + TEST_APP_CONFIG)
 
     return TestApp(test_app)
+
+
+def setup_fresh_app(func):
+    """
+    Decorator to setup a fresh test application for this function.
+
+    Cleans out test buckets and passes in a new, fresh test_app.
+    """
+    def wrapper(*args, **kwargs):
+        test_app = get_test_app()
+        util.clear_test_buckets()
+        return func(test_app, *args, **kwargs)
+
+    return _make_safe(wrapper, func)