Convenience functions for callable hooks
[mediagoblin.git] / mediagoblin / tests / test_messages.py
CommitLineData
9f094bea 1# GNU MediaGoblin -- federated, autonomous media hosting
cf29e8a8 2# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
9f094bea
CFD
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU Affero General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU Affero General Public License for more details.
13#
14# You should have received a copy of the GNU Affero General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17from mediagoblin.messages import fetch_messages, add_message
ae3bc7fa 18from mediagoblin.tools import template
9f094bea
CFD
19
20
5c2ece74 21def test_messages(test_app):
9f094bea
CFD
22 """
23 Added messages should show up in the request.session,
24 fetched messages should be the same as the added ones,
25 and fetching should clear the message list.
26 """
27 # Aquire a request object
28 test_app.get('/')
ae3bc7fa 29 context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
9f094bea 30 request = context['request']
b97144dc 31
9f094bea
CFD
32 # The message queue should be empty
33 assert request.session.get('messages', []) == []
b97144dc 34
9f094bea
CFD
35 # Adding a message should modify the session accordingly
36 add_message(request, 'herp_derp', 'First!')
37 test_msg_queue = [{'text': 'First!', 'level': 'herp_derp'}]
38 assert request.session['messages'] == test_msg_queue
b97144dc 39
9f094bea
CFD
40 # fetch_messages should return and empty the queue
41 assert fetch_messages(request) == test_msg_queue
42 assert request.session.get('messages') == []