Browse Source

More CBV nonsense

Alec Nikolas Reiter 7 years ago
parent
commit
f616254480
3 changed files with 51 additions and 36 deletions
  1. 22 20
      flaskbb/message/views.py
  2. 8 4
      tests/endtoend/test_auth_views.py
  3. 21 12
      tests/endtoend/test_message_views.py

+ 22 - 20
flaskbb/message/views.py

@@ -53,20 +53,17 @@ class Inbox(MethodView):
         page = request.args.get('page', 1, type=int)
 
         # the inbox will display both, the recieved and the sent messages
-        conversations = Conversation.query. \
-            filter(
-                Conversation.user_id == current_user.id,
-                Conversation.draft == False,
-                Conversation.trash == False,
-            ).\
-            order_by(Conversation.date_modified.desc()). \
-            paginate(page, flaskbb_config['TOPICS_PER_PAGE'], False)
+        conversations = Conversation.query.filter(
+            Conversation.user_id == current_user.id,
+            Conversation.draft == False,
+            Conversation.trash == False,
+        ).order_by(Conversation.date_modified.desc()).paginate(
+            page, flaskbb_config['TOPICS_PER_PAGE'], False
+        )
 
         # we can't simply do conversations.total because it would ignore
         # drafted and trashed messages
-        message_count = Conversation.query. \
-            filter(Conversation.user_id == current_user.id).\
-            count()
+        message_count = Conversation.query.filter(Conversation.user_id == current_user.id).count()
 
         return render_template(
             "message/inbox.html", conversations=conversations, message_count=message_count
@@ -395,12 +392,12 @@ class TrashedMessages(MethodView):
         )
 
 
-register_view(message, routes=['/drafts'], DraftMessages.as_view('drafts'))
+register_view(message, routes=['/drafts'], view_func=DraftMessages.as_view('drafts'))
 register_view(message, routes=['/', '/inbox'], view_func=Inbox.as_view('inbox'))
 register_view(
     message,
-    routes=['/int:conversation_id>/delete'],
-    DeleteConversation.as_view('delete_conversation')
+    routes=['/<int:conversation_id>/delete'],
+    view_func=DeleteConversation.as_view('delete_conversation')
 )
 register_view(
     message,
@@ -408,18 +405,23 @@ register_view(
     view_func=EditConversation.as_view('edit_conversation')
 )
 register_view(
-    message, routes=['/<int:conversation_id>/move'], MoveConversation.as_view('move_conversation')
+    message,
+    routes=['/<int:conversation_id>/move'],
+    view_func=MoveConversation.as_view('move_conversation')
 )
 register_view(
-    message.routes=['/<int:conversation_id>/restore'],
-    RestoreConversation.as_view('restore_conversation')
+    message,
+    routes=['/<int:conversation_id>/restore'],
+    view_func=RestoreConversation.as_view('restore_conversation')
 )
 register_view(
     message,
     routes=["/<int:conversation_id>/view"],
     view_func=ViewConversation.as_view('view_conversation')
 )
-register_view(message, routes=['/message/<int:message_id>/raw'], RawMessage.as_view('raw_message'))
+register_view(
+    message, routes=['/message/<int:message_id>/raw'], view_func=RawMessage.as_view('raw_message')
+)
 register_view(message, routes=["/new"], view_func=NewConversation.as_view('new_conversation'))
-register_view(message, routes=['/sent'], SentMessages.as_view('sent'))
-register_view(message, routes=['/trash'], TrashedMessages.as_view('trash'))
+register_view(message, routes=['/sent'], view_func=SentMessages.as_view('sent'))
+register_view(message, routes=['/trash'], view_func=TrashedMessages.as_view('trash'))

+ 8 - 4
tests/endtoend/test_auth_views.py

@@ -5,28 +5,32 @@ import pytest
 
 
 def test_overview_not_authorized(application, default_settings):
+    view = views.ManagementOverview.as_view('overview')
     with application.test_request_context(), pytest.raises(AuthorizationRequired) as excinfo:  # noqa
-        views.overview()
+        view()
 
     assert "Authorization is required to access this area." == excinfo.value.description  # noqa
 
 
 def test_overview_with_authorized(admin_user, application, default_settings):
+    view = views.ManagementOverview.as_view('overview')
     with application.test_request_context():
         login_user(admin_user)
-        resp = views.overview()
+        resp = view()
         assert 'Overview' in resp
 
 
 def test_overview_with_supermod(super_moderator_user, application, default_settings):  # noqa
+    view = views.ManagementOverview.as_view('overview')
     with application.test_request_context():
         login_user(super_moderator_user)
-        resp = views.overview()
+        resp = view()
         assert 'Overview' in resp
 
 
 def test_overview_with_mod(moderator_user, application, default_settings):
+    view = views.ManagementOverview.as_view('overview')
     with application.test_request_context():
         login_user(moderator_user)
-        resp = views.overview()
+        resp = view()
         assert 'Overview' in resp

+ 21 - 12
tests/endtoend/test_message_views.py

@@ -7,15 +7,17 @@ from flaskbb.message import views
 
 def test_message_not_logged_in(application):
     """ check for redirect if not logged in """
+    view = views.Inbox.as_view('inbox')
     with application.test_request_context():
-        resp = views.inbox()
+        resp = view()
         assert resp.status != 302
 
 
 def test_message_inbox(application, default_settings, conversation_msgs, user):
+    view = views.Inbox()
     with application.test_request_context():
         login_user(user)
-        resp = views.inbox()
+        resp = view.get()
         assert 'From <a href="/user/test_normal">test_normal</a>' in resp
 
 
@@ -32,57 +34,64 @@ def test_message_view_conversation(
 def test_message_trash_restore_conversation(
         application, default_settings,
         conversation_msgs, user):
+    move = views.MoveConversation()
+    restore = views.RestoreConversation()
     with application.test_request_context():
         login_user(user)
-        resp = views.move_conversation(conversation_msgs.id)
+        resp = move.post(conversation_msgs.id)
         assert resp.status != 302
         assert conversation_msgs.trash is True
-        resp = views.restore_conversation(conversation_msgs.id)
+        resp = restore.post(conversation_msgs.id)
         assert conversation_msgs.trash is False
 
 
 def test_message_delete_conversation(
         application, default_settings,
         conversation_msgs, user):
+    view = views.DeleteConversation()
     with application.test_request_context():
         login_user(user)
-        resp = views.delete_conversation(conversation_msgs.id)
+        resp = view.post(conversation_msgs.id)
         assert resp.status != 302
 
 
 def test_message_trash(application, default_settings, user):
     # FIXME more sophisticated tests required
+    view = views.TrashedMessages()
     with application.test_request_context():
         login_user(user)
-        resp = views.trash()
+        resp = view.get()
         assert 'No conversations found' in resp
 
 
 def test_message_drafts(application, default_settings, user):
     # FIXME more sophisticated tests required
+    view = views.DraftMessages()
     with application.test_request_context():
         login_user(user)
-        resp = views.drafts()
+        resp = view.get()
         assert 'No conversations found' in resp
 
 
 def test_message_sent(application, default_settings, user):
     # FIXME more sophisticated tests required
+    view = views.SentMessages()
     with application.test_request_context():
         login_user(user)
-        resp = views.sent()
+        resp = view.get()
         assert 'No conversations found' in resp
 
 
 def test_message_view_raw(
-        application, conversation_msgs,
-        default_settings, user, moderator_user):
+    application, conversation_msgs,
+    default_settings, user, moderator_user):
+    view = views.RawMessage()
     with application.test_request_context():
         login_user(user)
-        resp = views.raw_message(conversation_msgs.last_message.id)
+        resp = view.get(conversation_msgs.last_message.id)
         assert conversation_msgs.last_message.message in resp
 
         # same view should raise a 404 for a different user
         login_user(moderator_user)
         with pytest.raises(exceptions.NotFound):
-            resp = views.raw_message(conversation_msgs.last_message.id)
+            resp = view.get(conversation_msgs.last_message.id)