def setUp(self): self.formatter = EmailFormatter() # self.base_formatter = Formatter() init_app(self.app)
class EmailFormatterTest(TestCase): def setUp(self): self.formatter = EmailFormatter() # self.base_formatter = Formatter() init_app(self.app) def test_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': [{'qcode': 'VIC', 'name': 'VIC'}], 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>VIC: This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'VIC: This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story' ' body of the story so far\n\nAAP aa/bb\n') def test_preserved_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'preserved', 'type': 'text', 'body_html': 'The story body of the story so far', 'word_count': '1', 'priority': 1, 'place': [{'qcode': 'VIC', 'name': 'VIC'}], 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], None) def test_no_place_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story' ' body of the story so far\n\nAAP aa/bb\n') def test_none_place_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': None, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The' ' story body of the story so far\n\nAAP aa/bb\n') def test_none_takekey_ednote(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': None, 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': None, 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': None, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> \n<hr>\n' '\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline \n\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story' ' body of the story so far\n\nAAP aa/bb\n') def test_subject_cyrilic(self): article = {'headline': 'Неправильная музыка Джамала Али'} seq, doc = self.formatter.format(article, {'name': 'Test'})[0] item = json.loads(doc) self.assertEqual(article['headline'], item['message_subject']) def test_paragraphs(self): """Test that paragraphs (block elements) are followed by line feed in text version SDESK-824 regression test """ article = { 'source': 'AAP', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>paragraph 1</p><br><br><p>paragraph 2</p><p>paragraph 3</p>', 'word_count': '1', 'priority': 1, 'place': [{'qcode': 'VIC', 'name': 'VIC'}], 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2017, month=2, day=24, hour=16, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_text'], 'VIC: \nPublished At : Fri Feb 24 17:40:56 2017\n' ' take\n\n--------------------------------------' '--------------------\n\n\n\nparagraph 1\n\n\n' 'paragraph 2\nparagraph 3\n\nAAP aa/bb\n') def test_dateline_html(self): """Check that message_html output is producted even without a dateline SDESK-836 regression test """ article = { 'format': 'HTML', 'type': 'text', 'body_html': '<p>some HTML</p>'} _, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertIsNotNone(item['message_html'])
class EmailFormatterTest(SuperdeskTestCase): def setUp(self): super().setUp() self.formatter = EmailFormatter() # self.base_formatter = Formatter() init_app(self.app) def test_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': [{'qcode': 'VIC', 'name': 'VIC'}], 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>VIC: This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'VIC: This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n') def test_preserved_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'preserved', 'type': 'text', 'body_html': 'The story body of the story so far', 'word_count': '1', 'priority': 1, 'place': [{'qcode': 'VIC', 'name': 'VIC'}], 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], None) def test_no_place_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n') def test_none_place_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': None, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n') def test_none_takekey_ednote(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': None, 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': None, 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': None, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> \n<hr>\n' '\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline \n\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n')
class EmailFormatterTest(TestCase): def setUp(self): self.formatter = EmailFormatter() # self.base_formatter = Formatter() init_app(self.app) def test_formatter(self): article = { "source": "AAP", "headline": "This is a test headline", "abstract": "Can of beans", "byline": "joe", "ednote": "Very good story", "dateline": {"text": "BERN, July 13 -"}, "slugline": "slugline", "anpa_take_key": "take", "subject": [{"qcode": "02011001"}], "format": "HTML", "type": "text", "body_html": "<p>The story body of the story so far</p>", "word_count": "1", "priority": 1, "place": [{"qcode": "VIC", "name": "VIC"}], "genre": [], "sign_off": "aa/bb", } article["versioncreated"] = datetime.datetime( year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc ) seq, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertEqual(item["message_subject"], "This is a test headline") self.assertEqual( item["message_html"], "<html>\n<body>\n<h1>VIC: This is a test headline</h1>\n" "Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline" "</b> take \n" '<hr>\n<br><font color="red">Very good story</font>' "<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n" "<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n" "AAP aa/bb\n\n</body>\n</html>", ) self.assertEqual( item["message_text"], "VIC: This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n" "slugline take\nVery good story\n------------------------------------" "----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story" " body of the story so far\n\nAAP aa/bb\n", ) def test_preserved_formatter(self): article = { "source": "AAP", "headline": "This is a test headline", "abstract": "Can of beans", "byline": "joe", "dateline": {"text": "BERN, July 13 -"}, "slugline": "slugline", "anpa_take_key": "take", "subject": [{"qcode": "02011001"}], "format": "preserved", "type": "text", "body_html": "The story body of the story so far", "word_count": "1", "priority": 1, "place": [{"qcode": "VIC", "name": "VIC"}], "genre": [], "sign_off": "aa/bb", } article["versioncreated"] = datetime.datetime( year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc ) seq, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertEqual(item["message_subject"], "This is a test headline") self.assertEqual(item["message_html"], None) def test_no_place_formatter(self): article = { "source": "AAP", "headline": "This is a test headline", "abstract": "Can of beans", "byline": "joe", "ednote": "Very good story", "dateline": {"text": "BERN, July 13 -"}, "slugline": "slugline", "anpa_take_key": "take", "subject": [{"qcode": "02011001"}], "format": "HTML", "type": "text", "body_html": "<p>The story body of the story so far</p>", "word_count": "1", "priority": 1, "genre": [], "sign_off": "aa/bb", } article["versioncreated"] = datetime.datetime( year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc ) seq, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertEqual(item["message_subject"], "This is a test headline") self.assertEqual( item["message_html"], "<html>\n<body>\n<h1>This is a test headline</h1>\n" "Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline" "</b> take \n" '<hr>\n<br><font color="red">Very good story</font>' "<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n" "<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n" "AAP aa/bb\n\n</body>\n</html>", ) self.assertEqual( item["message_text"], "This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n" "slugline take\nVery good story\n------------------------------------" "----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story" " body of the story so far\n\nAAP aa/bb\n", ) def test_none_place_formatter(self): article = { "source": "AAP", "headline": "This is a test headline", "abstract": "Can of beans", "byline": "joe", "ednote": "Very good story", "dateline": {"text": "BERN, July 13 -"}, "slugline": "slugline", "anpa_take_key": "take", "subject": [{"qcode": "02011001"}], "format": "HTML", "type": "text", "body_html": "<p>The story body of the story so far</p>", "word_count": "1", "priority": 1, "place": None, "genre": [], "sign_off": "aa/bb", } article["versioncreated"] = datetime.datetime( year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc ) seq, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertEqual(item["message_subject"], "This is a test headline") self.assertEqual( item["message_html"], "<html>\n<body>\n<h1>This is a test headline</h1>\n" "Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline" "</b> take \n" '<hr>\n<br><font color="red">Very good story</font>' "<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n" "<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n" "AAP aa/bb\n\n</body>\n</html>", ) self.assertEqual( item["message_text"], "This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n" "slugline take\nVery good story\n------------------------------------" "----------------------\nCan of beans\n\njoe\nBERN, July 13 - The" " story body of the story so far\n\nAAP aa/bb\n", ) def test_none_takekey_ednote(self): article = { "source": "AAP", "headline": "This is a test headline", "abstract": "Can of beans", "byline": "joe", "ednote": None, "dateline": {"text": "BERN, July 13 -"}, "slugline": "slugline", "anpa_take_key": None, "subject": [{"qcode": "02011001"}], "format": "HTML", "type": "text", "body_html": "<p>The story body of the story so far</p>", "word_count": "1", "priority": 1, "place": None, "genre": [], "sign_off": "aa/bb", } article["versioncreated"] = datetime.datetime( year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc ) seq, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertEqual(item["message_subject"], "This is a test headline") self.assertEqual( item["message_html"], "<html>\n<body>\n<h1>This is a test headline</h1>\n" "Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline" "</b> \n<hr>\n" "\n<i>Can of beans</i>\n<br>joe\n<br>\n" "<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n" "AAP aa/bb\n\n</body>\n</html>", ) self.assertEqual( item["message_text"], "This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n" "slugline \n\n------------------------------------" "----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story" " body of the story so far\n\nAAP aa/bb\n", ) def test_subject_cyrilic(self): article = {"headline": "Неправильная музыка Джамала Али"} seq, doc = self.formatter.format(article, {"name": "Test"})[0] item = json.loads(doc) self.assertEqual(article["headline"], item["message_subject"]) def test_paragraphs(self): """Test that paragraphs (block elements) are followed by line feed in text version SDESK-824 regression test """ article = { "source": "AAP", "anpa_take_key": "take", "subject": [{"qcode": "02011001"}], "format": "HTML", "type": "text", "body_html": "<p>paragraph 1</p><br><br><p>paragraph 2</p><p>paragraph 3</p>", "word_count": "1", "priority": 1, "place": [{"qcode": "VIC", "name": "VIC"}], "genre": [], "sign_off": "aa/bb", } article["versioncreated"] = datetime.datetime( year=2017, month=2, day=24, hour=16, minute=40, second=56, tzinfo=utc ) seq, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertEqual( item["message_text"], "VIC: \nPublished At : Fri Feb 24 17:40:56 2017\n" " take\n\n--------------------------------------" "--------------------\n\n\n\nparagraph 1\n\n\n" "paragraph 2\nparagraph 3\n\nAAP aa/bb\n", ) def test_dateline_html(self): """Check that message_html output is producted even without a dateline SDESK-836 regression test """ article = {"format": "HTML", "type": "text", "body_html": "<p>some HTML</p>"} _, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertIsNotNone(item["message_html"]) def test_featuremedia(self): article = { "source": "AAP", "anpa_take_key": "take", "subject": [{"qcode": "02011001"}], "format": "HTML", "type": "text", "body_html": "<p>Test</p>", "word_count": "1", "priority": 1, "place": [{"qcode": "VIC", "name": "VIC"}], "genre": [], "sign_off": "aa/bb", "associations": { "featuremedia": { "archive_description": "A woman crosses Bourke Street Mall", "renditions": { "viewImage": { "poi": {"y": 257, "x": 454}, "href": "http://localhost:5000/api/upload-raw/5c11ece81d41c89113ed202b?_schema=http", "media": "5c11ece81d41c89113ed202b", "height": 390, "mimetype": "image/jpeg", "width": 640, } }, } }, } article["versioncreated"] = datetime.datetime( year=2017, month=2, day=24, hour=16, minute=40, second=56, tzinfo=utc ) seq, doc = self.formatter.format(article, {"name": "Test Subscriber"})[0] item = json.loads(doc) self.assertEqual(item["renditions"]["viewImage"]["media"], "5c11ece81d41c89113ed202b")
class EmailFormatterTest(TestCase): def setUp(self): self.formatter = EmailFormatter() # self.base_formatter = Formatter() init_app(self.app) def test_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': [{'qcode': 'VIC', 'name': 'VIC'}], 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>VIC: This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'VIC: This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n') def test_preserved_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'preserved', 'type': 'text', 'body_html': 'The story body of the story so far', 'word_count': '1', 'priority': 1, 'place': [{'qcode': 'VIC', 'name': 'VIC'}], 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], None) def test_no_place_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n') def test_none_place_formatter(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': 'Very good story', 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': 'take', 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': None, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> take \n' '<hr>\n<br><font color="red">Very good story</font>' '<br>\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline take\nVery good story\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n') def test_none_takekey_ednote(self): article = { 'source': 'AAP', 'headline': 'This is a test headline', 'abstract': 'Can of beans', 'byline': 'joe', 'ednote': None, 'dateline': {'text': 'BERN, July 13 -'}, 'slugline': 'slugline', 'anpa_take_key': None, 'subject': [{'qcode': '02011001'}], 'format': 'HTML', 'type': 'text', 'body_html': '<p>The story body of the story so far</p>', 'word_count': '1', 'priority': 1, 'place': None, 'genre': [], 'sign_off': 'aa/bb' } article['versioncreated'] = datetime.datetime(year=2015, month=1, day=30, hour=2, minute=40, second=56, tzinfo=utc) seq, doc = self.formatter.format(article, {'name': 'Test Subscriber'})[0] item = json.loads(doc) self.assertEqual(item['message_subject'], 'This is a test headline') self.assertEqual(item['message_html'], '<html>\n<body>\n<h1>This is a test headline</h1>\n' 'Published At : Fri Jan 30 03:40:56 2015\n<br>\n<b>slugline' '</b> \n<hr>\n' '\n<i>Can of beans</i>\n<br>joe\n<br>\n' '<p>BERN, July 13 - The story body of the story so far</p>\n<br>\n' 'AAP aa/bb\n\n</body>\n</html>') self.assertEqual(item['message_text'], 'This is a test headline\nPublished At : Fri Jan 30 03:40:56 2015\n' 'slugline \n\n------------------------------------' '----------------------\nCan of beans\n\njoe\nBERN, July 13 - The story ' 'body of the story so far\nAAP aa/bb\n')