diff options
Diffstat (limited to 'mediagoblin/tests')
-rw-r--r-- | mediagoblin/tests/test_messages.py | 44 | ||||
-rw-r--r-- | mediagoblin/tests/test_mgoblin_app.ini | 7 | ||||
-rw-r--r-- | mediagoblin/tests/tools.py | 15 |
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 |