diff options
Diffstat (limited to 'service/test/unit')
-rw-r--r-- | service/test/unit/adapter/test_mail.py | 70 | ||||
-rw-r--r-- | service/test/unit/adapter/test_mail_service.py | 32 | ||||
-rw-r--r-- | service/test/unit/config/test_site.py | 6 |
3 files changed, 56 insertions, 52 deletions
diff --git a/service/test/unit/adapter/test_mail.py b/service/test/unit/adapter/test_mail.py index 03a37c1f..0c81bda0 100644 --- a/service/test/unit/adapter/test_mail.py +++ b/service/test/unit/adapter/test_mail.py @@ -43,7 +43,7 @@ class TestPixelatedMail(unittest.TestCase): leap_mail = test_helper.leap_mail(headers={'date': leap_mail_date}) - mail = PixelatedMail.from_soledad(*leap_mail, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(*leap_mail) self.assertEqual(str(mail.headers['Date']), leap_mail_date_in_iso_format) @@ -54,7 +54,7 @@ class TestPixelatedMail(unittest.TestCase): leap_mail = test_helper.leap_mail(headers={'received': leap_mail_received_header}) - mail = PixelatedMail.from_soledad(*leap_mail, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(*leap_mail) self.assertEqual(str(mail.headers['Date']), leap_mail_date_in_iso_format) @@ -65,7 +65,7 @@ class TestPixelatedMail(unittest.TestCase): fdoc, hdoc, bdoc = test_helper.leap_mail() del hdoc.content['date'] - mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc) self.assertEqual(str(mail.headers['Date']), leap_mail_date_in_iso_format) @@ -76,7 +76,7 @@ class TestPixelatedMail(unittest.TestCase): when(pixelated.support.date).iso_now().thenReturn(date_expected) leap_mail = test_helper.leap_mail(headers={'date': leap_mail_date}) - mail = PixelatedMail.from_soledad(*leap_mail, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(*leap_mail) self.assertEqual(str(mail.headers['Date']), date_expected) @@ -87,32 +87,10 @@ class TestPixelatedMail(unittest.TestCase): when(pixelated.support.date).iso_now().thenReturn(date_expected) leap_mail = test_helper.leap_mail(headers={'received': leap_mail_received_header}) - mail = PixelatedMail.from_soledad(*leap_mail, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(*leap_mail) self.assertEqual(mail.headers['Date'], date_expected) - @defer.inlineCallbacks - def test_update_tags_return_a_set_with_the_current_tags(self): - soledad_docs = test_helper.leap_mail(extra_headers={'X-tags': '["custom_1", "custom_2"]'}) - pixelated_mail = PixelatedMail.from_soledad(*soledad_docs, soledad_querier=self.querier) - - current_tags = yield pixelated_mail.update_tags({'custom_1', 'custom_3'}) - self.assertEquals({'custom_3', 'custom_1'}, current_tags) - - def test_mark_as_read(self): - mail = PixelatedMail.from_soledad(*test_helper.leap_mail(flags=[]), soledad_querier=self.querier) - - mail.mark_as_read() - - self.assertEquals(mail.fdoc.content['flags'], ['\\Seen']) - - def test_mark_as_not_recent(self): - mail = PixelatedMail.from_soledad(*test_helper.leap_mail(flags=['\\Recent']), soledad_querier=self.querier) - - mail.mark_as_not_recent() - - self.assertEquals(mail.fdoc.content['flags'], []) - def test_get_for_save_adds_from(self): InputMail.FROM_EMAIL_ADDRESS = 'me@pixelated.org' headers = {'Subject': 'The subject', @@ -133,7 +111,7 @@ class TestPixelatedMail(unittest.TestCase): InputMail.FROM_EMAIL_ADDRESS = 'me@pixelated.org' - mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc) _dict = mail.as_dict() @@ -173,7 +151,7 @@ class TestPixelatedMail(unittest.TestCase): InputMail.FROM_EMAIL_ADDRESS = 'me@pixelated.org' - mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc) _dict = mail.as_dict() @@ -188,7 +166,7 @@ class TestPixelatedMail(unittest.TestCase): parts['alternatives'].append({'content': 'blablabla', 'headers': {'Content-Type': 'text/plain'}}) parts['alternatives'].append({'content': '<p>blablabla</p>', 'headers': {'Content-Type': 'text/html'}}) - mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='blablabla'), parts=parts, soledad_querier=None) + mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='blablabla'), parts=parts) self.assertRegexpMatches(mail.html_body, '^<p>blablabla</p>$') self.assertRegexpMatches(mail.text_plain_body, '^blablabla$') @@ -200,7 +178,7 @@ class TestPixelatedMail(unittest.TestCase): {'content': u'content', 'headers': {u'Content-Type': u'text/plain; charset=us-ascii'}}, {'content': u'', 'headers': {u'Some info': u'info'}}]} - mail = PixelatedMail.from_soledad(None, None, None, parts=parts, soledad_querier=None) + mail = PixelatedMail.from_soledad(None, None, None, parts=parts) self.assertIsNone(mail.html_body) def test_percent_character_is_allowed_on_body(self): @@ -208,7 +186,7 @@ class TestPixelatedMail(unittest.TestCase): parts['alternatives'].append({'content': '100% happy with percentage symbol', 'headers': {'Content-Type': 'text/plain'}}) parts['alternatives'].append({'content': '<p>100% happy with percentage symbol</p>', 'headers': {'Content-Type': 'text/html'}}) - mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw="100% happy with percentage symbol"), parts=parts, soledad_querier=None) + mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw="100% happy with percentage symbol"), parts=parts) self.assertRegexpMatches(mail.text_plain_body, '([\s\S]*100%)') self.assertRegexpMatches(mail.html_body, '([\s\S]*100%)') @@ -218,7 +196,7 @@ class TestPixelatedMail(unittest.TestCase): html_headers = {'Content-Type': 'text/html; charset=utf-8', 'Content-Transfer-Encoding': 'quoted-printable'} parts = {'alternatives': [{'content': 'H=E4llo', 'headers': plain_headers}, {'content': '<p>H=C3=A4llo</p>', 'headers': html_headers}]} - mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts, soledad_querier=None) + mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts) self.assertEqual(2, len(mail.alternatives)) self.assertEquals(u'H\xe4llo', mail.text_plain_body) @@ -229,7 +207,7 @@ class TestPixelatedMail(unittest.TestCase): html_headers = {'Content-Type': 'text/html;\ncharset=utf-8', 'Content-Transfer-Encoding': 'quoted-printable'} parts = {'alternatives': [{'content': 'H=E4llo', 'headers': plain_headers}, {'content': '<p>H=C3=A4llo</p>', 'headers': html_headers}]} - mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts, soledad_querier=None) + mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts) self.assertEqual(2, len(mail.alternatives)) self.assertEquals(u'H\xe4llo', mail.text_plain_body) @@ -240,7 +218,7 @@ class TestPixelatedMail(unittest.TestCase): html_headers = {'Content-Type': 'text/html;\ncharset=utf-8', 'Content-Transfer-Encoding': 'quoted-printable'} parts = {'alternatives': [{'content': 'H=E4llo', 'headers': plain_headers}, {'content': '<p>H=C3=A4llo</p>', 'headers': html_headers}]} - mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts, soledad_querier=None) + mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts) self.assertEquals(u'H=E4llo', mail.text_plain_body) @@ -249,7 +227,7 @@ class TestPixelatedMail(unittest.TestCase): html_headers = {'Content-Type': 'text/html;\ncharset=utf-8', 'Content-Transfer-Encoding': 'quoted-printable'} parts = {'alternatives': [{'content': 'H=E4llo', 'headers': plain_headers}, {'content': '<p>H=C3=A4llo</p>', 'headers': html_headers}]} - mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts, soledad_querier=None) + mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts) self.assertEquals(u'H=E4llo', mail.text_plain_body) self.assertEquals(u'<p>H\xe4llo</p>', mail.html_body) @@ -262,7 +240,7 @@ class TestPixelatedMail(unittest.TestCase): fdoc, hdoc, bdoc = test_helper.leap_mail(flags=['\\Recent'], extra_headers=headers) - mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc) for header_label in ['To', 'Cc', 'Bcc']: for address in mail.headers[header_label]: @@ -277,7 +255,7 @@ class TestPixelatedMail(unittest.TestCase): fdoc, hdoc, bdoc = test_helper.leap_mail() parts = {'alternatives': []} parts['alternatives'].append({'content': encoded_body, 'headers': {'Content-Transfer-Encoding': 'base64'}}) - mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier, parts=parts) + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, parts=parts) self.assertEquals(body, mail.text_plain_body) @@ -288,7 +266,7 @@ class TestPixelatedMail(unittest.TestCase): fdoc, hdoc, bdoc = test_helper.leap_mail() parts = {'alternatives': []} parts['alternatives'].append({'content': encoded_body, 'headers': {'Content-Transfer-Encoding': '7bit'}}) - mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier, parts=parts) + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, parts=parts) self.assertEquals(body, mail.text_plain_body) @@ -299,7 +277,7 @@ class TestPixelatedMail(unittest.TestCase): fdoc, hdoc, bdoc = test_helper.leap_mail() parts = {'alternatives': []} parts['alternatives'].append({'content': encoded_body, 'headers': {'Content-Transfer-Encoding': '8bit'}}) - mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier, parts=parts) + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, parts=parts) self.assertEquals(body, mail.text_plain_body) @@ -310,10 +288,10 @@ class TestPixelatedMail(unittest.TestCase): bounced_leap_mail = test_helper.leap_mail() bounced_leap_mail[1].content = hdoc - bounced_mail = PixelatedMail.from_soledad(*bounced_leap_mail, soledad_querier=self.querier) + bounced_mail = PixelatedMail.from_soledad(*bounced_leap_mail) not_bounced_leap_mail = test_helper.leap_mail() - not_bounced_mail = PixelatedMail.from_soledad(*not_bounced_leap_mail, soledad_querier=self.querier) + not_bounced_mail = PixelatedMail.from_soledad(*not_bounced_leap_mail) self.assertTrue(bounced_mail.bounced) self.assertIn('this_mail_was_bounced@domain.com', bounced_mail.bounced) @@ -334,10 +312,10 @@ class TestPixelatedMail(unittest.TestCase): temporary_bounced_leap_mail = test_helper.leap_mail() temporary_bounced_leap_mail[1].content = hdoc - temporary_bounced_mail = PixelatedMail.from_soledad(*temporary_bounced_leap_mail, soledad_querier=self.querier) + temporary_bounced_mail = PixelatedMail.from_soledad(*temporary_bounced_leap_mail) not_bounced_leap_mail = test_helper.leap_mail() - not_bounced_mail = PixelatedMail.from_soledad(*not_bounced_leap_mail, soledad_querier=self.querier) + not_bounced_mail = PixelatedMail.from_soledad(*not_bounced_leap_mail) self.assertFalse(temporary_bounced_mail.bounced) self.assertFalse(not_bounced_mail.bounced) @@ -369,7 +347,7 @@ class TestPixelatedMail(unittest.TestCase): leap_mail = test_helper.leap_mail(extra_headers={'Subject': subject, 'From': email_from, 'To': email_to, 'Cc': email_cc, 'Bcc': email_bcc}) - mail = PixelatedMail.from_soledad(*leap_mail, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(*leap_mail) self.assertEqual(str(mail.headers['Subject']), 'test encoding St\xc3\xa4ch') self.assertEqual(str(mail.headers['From']), 'St\xc3\xa4ch <stach@pixelated-project.org>') @@ -385,7 +363,7 @@ class TestPixelatedMail(unittest.TestCase): leap_mail = test_helper.leap_mail(extra_headers={'From': leap_mail_from, 'Subject': "some subject", 'To': leap_mail_to}) - mail = PixelatedMail.from_soledad(*leap_mail, soledad_querier=self.querier) + mail = PixelatedMail.from_soledad(*leap_mail) mail.headers['From'].encode('ascii') self.assertEqual(mail.headers['To'], ['"sme mluds" <lisa5@dev.pixelated-project.org>', '"sme mluds" <lisa5@dev.pixelated-project.org>']) diff --git a/service/test/unit/adapter/test_mail_service.py b/service/test/unit/adapter/test_mail_service.py index 30784769..5c035fc8 100644 --- a/service/test/unit/adapter/test_mail_service.py +++ b/service/test/unit/adapter/test_mail_service.py @@ -27,7 +27,6 @@ from twisted.internet import defer class TestMailService(unittest.TestCase): def setUp(self): self.drafts = mock() - self.querier = mock() self.mail_store = mock() self.mailboxes = mock() @@ -38,7 +37,7 @@ class TestMailService(unittest.TestCase): self.mail_sender = mock() self.search_engine = mock() - self.mail_service = MailService(self.mail_sender, self.mail_store, self.querier, self.search_engine) + self.mail_service = MailService(self.mail_sender, self.mail_store, self.search_engine) def tearDown(self): unstub() @@ -105,14 +104,26 @@ class TestMailService(unittest.TestCase): @defer.inlineCallbacks def test_mark_as_read(self): - mail = LeapMail('id', 'INBOX') - when(self.mail_store).get_mail(ANY(), include_body=True).thenReturn(mail) + mail = LeapMail(1, 'INBOX') + when(self.mail_store).get_mail(1, include_body=True).thenReturn(mail) yield self.mail_service.mark_as_read(1) self.assertIn(Status.SEEN, mail.flags) verify(self.mail_store).update_mail(mail) @defer.inlineCallbacks + def test_mark_as_unread(self): + mail = LeapMail(1, 'INBOX') + mail.flags.add(Status.SEEN) + + when(self.mail_store).get_mail(1, include_body=True).thenReturn(mail) + yield self.mail_service.mark_as_unread(1) + + verify(self.mail_store).update_mail(mail) + + self.assertNotEqual(mail.status, Status.SEEN) + + @defer.inlineCallbacks def test_delete_mail(self): mail_to_delete = LeapMail(1, 'INBOX') when(self.mail_store).get_mail(1, include_body=True).thenReturn(defer.succeed(mail_to_delete)) @@ -123,7 +134,7 @@ class TestMailService(unittest.TestCase): @defer.inlineCallbacks def test_recover_mail(self): - mail_to_recover = PixelatedMail.from_soledad(*leap_mail(), soledad_querier=None) + mail_to_recover = PixelatedMail.from_soledad(*leap_mail()) when(self.mail_service).mail(1).thenReturn(mail_to_recover) when(self.mail_store).move_mail_to_mailbox(1, 'INBOX').thenReturn(mail_to_recover) @@ -139,3 +150,14 @@ class TestMailService(unittest.TestCase): attachment = yield self.mail_service.attachment('some attachment id') self.assertEqual(attachment_dict, attachment) + + @defer.inlineCallbacks + def test_update_tags_return_a_set_with_the_current_tags(self): + mail = LeapMail(1, 'INBOX', tags={'custom_1', 'custom_2'}) + when(self.mail_store).get_mail(1, include_body=True).thenReturn(mail) + when(self.search_engine).tags(query='', skip_default_tags=True).thenReturn([]) + + updated_mail = yield self.mail_service.update_tags(1, {'custom_1', 'custom_3'}) + + verify(self.mail_store).update_mail(mail) + self.assertEqual({'custom_1', 'custom_3'}, updated_mail.tags) diff --git a/service/test/unit/config/test_site.py b/service/test/unit/config/test_site.py index 77d42ed8..1858bfaf 100644 --- a/service/test/unit/config/test_site.py +++ b/service/test/unit/config/test_site.py @@ -9,7 +9,11 @@ class TestPixelatedSite(unittest.TestCase): request = self.create_request() request.process() headers = request.headers - self.assertEqual(headers.get("Content-Security-Policy"), "default-src 'self'; style-src 'self' 'unsafe-inline'") + + header_value = "default-src 'self'; style-src 'self' 'unsafe-inline'" + self.assertEqual(headers.get("Content-Security-Policy"), header_value) + self.assertEqual(headers.get("X-Content-Security-Policy"), header_value) + self.assertEqual(headers.get("X-Webkit-CSP"), header_value) def create_request(self): channel = LineReceiver() |