Mobilizon-Reshare-condividi.../tests/publishers/conftest.py

91 lines
2.2 KiB
Python
Raw Normal View History

from datetime import datetime, timedelta
from uuid import UUID
import pytest
from mobilizon_reshare.event.event import MobilizonEvent
from mobilizon_reshare.publishers.abstract import AbstractPublisher
from mobilizon_reshare.publishers.exceptions import PublisherError, InvalidResponse
@pytest.fixture
def test_event():
now = datetime.now()
return MobilizonEvent(
**{
"name": "TestName",
"description": "TestDescr",
"begin_datetime": now,
"end_datetime": now + timedelta(hours=1),
"mobilizon_link": "",
"mobilizon_id": UUID(int=0),
}
)
@pytest.fixture
def mock_publisher_valid(event):
class MockPublisher(AbstractPublisher):
def validate_event(self) -> None:
pass
def get_message_from_event(self) -> str:
return self.event.description
def validate_credentials(self) -> None:
pass
def validate_message(self) -> None:
pass
def _send(self, message):
pass
def _validate_response(self, response) -> None:
pass
return MockPublisher(event)
@pytest.fixture
def mock_publisher_invalid(event):
class MockPublisher(AbstractPublisher):
def validate_event(self) -> None:
raise PublisherError("Invalid event")
def get_message_from_event(self) -> str:
return ""
def validate_credentials(self) -> None:
raise PublisherError("Invalid credentials")
def validate_message(self) -> None:
raise PublisherError("Invalid message")
def _send(self, message):
pass
def _validate_response(self, response) -> None:
pass
return MockPublisher(event)
@pytest.fixture
def mock_publisher_invalid_response(mock_publisher_invalid, event):
class MockPublisher(type(mock_publisher_invalid)):
def validate_event(self) -> None:
pass
def validate_credentials(self) -> None:
pass
def validate_message(self) -> None:
pass
def _validate_response(self, response) -> None:
raise InvalidResponse("Invalid response")
return MockPublisher(event)