def test_basic_encryption(self): e = Factory.rand_str() historical_event = HistoricalEvent.objects.create() historical_event.event_data = e historical_event.save() historical_event = None historical_event = HistoricalEvent.objects.all()[0] self.assertEquals(historical_event.event_data, e) e = "😀💌❤️" historical_event = HistoricalEvent.objects.create() historical_event.event_data = e historical_event.save() historical_event = None historical_event = HistoricalEvent.objects.all()[0] self.assertEquals(historical_event.event_data, e) e = Factory.rand_text() historical_event = HistoricalEvent.objects.create() historical_event.event_data = e historical_event.save() historical_event = None historical_event = HistoricalEvent.objects.all()[0] self.assertEquals(historical_event.event_data, e) e = Factory.rand_email() historical_event = HistoricalEvent.objects.create() historical_event.event_data = e historical_event.save() historical_event = None historical_event = HistoricalEvent.objects.all()[0] self.assertEquals(historical_event.event_data, e)
def test_basic_body_override_page_renders(self): t = Factory.template(body_override=Factory.rand_text(), ) self.page = Factory.page(template=t, ) rendered = self.page.rendered self.assertEquals( rendered, """<!doctype html > <html itemscope itemtype="http://schema.org/CreativeWork" class="%(html_extra_classes)s" lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title>%(title)s</title> <meta name="description" content="%(description)s"> <!-- Open Graph data --> <meta property="og:title" content="%(title)s" /> <meta property="og:type" content="article" /> <meta property="og:url" content="" /> <meta property="og:image" content="" /> <meta property="og:description" content="%(description)s" /> <meta property="og:site_name" content="" /> <link rel="canonical" href="" /> <meta property="article:published_time" content="" /> <meta property="article:modified_time" content="" /> <meta property="article:section" content="Writing" /> <meta property="article:tag" content="Writing" /> <!-- Schema.org markup for Google+ --> <meta itemprop="name" content="%(title)s"> <meta itemprop="description" content="%(description)s"> <meta itemprop="author" content=""> <meta itemprop="provider" content=""> %(css)s <script> window.inkshop = window.inkshop || {}; window.inkshop.site_data; </script> %(inkdots)s </head> <body > %(body_override)s %(js)s </body> </html>""" % { "title": self.page.title, "description": self.page.description, "css": self.page.template.css, "js": self.page.template.js, "html_extra_classes": self.page.template.html_extra_classes, "body_override": self.page.template.body_override, "inkdots": inkdots_template, })
def test_template_body_override_works(self): self.template = Factory.template(body_override=Factory.rand_text()) t = get_template(self.template.name) rendered = t.render({}) self.assertIn(self.template.body_override, rendered) self.assertNotIn(self.template.nav, rendered) # self.assertNotIn("{{ content }}", rendered) self.assertNotIn(self.template.footer, rendered)
def test_hard_bounce_repeated_leaves_hard_bounced(self): s = Factory.subscription() p = s.person self.assertEquals(p.hard_bounced, False) self.assertEquals(p.hard_bounced_at, None) self.assertEquals(p.hard_bounced_message, None) bounce_reason = Factory.rand_text() p.hard_bounce(bounce_reason) self.assertEquals(p.hard_bounced, True) self.assertNotEquals(p.hard_bounced_at, None) self.assertEquals(p.hard_bounce_reason, bounce_reason) first_ban_at = p.hard_bounced_at new_bounce_reason = Factory.rand_text() p.hard_bounce(new_bounce_reason) self.assertEquals(p.hard_bounced, True) self.assertNotEquals(p.hard_bounced_at, first_ban_at) self.assertEquals(p.hard_bounce_reason, new_bounce_reason)
def test_basic_encryption(self): e = Factory.rand_str(include_emoji=False) self.assertEquals(e, decrypt(encrypt(e))) e = "😀💌❤️" self.assertEquals(e, decrypt(encrypt(e))) e = Factory.rand_text() self.assertEquals(e, decrypt(encrypt(e))) e = Factory.rand_email() self.assertEquals(e, decrypt(encrypt(e)))
def test_hard_bounce_marks_hard_bounced(self): s = Factory.subscription() p = s.person self.assertEquals(p.hard_bounced, False) self.assertEquals(p.hard_bounced_at, None) self.assertEquals(p.hard_bounced_message, None) bounce_reason = Factory.rand_text() p.hard_bounce(bounce_reason) self.assertEquals(p.hard_bounced, True) self.assertEquals(p.hard_bounced_at, None) self.assertEquals(p.hard_bounce_reason, bounce_reason)
def test_hard_bounce_stores_event_in_archive(self): s = Factory.subscription() p = s.person m = Factory.message() bounce_reason = Factory.rand_text() p.hard_bounce(reason=bounce_reason, message=m) self.assertEquals(HistoricalEvent.objects.count(), 1) h = HistoricalEvent.objects.all()[0] self.assertEquals(h.event_type, "hard_bounce") self.assertEquals(h.event_creator_type, "person") self.assertEquals(h.event_creator_pk, p.pk) self.assertEquals(h.event_creator_data, { "person": p.get_data_dict(), "reason": bounce_reason, "message": m.get_data_dict(), })