summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-12-18 14:36:10 -0200
committerDuda Dornelles <ddornell@thoughtworks.com>2014-12-18 14:37:14 -0200
commit8e57412dcd7fe8749ebed645e048309618ed01b5 (patch)
treed736ae52d3fbffee06e482b19702c78041c83f71 /service
parent2d07349df9eb7fd3a197c0c3a9f7180af441f82c (diff)
\#203 & #204 & #205: fixing client and api for buld mark as read/unread and delete, functional tests are still broken, investigating...
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/config/routes.py4
-rw-r--r--service/pixelated/controllers/mails_controller.py10
-rw-r--r--service/test/integration/delete_mail_test.py2
-rw-r--r--service/test/integration/mark_as_read_unread_test.py4
-rw-r--r--service/test/support/integration/soledad_test_base.py10
-rw-r--r--service/test/unit/controllers/mails_controller_test.py15
6 files changed, 14 insertions, 31 deletions
diff --git a/service/pixelated/config/routes.py b/service/pixelated/config/routes.py
index 334119fc..5efbbb28 100644
--- a/service/pixelated/config/routes.py
+++ b/service/pixelated/config/routes.py
@@ -2,13 +2,11 @@ def setup_routes(app, home_controller, mails_controller, tags_controller, featur
attachments_controller, contacts_controller):
# mails
app.route('/mails', methods=['GET'])(mails_controller.mails)
- app.route('/mail/<mail_id>/read', methods=['POST'])(mails_controller.mark_mail_as_read)
- app.route('/mail/<mail_id>/unread', methods=['POST'])(mails_controller.mark_mail_as_unread)
app.route('/mails/unread', methods=['POST'])(mails_controller.mark_many_mail_unread)
app.route('/mails/read', methods=['POST'])(mails_controller.mark_many_mail_read)
app.route('/mail/<mail_id>', methods=['GET'])(mails_controller.mail)
app.route('/mail/<mail_id>', methods=['DELETE'])(mails_controller.delete_mail)
- app.route('/mails', methods=['DELETE'])(mails_controller.delete_mails)
+ app.route('/mails/delete', methods=['POST'])(mails_controller.delete_mails)
app.route('/mails', methods=['POST'])(mails_controller.send_mail)
app.route('/mail/<mail_id>/tags', methods=['POST'])(mails_controller.mail_tags)
app.route('/mails', methods=['PUT'])(mails_controller.update_draft)
diff --git a/service/pixelated/controllers/mails_controller.py b/service/pixelated/controllers/mails_controller.py
index 7166a51d..eba97784 100644
--- a/service/pixelated/controllers/mails_controller.py
+++ b/service/pixelated/controllers/mails_controller.py
@@ -44,16 +44,6 @@ class MailsController:
mail = self._mail_service.mail(mail_id)
return respond_json(mail.as_dict(), request)
- def mark_mail_as_read(self, request, mail_id):
- mail = self._mail_service.mark_as_read(mail_id)
- self._search_engine.index_mail(mail)
- return ""
-
- def mark_mail_as_unread(self, request, mail_id):
- mail = self._mail_service.mark_as_unread(mail_id)
- self._search_engine.index_mail(mail)
- return ""
-
def mark_many_mail_unread(self, request):
content_dict = json.load(request.content)
idents = content_dict.get('idents')
diff --git a/service/test/integration/delete_mail_test.py b/service/test/integration/delete_mail_test.py
index 28f55840..5a3a97fb 100644
--- a/service/test/integration/delete_mail_test.py
+++ b/service/test/integration/delete_mail_test.py
@@ -41,7 +41,7 @@ class DeleteMailTest(SoledadTestBase):
def test_delete_mail_when_trashing_mail_from_trash_mailbox(self):
mails = self.client.add_multiple_to_mailbox(1, 'trash')
- self.delete_mail(mails[0].ident)
+ self.delete_mails([mails[0].ident])
trash_mails = self.get_mails_by_tag('trash')
diff --git a/service/test/integration/mark_as_read_unread_test.py b/service/test/integration/mark_as_read_unread_test.py
index 55467e9e..03da404f 100644
--- a/service/test/integration/mark_as_read_unread_test.py
+++ b/service/test/integration/mark_as_read_unread_test.py
@@ -33,7 +33,7 @@ class MarkAsReadUnreadTest(SoledadTestBase):
mails = self.get_mails_by_tag('inbox')
self.assertNotIn('read', mails[0].status)
- self.mark_as_read(input_mail.ident)
+ self.mark_many_as_read([input_mail.ident])
mails = self.get_mails_by_tag('inbox')
self.assertIn('read', mails[0].status)
@@ -42,7 +42,7 @@ class MarkAsReadUnreadTest(SoledadTestBase):
input_mail = MailBuilder().with_status([Status.SEEN]).build_input_mail()
self.client.add_mail_to_inbox(input_mail)
- self.mark_as_unread(input_mail.ident)
+ self.mark_many_as_unread([input_mail.ident])
mail = self.get_mails_by_tag('inbox')[0]
self.assertNotIn('read', mail.status)
diff --git a/service/test/support/integration/soledad_test_base.py b/service/test/support/integration/soledad_test_base.py
index a000349e..6368d3e8 100644
--- a/service/test/support/integration/soledad_test_base.py
+++ b/service/test/support/integration/soledad_test_base.py
@@ -71,15 +71,7 @@ class SoledadTestBase(unittest.TestCase):
return req
def delete_mails(self, idents):
- res, req = self.client.delete("/mails", json.dumps({'idents': idents}))
- return req
-
- def mark_as_read(self, mail_ident):
- res, req = self.client.post("/mail/%s/read" % mail_ident)
- return req
-
- def mark_as_unread(self, mail_ident):
- res, req = self.client.post("/mail/%s/unread" % mail_ident)
+ res, req = self.client.post("/mails/delete", json.dumps({'idents': idents}))
return req
def mark_many_as_unread(self, idents):
diff --git a/service/test/unit/controllers/mails_controller_test.py b/service/test/unit/controllers/mails_controller_test.py
index ab87c205..c9c2c7cf 100644
--- a/service/test/unit/controllers/mails_controller_test.py
+++ b/service/test/unit/controllers/mails_controller_test.py
@@ -15,6 +15,7 @@
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
import json
import unittest
+from io import BytesIO
from klein.test_resource import requestMock
from mock import MagicMock
@@ -77,22 +78,24 @@ class TestMailsController(unittest.TestCase):
def test_marking_mail_as_read_set_mail_as_read_on_the_service(self):
mail = mock()
- when(self.mail_service).mark_as_read(1).thenReturn(mail)
+ when(self.mail_service).mark_as_read("1").thenReturn(mail)
when(self.search_engine).index_mail(mail).thenReturn(None)
+ self.dummy_request.content = BytesIO('{"idents":["1"]}')
- self.mails_controller.mark_mail_as_read(None, 1)
+ self.mails_controller.mark_many_mail_read(self.dummy_request)
- verify(self.mail_service).mark_as_read(1)
+ verify(self.mail_service).mark_as_read(u'1')
verify(self.search_engine).index_mail(mail)
def test_marking_mail_as_unread_set_mail_as_unread_on_the_service(self):
mail = mock()
- when(self.mail_service).mark_as_unread(1).thenReturn(mail)
+ when(self.mail_service).mark_as_unread("1").thenReturn(mail)
when(self.search_engine).index_mail(mail).thenReturn(None)
+ self.dummy_request.content = BytesIO('{"idents":["1"]}')
- self.mails_controller.mark_mail_as_unread(None, 1)
+ self.mails_controller.mark_many_mail_unread(self.dummy_request)
- verify(self.mail_service).mark_as_unread(1)
+ verify(self.mail_service).mark_as_unread(u'1')
verify(self.search_engine).index_mail(mail)
def test_move_message_to_trash(self):