# coding=utf-8 """Unit tests for render.py.""" from oauth_dropins.webutil.util import json_dumps from models import Activity import render from . import testutil class RenderTest(testutil.TestCase): def setUp(self): super().setUp() self.as2 = { '@context': 'https://www.w3.org/ns/activitystreams', 'type': 'Note', 'id': 'http://this/reply', 'url': 'http://this/reply', 'content': 'A ☕ reply', 'inReplyTo': 'http://orig/post', } self.mf2 = { 'type': ['h-entry'], 'properties': { 'uid': ['http://this/reply'], 'url': ['http://this/reply'], 'content': [{'value': 'A ☕ reply'}], 'in-reply-to': ['http://orig/post'], }, } self.atom = """\ http://this/reply A ☕ reply """ self.html = """\
http://this/reply http://this/reply
A ☕ reply
""" def test_render_errors(self): for source, target in ('', ''), ('abc', ''), ('', 'xyz'): resp = self.client.get(f'/render?source={source}&target={target}') self.assertEqual(400, resp.status_code, resp.get_data(as_text=True)) # no Activity resp = self.client.get('/render?source=abc&target=xyz') self.assertEqual(404, resp.status_code) # no source data Activity(id='abc xyz').put() resp = self.client.get('/render?source=abc&target=xyz') self.assertEqual(404, resp.status_code) def test_render_as2(self): Activity(id='abc xyz', source_as2=json_dumps(self.as2)).put() resp = self.client.get('/render?source=abc&target=xyz') self.assertEqual(200, resp.status_code) self.assert_multiline_equals(self.html, resp.get_data(as_text=True), ignore_blanks=True) def test_render_mf2(self): Activity(id='abc xyz', source_mf2=json_dumps(self.mf2)).put() resp = self.client.get('/render?source=abc&target=xyz') self.assertEqual(200, resp.status_code) self.assert_multiline_equals(self.html, resp.get_data(as_text=True), ignore_blanks=True) def test_render_atom(self): Activity(id='abc xyz', source_atom=self.atom).put() resp = self.client.get('/render?source=abc&target=xyz') self.assertEqual(200, resp.status_code) self.assert_multiline_equals(self.html, resp.get_data(as_text=True), ignore_blanks=True)