summaryrefslogtreecommitdiff
path: root/service/test/unit/resources/test_mails_resource.py
diff options
context:
space:
mode:
authormnandri <mnandri@eunglick.corporate.thoughtworks.com>2015-12-18 18:24:52 +0100
committermnandri <mnandri@eunglick.corporate.thoughtworks.com>2015-12-18 18:59:29 +0100
commit8b61b34f1ed71c04afbeeb45f08a65d35a18423d (patch)
treeb0afa8b8004f541e952745e57548fc613a043ce9 /service/test/unit/resources/test_mails_resource.py
parentb73185d27fe5d59d64b0759c1efbbcdf89086d11 (diff)
adapting mail controllers POST and PUT to work with attachements
Issue #548
Diffstat (limited to 'service/test/unit/resources/test_mails_resource.py')
-rw-r--r--service/test/unit/resources/test_mails_resource.py47
1 files changed, 46 insertions, 1 deletions
diff --git a/service/test/unit/resources/test_mails_resource.py b/service/test/unit/resources/test_mails_resource.py
index 02b17bf1..44aebd4d 100644
--- a/service/test/unit/resources/test_mails_resource.py
+++ b/service/test/unit/resources/test_mails_resource.py
@@ -24,7 +24,7 @@ from twisted.internet import defer
from mock import patch
-class TestArchiveResource(unittest.TestCase):
+class TestMailsResource(unittest.TestCase):
def setUp(self):
self.mail_service = mock()
@@ -49,3 +49,48 @@ class TestArchiveResource(unittest.TestCase):
d.addCallback(assert_response)
return d
+
+ @patch('leap.common.events.register')
+ def test_render_PUT_should_store_draft_with_attachments(self, mock_register):
+ request = DummyRequest(['/mails'])
+ request.method = 'PUT'
+ content = mock()
+ when(content).read().thenReturn('{"attachments": [{"id": "some fake attachment id"}]}')
+ when(self.mail_service).attachment('some fake attachment id').thenReturn(defer.Deferred())
+ request.content = content
+
+ mails_resource = MailsResource(self.mail_service, mock())
+ mails_resource.isLeaf = True
+ web = DummySite(mails_resource)
+ d = web.get(request)
+
+ def assert_response(_):
+ verify(self.mail_service).attachment('some fake attachment id')
+
+ d.addCallback(assert_response)
+ return d
+
+ @patch('leap.common.events.register')
+ def test_render_POST_should_send_email_with_attachments(self, mock_register):
+ request = DummyRequest(['/mails'])
+ request.method = 'POST'
+ content = mock()
+ when(content).read().thenReturn('{"attachments": [{"id": "some fake attachment id"}]}')
+ when(self.mail_service).attachment('some fake attachment id').thenReturn(defer.succeed({"content": "some content"}))
+ as_dictable = mock()
+ when(as_dictable).as_dict().thenReturn({})
+ when(self.mail_service).send_mail({"attachments": [{"id": "some fake attachment id", "raw": "some content"}]})\
+ .thenReturn(defer.succeed(as_dictable))
+ request.content = content
+
+ mails_resource = MailsResource(self.mail_service, mock())
+ mails_resource.isLeaf = True
+ web = DummySite(mails_resource)
+ d = web.get(request)
+
+ def assert_response(_):
+ verify(self.mail_service).attachment('some fake attachment id')
+ verify(self.mail_service).send_mail({"attachments": [{"id": "some fake attachment id", "raw": "some content"}]})
+
+ d.addCallback(assert_response)
+ return d