From 8b61b34f1ed71c04afbeeb45f08a65d35a18423d Mon Sep 17 00:00:00 2001 From: mnandri Date: Fri, 18 Dec 2015 18:24:52 +0100 Subject: adapting mail controllers POST and PUT to work with attachements Issue #548 --- service/test/unit/resources/test_mails_resource.py | 47 +++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'service/test/unit/resources/test_mails_resource.py') 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 -- cgit v1.2.3