summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorJefferson Stachelski <jstachel@thoughtworks.com>2015-11-13 15:24:06 -0200
committerJefferson Stachelski <jstachel@thoughtworks.com>2015-11-13 16:01:27 -0200
commitb7ff48dca546c97f78fb98ca83afd6c9684f2612 (patch)
treebc41d89c84fd2bc86850dd1254f113d82f8156dd /service
parent6f3e6e546457cacc35916bb7867edb1c5cfb9ab6 (diff)
Issue #523 - Created python test for arhive mail
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/resources/mails_resource.py1
-rw-r--r--service/test/unit/resources/test_archive_resource.py32
2 files changed, 33 insertions, 0 deletions
diff --git a/service/pixelated/resources/mails_resource.py b/service/pixelated/resources/mails_resource.py
index f65041f5..5b5335b9 100644
--- a/service/pixelated/resources/mails_resource.py
+++ b/service/pixelated/resources/mails_resource.py
@@ -95,6 +95,7 @@ class MailsRecoverResource(Resource):
class MailsArchiveResource(Resource):
+ isLeaf = True
def __init__(self, mail_service):
Resource.__init__(self)
diff --git a/service/test/unit/resources/test_archive_resource.py b/service/test/unit/resources/test_archive_resource.py
new file mode 100644
index 00000000..28078222
--- /dev/null
+++ b/service/test/unit/resources/test_archive_resource.py
@@ -0,0 +1,32 @@
+import unittest
+import json
+from mockito import mock, when, verify
+from test.unit.resources import DummySite
+from twisted.web.test.requesthelper import DummyRequest
+from pixelated.resources.mails_resource import MailsArchiveResource
+from twisted.internet import defer
+
+
+class TestArchiveResource(unittest.TestCase):
+ def setUp(self):
+ self.mail_service = mock()
+ self.web = DummySite(MailsArchiveResource(self.mail_service))
+
+ def test_render_POST_should_archive_mails(self):
+ request = DummyRequest(['/mails/archive'])
+ request.method = 'POST'
+ content = mock()
+ when(content).read().thenReturn(json.dumps({'idents': ['1', '2']}))
+
+ when(self.mail_service).archive_mail('1').thenReturn(defer.Deferred())
+ when(self.mail_service).archive_mail('2').thenReturn(defer.Deferred())
+
+ request.content = content
+ d = self.web.get(request)
+
+ def assert_response(_):
+ verify(self.mail_service).archive_mail('1')
+ verify(self.mail_service).archive_mail('2')
+
+ d.addCallback(assert_response)
+ return d