aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/tests
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/tests')
-rw-r--r--mediagoblin/tests/test_messages.py44
-rw-r--r--mediagoblin/tests/test_mgoblin_app.ini7
-rw-r--r--mediagoblin/tests/tools.py15
3 files changed, 53 insertions, 13 deletions
diff --git a/mediagoblin/tests/test_messages.py b/mediagoblin/tests/test_messages.py
new file mode 100644
index 00000000..4cd9381a
--- /dev/null
+++ b/mediagoblin/tests/test_messages.py
@@ -0,0 +1,44 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 Free Software Foundation, Inc
+#
+# 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 mediagoblin.messages import fetch_messages, add_message
+from mediagoblin.tests.tools import setup_fresh_app
+from mediagoblin import util
+
+
+@setup_fresh_app
+def test_messages(test_app):
+ """
+ Added messages should show up in the request.session,
+ fetched messages should be the same as the added ones,
+ and fetching should clear the message list.
+ """
+ # Aquire a request object
+ test_app.get('/')
+ context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
+ request = context['request']
+
+ # The message queue should be empty
+ assert request.session.get('messages', []) == []
+
+ # Adding a message should modify the session accordingly
+ add_message(request, 'herp_derp', 'First!')
+ test_msg_queue = [{'text': 'First!', 'level': 'herp_derp'}]
+ assert request.session['messages'] == test_msg_queue
+
+ # fetch_messages should return and empty the queue
+ assert fetch_messages(request) == test_msg_queue
+ assert request.session.get('messages') == []
diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini
index 94eafb5a..e022d47b 100644
--- a/mediagoblin/tests/test_mgoblin_app.ini
+++ b/mediagoblin/tests/test_mgoblin_app.ini
@@ -7,6 +7,9 @@ email_sender_address = "notice@mediagoblin.example.org"
email_debug_mode = true
db_name = __mediagoblin_tests__
-# Celery shouldn't be set up by the paste app factory as it's set up
-# elsewhere
+# Celery shouldn't be set up by the application as it's setup via
+# mediagoblin.celery_setup.from_celery
celery_setup_elsewhere = true
+
+[celery]
+celery_always_eager = true
diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py
index ebb5f1b5..64f773f0 100644
--- a/mediagoblin/tests/tools.py
+++ b/mediagoblin/tests/tools.py
@@ -21,9 +21,8 @@ import os, shutil
from paste.deploy import loadapp
from webtest import TestApp
-from mediagoblin import util, mg_globals
+from mediagoblin import util
from mediagoblin.config import read_mediagoblin_config
-from mediagoblin.celery_setup import setup_celery_from_config
from mediagoblin.decorators import _make_safe
from mediagoblin.db.open import setup_connection_and_db_from_config
@@ -36,7 +35,6 @@ TEST_APP_CONFIG = pkg_resources.resource_filename(
TEST_USER_DEV = pkg_resources.resource_filename(
'mediagoblin.tests', 'test_user_dev')
MGOBLIN_APP = None
-CELERY_SETUP = False
USER_DEV_DIRECTORIES_TO_SETUP = [
'media/public', 'media/queue',
@@ -60,8 +58,10 @@ def suicide_if_bad_celery_environ():
def get_test_app(dump_old_app=True):
suicide_if_bad_celery_environ()
+ # Leave this imported as it sets up celery.
+ from mediagoblin.celery_setup import from_tests
+
global MGOBLIN_APP
- global CELERY_SETUP
# Just return the old app if that exists and it's okay to set up
# and return
@@ -103,13 +103,6 @@ def get_test_app(dump_old_app=True):
app = TestApp(test_app)
MGOBLIN_APP = app
- # setup celery
- if not CELERY_SETUP:
- setup_celery_from_config(
- mg_globals.app_config, mg_globals.global_config,
- set_environ=True)
- CELERY_SETUP = True
-
return app