aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/tests
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/tests')
-rw-r--r--mediagoblin/tests/test_auth.py8
-rw-r--r--mediagoblin/tests/test_celery_setup.py4
-rw-r--r--mediagoblin/tests/test_csrf_middleware.py21
-rw-r--r--mediagoblin/tests/test_misc.py26
-rw-r--r--mediagoblin/tests/test_submission.py6
-rw-r--r--mediagoblin/tests/tools.py17
6 files changed, 61 insertions, 21 deletions
diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py
index 153c6e53..ee085761 100644
--- a/mediagoblin/tests/test_auth.py
+++ b/mediagoblin/tests/test_auth.py
@@ -280,16 +280,16 @@ def test_register_views(test_app):
template.clear_test_template_context()
response = test_app.get(
"/auth/forgot_password/verify/?userid=%s&token=total_bs" % unicode(
- new_user._id), status=400)
- assert response.status == '400 Bad Request'
+ new_user._id), status=404)
+ assert_equal(response.status, '404 Not Found')
## Try using an expired token to change password, shouldn't work
template.clear_test_template_context()
real_token_expiration = new_user['fp_token_expire']
new_user['fp_token_expire'] = datetime.datetime.now()
new_user.save()
- response = test_app.get("%s?%s" % (path, get_params), status=400)
- assert response.status == '400 Bad Request'
+ response = test_app.get("%s?%s" % (path, get_params), status=404)
+ assert_equal(response.status, '404 Not Found')
new_user['fp_token_expire'] = real_token_expiration
new_user.save()
diff --git a/mediagoblin/tests/test_celery_setup.py b/mediagoblin/tests/test_celery_setup.py
index 348a4357..19a9b899 100644
--- a/mediagoblin/tests/test_celery_setup.py
+++ b/mediagoblin/tests/test_celery_setup.py
@@ -50,7 +50,7 @@ def test_setup_celery_from_config():
assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float)
assert fake_celery_module.CELERY_RESULT_PERSISTENT is True
assert fake_celery_module.CELERY_IMPORTS == [
- 'foo.bar.baz', 'this.is.an.import', 'mediagoblin.process_media']
+ 'foo.bar.baz', 'this.is.an.import', 'mediagoblin.processing']
assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == {
'database': 'mediagoblin'}
assert fake_celery_module.CELERY_RESULT_BACKEND == 'mongodb'
@@ -74,7 +74,7 @@ def test_setup_celery_from_config():
assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float)
assert fake_celery_module.CELERY_RESULT_PERSISTENT is False
assert fake_celery_module.CELERY_IMPORTS == [
- 'baz.bar.foo', 'import.is.a.this', 'mediagoblin.process_media']
+ 'baz.bar.foo', 'import.is.a.this', 'mediagoblin.processing']
assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == {
'database': 'captain_lollerskates',
'host': 'mongodb.example.org',
diff --git a/mediagoblin/tests/test_csrf_middleware.py b/mediagoblin/tests/test_csrf_middleware.py
index 691f10b9..c8fca23a 100644
--- a/mediagoblin/tests/test_csrf_middleware.py
+++ b/mediagoblin/tests/test_csrf_middleware.py
@@ -27,7 +27,7 @@ from mediagoblin import mg_globals
def test_csrf_cookie_set(test_app):
cookie_name = mg_globals.app_config['csrf_cookie_name']
-
+
# get login page
response = test_app.get('/auth/login/')
@@ -69,3 +69,22 @@ def test_csrf_token_must_match(test_app):
mg_globals.app_config['csrf_cookie_name'])},
extra_environ={'gmg.verify_csrf': True}).\
status_int == 200
+
+@setup_fresh_app
+def test_csrf_exempt(test_app):
+
+ # monkey with the views to decorate a known endpoint
+ import mediagoblin.auth.views
+ from mediagoblin.meddleware.csrf import csrf_exempt
+
+ mediagoblin.auth.views.login = csrf_exempt(
+ mediagoblin.auth.views.login
+ )
+
+ # construct a request with no cookie or form token
+ assert test_app.post('/auth/login/',
+ extra_environ={'gmg.verify_csrf': True},
+ expect_errors=False).status_int == 200
+
+ # restore the CSRF protection in case other tests expect it
+ mediagoblin.auth.views.login.csrf_enabled = True
diff --git a/mediagoblin/tests/test_misc.py b/mediagoblin/tests/test_misc.py
new file mode 100644
index 00000000..09623355
--- /dev/null
+++ b/mediagoblin/tests/test_misc.py
@@ -0,0 +1,26 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 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
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# 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/>.
+
+from nose.tools import assert_equal
+
+from mediagoblin.tests.tools import setup_fresh_app
+
+
+@setup_fresh_app
+def test_404_for_non_existent(test_app):
+ assert_equal(test_app.get('/does-not-exist/',
+ expect_errors=True).status_int,
+ 404)
diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py
index dec7118b..eea5747f 100644
--- a/mediagoblin/tests/test_submission.py
+++ b/mediagoblin/tests/test_submission.py
@@ -222,7 +222,7 @@ class TestSubmission:
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html']
form = context['submit_form']
- assert form.file.errors == ['The file doesn\'t seem to be an image!']
+ assert form.file.errors == [u'Invalid file type.']
# NOTE: The following 2 tests will ultimately fail, but they
# *will* pass the initial form submission step. Instead,
@@ -246,7 +246,7 @@ class TestSubmission:
assert_equal(entry['state'], 'failed')
assert_equal(
entry['fail_error'],
- u'mediagoblin.process_media.errors:BadMediaFail')
+ u'mediagoblin.processing:BadMediaFail')
# Test non-supported file with .png extension
# -------------------------------------------
@@ -266,4 +266,4 @@ class TestSubmission:
assert_equal(entry['state'], 'failed')
assert_equal(
entry['fail_error'],
- u'mediagoblin.process_media.errors:BadMediaFail')
+ u'mediagoblin.processing:BadMediaFail')
diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py
index 420d9ba8..01813e96 100644
--- a/mediagoblin/tests/tools.py
+++ b/mediagoblin/tests/tools.py
@@ -26,6 +26,7 @@ from mediagoblin.tools import testing
from mediagoblin.init.config import read_mediagoblin_config
from mediagoblin.decorators import _make_safe
from mediagoblin.db.open import setup_connection_and_db_from_config
+from mediagoblin.meddleware import BaseMeddleware
MEDIAGOBLIN_TEST_DB_NAME = u'__mediagoblin_tests__'
@@ -50,9 +51,9 @@ $ CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests ./bin/nosetests"""
class BadCeleryEnviron(Exception): pass
-class TestingMiddleware(object):
+class TestingMeddleware(BaseMeddleware):
"""
- Middleware for the Unit tests
+ Meddleware for the Unit tests
It might make sense to perform some tests on all
requests/responses. Or prepare them in a special
@@ -60,7 +61,7 @@ class TestingMiddleware(object):
for being valid html *after* being rendered.
This module is getting inserted at the front of the
- middleware list, which means: requests are handed here
+ meddleware list, which means: requests are handed here
first, responses last. So this wraps up the "normal"
app.
@@ -69,12 +70,6 @@ class TestingMiddleware(object):
create a new method and call it from process_*.
"""
- def __init__(self, mg_app):
- self.app = mg_app
-
- def process_request(self, request):
- pass
-
def process_response(self, request, response):
# All following tests should be for html only!
if response.content_type != "text/html":
@@ -149,11 +144,11 @@ def get_test_app(dump_old_app=True):
test_app = loadapp(
'config:' + TEST_SERVER_CONFIG)
- # Insert the TestingMiddleware, which can do some
+ # Insert the TestingMeddleware, which can do some
# sanity checks on every request/response.
# Doing it this way is probably not the cleanest way.
# We'll fix it, when we have plugins!
- mg_globals.app.middleware.insert(0, TestingMiddleware(mg_globals.app))
+ mg_globals.app.meddleware.insert(0, TestingMeddleware(mg_globals.app))
app = TestApp(test_app)
MGOBLIN_APP = app