Merge remote-tracking branch 'refs/remotes/elrond/misc/pytest_enable_testing'
[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
98ce23d2 17from mediagoblin import messages
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
98ce23d2
GT
35 # First of all, we should clear the messages queue
36 messages.clear_add_message()
9f094bea 37 # Adding a message should modify the session accordingly
98ce23d2 38 messages.add_message(request, 'herp_derp', 'First!')
9f094bea 39 test_msg_queue = [{'text': 'First!', 'level': 'herp_derp'}]
98ce23d2
GT
40
41 # Alternative tests to the following, test divided in two steps:
42 # assert request.session['messages'] == test_msg_queue
43 # 1. Tests if add_message worked
44 assert messages.ADD_MESSAGE_TEST[-1] == test_msg_queue
45 # 2. Tests if add_message updated session information
46 assert messages.ADD_MESSAGE_TEST[-1] == request.session['messages']
b97144dc 47
9f094bea 48 # fetch_messages should return and empty the queue
98ce23d2 49 assert messages.fetch_messages(request) == test_msg_queue
9f094bea 50 assert request.session.get('messages') == []