kopia lustrzana https://gitlab.com/jaywink/federation
Improve tests for relayable signing and verification
rodzic
0a80f17334
commit
2a3700b518
|
@ -7,6 +7,7 @@ from federation.entities.base import Profile
|
|||
from federation.entities.diaspora.entities import (
|
||||
DiasporaComment, DiasporaPost, DiasporaLike, DiasporaRequest, DiasporaProfile, DiasporaRetraction,
|
||||
)
|
||||
from federation.exceptions import SignatureVerificationError
|
||||
from federation.tests.fixtures.keys import get_dummy_private_key
|
||||
|
||||
|
||||
|
@ -127,3 +128,25 @@ class TestDiasporaRelayableEntitySigning():
|
|||
"Q0t-vWGl8cgSS0_34mvvqX-HKUdmun2vQ50bPckNLoj3hDI6HcmZ8qFf_xx8y1BbE0zx5rTo7yOlWq8Y" \
|
||||
"sC28oRHqHpIzOfhkIHyt-hOjO_mpuZLd7qOPfIySnGW6hM1iKewoJVDuVMN5w5VB46ETRum8JpvTQO8i" \
|
||||
"DPB-ZqbqcEasfm2CQIxVLA=="
|
||||
|
||||
|
||||
class TestDiasporaRelayableEntityValidate():
|
||||
def test_raises_if_no_sender_key(self):
|
||||
entity = DiasporaComment()
|
||||
with pytest.raises(SignatureVerificationError):
|
||||
entity._validate_signatures()
|
||||
|
||||
@patch("federation.entities.diaspora.entities.verify_relayable_signature")
|
||||
def test_calls_verify_signature(self, mock_verify):
|
||||
entity = DiasporaComment()
|
||||
entity._sender_key = "key"
|
||||
entity._source_object = "obj"
|
||||
entity.signature = "sig"
|
||||
mock_verify.return_value = False
|
||||
with pytest.raises(SignatureVerificationError):
|
||||
entity._validate_signatures()
|
||||
mock_verify.assert_called_once_with("key", "obj", "sig")
|
||||
mock_verify.reset_mock()
|
||||
mock_verify.return_value = True
|
||||
entity._validate_signatures()
|
||||
mock_verify.assert_called_once_with("key", "obj", "sig")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from datetime import datetime
|
||||
from unittest.mock import patch
|
||||
from unittest.mock import patch, Mock
|
||||
|
||||
import pytest
|
||||
|
||||
|
@ -89,7 +89,7 @@ class TestDiasporaEntityMappersReceive(object):
|
|||
assert comment.signature == "((signature))"
|
||||
mock_validate.assert_called_once_with()
|
||||
|
||||
@patch("federation.entities.diaspora.mappers.DiasporaComment._validate_signatures")
|
||||
@patch("federation.entities.diaspora.mappers.DiasporaLike._validate_signatures")
|
||||
def test_message_to_objects_like(self, mock_validate):
|
||||
entities = message_to_objects(DIASPORA_POST_LIKE)
|
||||
assert len(entities) == 1
|
||||
|
@ -158,6 +158,18 @@ class TestDiasporaEntityMappersReceive(object):
|
|||
entities = message_to_objects(DIASPORA_POST_SIMPLE)
|
||||
assert entities[0]._source_protocol == "diaspora"
|
||||
|
||||
@patch("federation.entities.diaspora.mappers.DiasporaComment._validate_signatures")
|
||||
def test_element_to_objects_calls_sender_key_fetcher(self, mock_validate):
|
||||
mock_fetcher = Mock()
|
||||
message_to_objects(DIASPORA_POST_COMMENT, mock_fetcher)
|
||||
mock_fetcher.assert_called_once_with("alice@alice.diaspora.example.org")
|
||||
|
||||
@patch("federation.entities.diaspora.mappers.DiasporaComment._validate_signatures")
|
||||
@patch("federation.entities.diaspora.mappers.retrieve_and_parse_profile")
|
||||
def test_element_to_objects_calls_retrieve_remote_profile(self, mock_retrieve, mock_validate):
|
||||
message_to_objects(DIASPORA_POST_COMMENT)
|
||||
mock_retrieve.assert_called_once_with("alice@alice.diaspora.example.org")
|
||||
|
||||
|
||||
class TestGetOutboundEntity(object):
|
||||
def test_already_fine_entities_are_returned_as_is(self):
|
||||
|
|
Ładowanie…
Reference in New Issue