summaryrefslogtreecommitdiffstats
path: root/askbot/tests/user_views_tests.py
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-10-11 15:09:59 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-10-11 15:09:59 -0400
commit18de3b9d5d8fadff635867d1b3cd635c23ff0b51 (patch)
treee56b83789add18ae1681e17bbbbb2bed3ddd7e67 /askbot/tests/user_views_tests.py
parent6c1fbbfefed9e3b684821fe8150c7e46e326f129 (diff)
downloadaskbot-18de3b9d5d8fadff635867d1b3cd635c23ff0b51.tar.gz
askbot-18de3b9d5d8fadff635867d1b3cd635c23ff0b51.tar.bz2
askbot-18de3b9d5d8fadff635867d1b3cd635c23ff0b51.zip
made owner_or_moderator_required decorator pass url parameters to the next url
Diffstat (limited to 'askbot/tests/user_views_tests.py')
-rw-r--r--askbot/tests/user_views_tests.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/askbot/tests/user_views_tests.py b/askbot/tests/user_views_tests.py
new file mode 100644
index 00000000..489cf76a
--- /dev/null
+++ b/askbot/tests/user_views_tests.py
@@ -0,0 +1,39 @@
+from askbot.tests.utils import AskbotTestCase
+from askbot.views.users import owner_or_moderator_required
+from django.contrib.auth.models import AnonymousUser
+from django.core.urlresolvers import reverse
+from django.http import HttpResponseRedirect
+from mock import Mock
+import urllib
+import urlparse
+
+class UserViewsTests(AskbotTestCase):
+
+ def test_owner_or_mod_required_passes_url_parameters(self):
+ @owner_or_moderator_required
+ def mock_view(request, user, context):
+ return None
+
+ request = Mock(spec=('path', 'REQUEST', 'user'))
+ request.user = AnonymousUser()
+ request.REQUEST = {'abra': 'cadabra', 'foo': 'bar'}
+ request.path = '/some/path/'
+ user = self.create_user('user')
+ response = mock_view(request, user, {})
+ self.assertEqual(isinstance(response, HttpResponseRedirect), True)
+
+ url = response['location']
+ parsed_url = urlparse.urlparse(url)
+
+ self.assertEqual(parsed_url.path, reverse('user_signin'))
+
+ next = dict(urlparse.parse_qsl(parsed_url.query))['next']
+ next_url = urllib.unquote(next)
+ parsed_url = urlparse.urlparse(next_url)
+
+ self.assertEqual(parsed_url.path, request.path)
+
+ query = dict(urlparse.parse_qsl(parsed_url.query))
+ self.assertEqual(set(query.keys()), set(['foo', 'abra']))
+ self.assertEqual(set(query.values()), set(['bar', 'cadabra']))
+ self.assertEqual(query['abra'], 'cadabra')