Improve tests for relayable signing and verification

merge-requests/130/head
Jason Robinson 2017-05-01 11:36:06 +03:00
rodzic 0a80f17334
commit 2a3700b518
2 zmienionych plików z 37 dodań i 2 usunięć

Wyświetl plik

@ -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")

Wyświetl plik

@ -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):