From a820eeb57a9ec891fcb0404f19d32423b05f4d5d Mon Sep 17 00:00:00 2001 From: Ryan Barrett Date: Sun, 5 Feb 2023 08:17:22 -0800 Subject: [PATCH] Activity => Object: temporarily disable inner object rendering ...until we're storing inner objects everywhere. --- render.py | 22 ++++++++++++---------- tests/test_render.py | 3 +++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/render.py b/render.py index 662567a..a5877e9 100644 --- a/render.py +++ b/render.py @@ -30,16 +30,18 @@ def render(): error(f'Stored object for {id} has no AS1', status=404) as1 = json_loads(obj.as1) - if (as1.get('objectType') == 'activity' and - as1.get('verb') in ('post', 'update', 'delete')): - # redirect to inner object - obj_id = as1.get('object') - if isinstance(obj_id, dict): - obj_id = obj_id.get('id') - if not obj_id: - error(f'Stored {type} activity has no object id!', status=404) - logger.info(f'{type} activity, redirecting to object id {obj_id}') - return redirect('/render?' + urlencode({'id': obj_id}), code=301) + + # TODO: uncomment once we're storing inner objects separately + # if (as1.get('objectType') == 'activity' and + # as1.get('verb') in ('post', 'update', 'delete')): + # # redirect to inner object + # obj_id = as1.get('object') + # if isinstance(obj_id, dict): + # obj_id = obj_id.get('id') + # if not obj_id: + # error(f'Stored {type} activity has no object id!', status=404) + # logger.info(f'{type} activity, redirecting to object id {obj_id}') + # return redirect('/render?' + urlencode({'id': obj_id}), code=301) # add HTML meta redirect to source page. should trigger for end users in # browsers but not for webmention receivers (hopefully). diff --git a/tests/test_render.py b/tests/test_render.py index 0a2d974..9ceb9ae 100644 --- a/tests/test_render.py +++ b/tests/test_render.py @@ -1,6 +1,7 @@ # coding=utf-8 """Unit tests for render.py.""" import copy +from unittest import skip from granary.tests.test_as1 import COMMENT, DELETE_OF_ID, UPDATE from oauth_dropins.webutil.util import json_dumps @@ -64,6 +65,7 @@ class RenderTest(testutil.TestCase): self.assert_multiline_equals(expected, resp.get_data(as_text=True), ignore_blanks=True) + @skip def test_render_update_redirect(self): # UPDATE's object field is a full object Object(id='abc', as1=json_dumps(UPDATE)).put() @@ -72,6 +74,7 @@ class RenderTest(testutil.TestCase): self.assertEqual(f'/render?id=tag%3Afake.com%3A123456', resp.headers['Location']) + @skip def test_render_delete_redirect(self): # DELETE_OF_ID's object field is a bare string id Object(id='abc', as1=json_dumps(DELETE_OF_ID)).put()