Fix missing handle and guids in Diaspora mappers

merge-requests/131/head
Jason Robinson 2018-08-26 22:23:23 +03:00
rodzic 89ba3f345b
commit 7687bdd69e
2 zmienionych plików z 10 dodań i 3 usunięć

Wyświetl plik

@ -175,20 +175,25 @@ def transform_attributes(attrs, cls):
# Diaspora Profile XML message contains no GUID. We need the guid. Fetch it.
profile = retrieve_and_parse_profile(value)
transformed["id"] = profile.id
transformed["handle"] = value
transformed["guid"] = profile.guid
else:
transformed["actor_id"] = generate_diaspora_profile_id(value)
transformed["actor_id"] = generate_diaspora_profile_id(value, attrs.get('guid'))
transformed["guid"] = attrs.get('guid')
transformed["handle"] = value
elif key == 'guid':
if cls != DiasporaProfile:
transformed["id"] = generate_diaspora_id(attrs.get('author'), cls._tag_name, value)
transformed["guid"] = value
elif key == "recipient":
transformed["target_id"] = generate_diaspora_profile_id(value)
elif key == "root_author":
transformed["target_id"] = generate_diaspora_id(value, cls._tag_name, attrs.get('root_guid'))
elif key == "parent_guid":
transformed["target_id"] = generate_diaspora_id("", cls._tag_name, value)
transformed["target_guid"] = value
elif key == "target_guid":
transformed["target_id"] = generate_diaspora_id(attrs.get("author"), cls._tag_name, value)
transformed["target_guid"] = value
elif key in ("first_name", "last_name"):
values = [attrs.get('first_name'), attrs.get('last_name')]
values = [v for v in values if v]

Wyświetl plik

@ -209,7 +209,9 @@ class TestDiasporaEntityMappersReceive:
def test_element_to_objects_calls_sender_key_fetcher(self, mock_validate):
mock_fetcher = Mock()
message_to_objects(DIASPORA_POST_COMMENT, "diaspora://alice@alice.diaspora.example.org/profile/", mock_fetcher)
mock_fetcher.assert_called_once_with("diaspora://alice@alice.diaspora.example.org/profile/")
mock_fetcher.assert_called_once_with(
"diaspora://alice@alice.diaspora.example.org/profile/((guidguidguidguidguidguid))",
)
@patch("federation.entities.diaspora.mappers.DiasporaComment._validate_signatures")
@patch("federation.entities.diaspora.mappers.retrieve_and_parse_profile")