From fff9f0acd774e1f668aa7c1ea71e4ad73c7f91fc Mon Sep 17 00:00:00 2001 From: Simone Robutti Date: Sat, 3 Dec 2022 14:21:27 +0100 Subject: [PATCH] moved publications to dataclasses module --- mobilizon_reshare/cli/cli.py | 2 +- .../cli/commands/format/format.py | 2 +- .../cli/commands/list/list_event.py | 4 +- mobilizon_reshare/dataclasses/__init__.py | 0 .../{event => dataclasses}/event.py | 0 mobilizon_reshare/dataclasses/publication.py | 40 ++++++++ .../event/event_selection_strategies.py | 2 +- mobilizon_reshare/main/publish.py | 4 +- mobilizon_reshare/main/pull.py | 2 +- mobilizon_reshare/main/recap.py | 4 +- mobilizon_reshare/mobilizon/events.py | 2 +- mobilizon_reshare/publishers/abstract.py | 36 +------ .../coordinators/event_publishing/__init__.py | 2 +- .../coordinators/event_publishing/publish.py | 2 +- .../coordinators/recap_publishing/recap.py | 2 +- .../publishers/platforms/facebook.py | 2 +- .../publishers/platforms/mastodon.py | 2 +- .../publishers/platforms/telegram.py | 2 +- .../publishers/platforms/twitter.py | 2 +- .../publishers/platforms/zulip.py | 2 +- mobilizon_reshare/storage/query/read.py | 4 +- mobilizon_reshare/storage/query/write.py | 2 +- tests/commands/test_list.py | 2 +- tests/commands/test_publish.py | 2 +- tests/commands/test_start.py | 2 +- tests/conftest.py | 2 +- tests/formatting/test_output_format.py | 12 +-- tests/mobilizon/test_events.py | 2 +- tests/models/test_event.py | 2 +- tests/publishers/conftest.py | 2 +- tests/publishers/test_coordinator.py | 4 +- tests/storage/test_query.py | 99 +++++++++---------- tests/storage/test_update.py | 2 +- 33 files changed, 125 insertions(+), 126 deletions(-) create mode 100644 mobilizon_reshare/dataclasses/__init__.py rename mobilizon_reshare/{event => dataclasses}/event.py (100%) create mode 100644 mobilizon_reshare/dataclasses/publication.py diff --git a/mobilizon_reshare/cli/cli.py b/mobilizon_reshare/cli/cli.py index 8777ca0..3dc0fe2 100644 --- a/mobilizon_reshare/cli/cli.py +++ b/mobilizon_reshare/cli/cli.py @@ -19,7 +19,7 @@ from mobilizon_reshare.cli.commands.start.main import start_command as start_mai from mobilizon_reshare.config.command import CommandConfig from mobilizon_reshare.config.config import current_version, get_settings from mobilizon_reshare.config.publishers import publisher_names -from mobilizon_reshare.event.event import EventPublicationStatus +from mobilizon_reshare.dataclasses.event import EventPublicationStatus from mobilizon_reshare.models.publication import PublicationStatus from mobilizon_reshare.publishers import get_active_publishers diff --git a/mobilizon_reshare/cli/commands/format/format.py b/mobilizon_reshare/cli/commands/format/format.py index 8d69bbe..5fdb551 100644 --- a/mobilizon_reshare/cli/commands/format/format.py +++ b/mobilizon_reshare/cli/commands/format/format.py @@ -1,6 +1,6 @@ import click -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.models.event import Event from mobilizon_reshare.publishers.platforms.platform_mapping import get_formatter_class diff --git a/mobilizon_reshare/cli/commands/list/list_event.py b/mobilizon_reshare/cli/commands/list/list_event.py index 3c1df56..b9a925d 100644 --- a/mobilizon_reshare/cli/commands/list/list_event.py +++ b/mobilizon_reshare/cli/commands/list/list_event.py @@ -4,8 +4,8 @@ from typing import Iterable, Optional import click from arrow import Arrow -from mobilizon_reshare.event.event import EventPublicationStatus -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import EventPublicationStatus +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.event.event_selection_strategies import select_unpublished_events from mobilizon_reshare.storage.query.read import ( get_published_events, diff --git a/mobilizon_reshare/dataclasses/__init__.py b/mobilizon_reshare/dataclasses/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mobilizon_reshare/event/event.py b/mobilizon_reshare/dataclasses/event.py similarity index 100% rename from mobilizon_reshare/event/event.py rename to mobilizon_reshare/dataclasses/event.py diff --git a/mobilizon_reshare/dataclasses/publication.py b/mobilizon_reshare/dataclasses/publication.py new file mode 100644 index 0000000..9794015 --- /dev/null +++ b/mobilizon_reshare/dataclasses/publication.py @@ -0,0 +1,40 @@ +from dataclasses import dataclass +from typing import List +from uuid import UUID + +from mobilizon_reshare.dataclasses.event import MobilizonEvent +from mobilizon_reshare.models.publication import Publication + +from mobilizon_reshare.publishers.abstract import ( + AbstractPlatform, + AbstractEventFormatter, +) + + +@dataclass +class BasePublication: + publisher: AbstractPlatform + formatter: AbstractEventFormatter + + +@dataclass +class EventPublication(BasePublication): + event: MobilizonEvent + id: UUID + + @classmethod + def from_orm(cls, model: Publication, event: MobilizonEvent): + # imported here to avoid circular dependencies + from mobilizon_reshare.publishers.platforms.platform_mapping import ( + get_publisher_class, + get_formatter_class, + ) + + publisher = get_publisher_class(model.publisher.name)() + formatter = get_formatter_class(model.publisher.name)() + return cls(publisher, formatter, event, model.id,) + + +@dataclass +class RecapPublication(BasePublication): + events: List[MobilizonEvent] diff --git a/mobilizon_reshare/event/event_selection_strategies.py b/mobilizon_reshare/event/event_selection_strategies.py index c50bdaa..5d0ed93 100644 --- a/mobilizon_reshare/event/event_selection_strategies.py +++ b/mobilizon_reshare/event/event_selection_strategies.py @@ -5,7 +5,7 @@ from typing import List, Optional import arrow from mobilizon_reshare.config.config import get_settings -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent logger = logging.getLogger(__name__) diff --git a/mobilizon_reshare/main/publish.py b/mobilizon_reshare/main/publish.py index c08f721..0e9abe2 100644 --- a/mobilizon_reshare/main/publish.py +++ b/mobilizon_reshare/main/publish.py @@ -2,10 +2,10 @@ import logging.config from typing import Optional, Iterator from mobilizon_reshare.config.command import CommandConfig -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.event.event_selection_strategies import select_event_to_publish from mobilizon_reshare.publishers import get_active_publishers -from mobilizon_reshare.publishers.abstract import EventPublication +from mobilizon_reshare.dataclasses.publication import EventPublication from mobilizon_reshare.publishers.coordinators.event_publishing.notify import ( PublicationFailureNotifiersCoordinator, ) diff --git a/mobilizon_reshare/main/pull.py b/mobilizon_reshare/main/pull.py index a8445d7..b4450ac 100644 --- a/mobilizon_reshare/main/pull.py +++ b/mobilizon_reshare/main/pull.py @@ -1,6 +1,6 @@ import logging.config -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.mobilizon.events import get_mobilizon_future_events from mobilizon_reshare.storage.query.write import create_unpublished_events diff --git a/mobilizon_reshare/main/recap.py b/mobilizon_reshare/main/recap.py index b07622b..e7b702c 100644 --- a/mobilizon_reshare/main/recap.py +++ b/mobilizon_reshare/main/recap.py @@ -4,9 +4,9 @@ from typing import Optional, List from arrow import now from mobilizon_reshare.config.command import CommandConfig -from mobilizon_reshare.event.event import EventPublicationStatus, MobilizonEvent +from mobilizon_reshare.dataclasses.event import EventPublicationStatus, MobilizonEvent from mobilizon_reshare.publishers import get_active_publishers -from mobilizon_reshare.publishers.abstract import RecapPublication +from mobilizon_reshare.dataclasses.publication import RecapPublication from mobilizon_reshare.publishers.coordinators.event_publishing.notify import ( PublicationFailureNotifiersCoordinator, ) diff --git a/mobilizon_reshare/mobilizon/events.py b/mobilizon_reshare/mobilizon/events.py index 1a41b85..dfc5e43 100644 --- a/mobilizon_reshare/mobilizon/events.py +++ b/mobilizon_reshare/mobilizon/events.py @@ -8,7 +8,7 @@ import arrow import requests from mobilizon_reshare.config.config import get_settings -from mobilizon_reshare.event.event import MobilizonEvent, EventPublicationStatus +from mobilizon_reshare.dataclasses.event import MobilizonEvent, EventPublicationStatus logger = logging.getLogger(__name__) diff --git a/mobilizon_reshare/publishers/abstract.py b/mobilizon_reshare/publishers/abstract.py index cc65cbb..d28a791 100644 --- a/mobilizon_reshare/publishers/abstract.py +++ b/mobilizon_reshare/publishers/abstract.py @@ -1,17 +1,14 @@ import inspect import logging from abc import ABC, abstractmethod -from dataclasses import dataclass -from typing import List, Optional -from uuid import UUID +from typing import Optional from dynaconf.utils.boxing import DynaBox from jinja2 import Environment, FileSystemLoader, Template from mobilizon_reshare.config.config import get_settings -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from .exceptions import InvalidAttribute -from ..models.publication import Publication JINJA_ENV = Environment(loader=FileSystemLoader("/")) @@ -176,32 +173,3 @@ class AbstractEventFormatter(LoggerMixin, ConfLoaderMixin): def _preprocess_message(self, message: str): return message - - -@dataclass -class BasePublication: - publisher: AbstractPlatform - formatter: AbstractEventFormatter - - -@dataclass -class EventPublication(BasePublication): - event: MobilizonEvent - id: UUID - - @classmethod - def from_orm(cls, model: Publication, event: MobilizonEvent): - # imported here to avoid circular dependencies - from mobilizon_reshare.publishers.platforms.platform_mapping import ( - get_publisher_class, - get_formatter_class, - ) - - publisher = get_publisher_class(model.publisher.name)() - formatter = get_formatter_class(model.publisher.name)() - return cls(publisher, formatter, event, model.id,) - - -@dataclass -class RecapPublication(BasePublication): - events: List[MobilizonEvent] diff --git a/mobilizon_reshare/publishers/coordinators/event_publishing/__init__.py b/mobilizon_reshare/publishers/coordinators/event_publishing/__init__.py index c64bb8a..a2dc5d7 100644 --- a/mobilizon_reshare/publishers/coordinators/event_publishing/__init__.py +++ b/mobilizon_reshare/publishers/coordinators/event_publishing/__init__.py @@ -4,7 +4,7 @@ from dataclasses import dataclass from typing import List, Optional from mobilizon_reshare.models.publication import PublicationStatus -from mobilizon_reshare.publishers.abstract import EventPublication +from mobilizon_reshare.dataclasses.publication import EventPublication from mobilizon_reshare.publishers.coordinators import BasePublicationReport diff --git a/mobilizon_reshare/publishers/coordinators/event_publishing/publish.py b/mobilizon_reshare/publishers/coordinators/event_publishing/publish.py index bd5dfe4..f479b0b 100644 --- a/mobilizon_reshare/publishers/coordinators/event_publishing/publish.py +++ b/mobilizon_reshare/publishers/coordinators/event_publishing/publish.py @@ -3,7 +3,7 @@ from dataclasses import dataclass from typing import Sequence import logging from mobilizon_reshare.models.publication import PublicationStatus -from mobilizon_reshare.publishers.abstract import EventPublication +from mobilizon_reshare.dataclasses.publication import EventPublication from mobilizon_reshare.publishers.coordinators import BaseCoordinatorReport from mobilizon_reshare.publishers.coordinators.event_publishing import ( BaseEventPublishingCoordinator, diff --git a/mobilizon_reshare/publishers/coordinators/recap_publishing/recap.py b/mobilizon_reshare/publishers/coordinators/recap_publishing/recap.py index 957b3c6..5c812b7 100644 --- a/mobilizon_reshare/publishers/coordinators/recap_publishing/recap.py +++ b/mobilizon_reshare/publishers/coordinators/recap_publishing/recap.py @@ -3,7 +3,7 @@ from dataclasses import dataclass from typing import Optional, Sequence, List from mobilizon_reshare.models.publication import PublicationStatus -from mobilizon_reshare.publishers.abstract import RecapPublication +from mobilizon_reshare.dataclasses.publication import RecapPublication from mobilizon_reshare.publishers.coordinators import ( BasePublicationReport, BaseCoordinatorReport, diff --git a/mobilizon_reshare/publishers/platforms/facebook.py b/mobilizon_reshare/publishers/platforms/facebook.py index 92532de..838cbd3 100644 --- a/mobilizon_reshare/publishers/platforms/facebook.py +++ b/mobilizon_reshare/publishers/platforms/facebook.py @@ -4,7 +4,7 @@ import facebook import pkg_resources from facebook import GraphAPIError -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.formatting.description import html_to_plaintext from mobilizon_reshare.publishers.abstract import ( AbstractPlatform, diff --git a/mobilizon_reshare/publishers/platforms/mastodon.py b/mobilizon_reshare/publishers/platforms/mastodon.py index d7d920a..9bdbb95 100644 --- a/mobilizon_reshare/publishers/platforms/mastodon.py +++ b/mobilizon_reshare/publishers/platforms/mastodon.py @@ -5,7 +5,7 @@ import pkg_resources import requests from requests import Response -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.publishers.abstract import ( AbstractPlatform, AbstractEventFormatter, diff --git a/mobilizon_reshare/publishers/platforms/telegram.py b/mobilizon_reshare/publishers/platforms/telegram.py index 9db5486..c6a8816 100644 --- a/mobilizon_reshare/publishers/platforms/telegram.py +++ b/mobilizon_reshare/publishers/platforms/telegram.py @@ -6,7 +6,7 @@ import requests from bs4 import BeautifulSoup from requests import Response -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.publishers.abstract import ( AbstractEventFormatter, AbstractPlatform, diff --git a/mobilizon_reshare/publishers/platforms/twitter.py b/mobilizon_reshare/publishers/platforms/twitter.py index 0a1275c..7338f03 100644 --- a/mobilizon_reshare/publishers/platforms/twitter.py +++ b/mobilizon_reshare/publishers/platforms/twitter.py @@ -4,7 +4,7 @@ import pkg_resources from tweepy import OAuthHandler, API, TweepyException from tweepy.models import Status -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.publishers.abstract import ( AbstractPlatform, AbstractEventFormatter, diff --git a/mobilizon_reshare/publishers/platforms/zulip.py b/mobilizon_reshare/publishers/platforms/zulip.py index 13238cc..65f7631 100644 --- a/mobilizon_reshare/publishers/platforms/zulip.py +++ b/mobilizon_reshare/publishers/platforms/zulip.py @@ -6,7 +6,7 @@ import requests from requests import Response from requests.auth import HTTPBasicAuth -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.formatting.description import html_to_markdown from mobilizon_reshare.publishers.abstract import ( AbstractPlatform, diff --git a/mobilizon_reshare/storage/query/read.py b/mobilizon_reshare/storage/query/read.py index 2edc47b..0004757 100644 --- a/mobilizon_reshare/storage/query/read.py +++ b/mobilizon_reshare/storage/query/read.py @@ -7,11 +7,11 @@ from tortoise.exceptions import DoesNotExist from tortoise.queryset import QuerySet from tortoise.transactions import atomic -from mobilizon_reshare.event.event import MobilizonEvent, EventPublicationStatus +from mobilizon_reshare.dataclasses.event import MobilizonEvent, EventPublicationStatus from mobilizon_reshare.models.event import Event from mobilizon_reshare.models.publication import Publication, PublicationStatus from mobilizon_reshare.models.publisher import Publisher -from mobilizon_reshare.publishers.abstract import EventPublication +from mobilizon_reshare.dataclasses.publication import EventPublication from mobilizon_reshare.storage.query.exceptions import EventNotFound diff --git a/mobilizon_reshare/storage/query/write.py b/mobilizon_reshare/storage/query/write.py index 8032709..686b35b 100644 --- a/mobilizon_reshare/storage/query/write.py +++ b/mobilizon_reshare/storage/query/write.py @@ -4,7 +4,7 @@ from typing import Iterable, Optional import arrow from tortoise.transactions import atomic -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.models.event import Event from mobilizon_reshare.models.publication import Publication from mobilizon_reshare.models.publisher import Publisher diff --git a/tests/commands/test_list.py b/tests/commands/test_list.py index b7639fe..b766fc5 100644 --- a/tests/commands/test_list.py +++ b/tests/commands/test_list.py @@ -3,7 +3,7 @@ from arrow import arrow from mobilizon_reshare.cli.commands.list.list_event import list_events from mobilizon_reshare.cli.commands.list.list_publication import list_publications -from mobilizon_reshare.event.event import EventPublicationStatus +from mobilizon_reshare.dataclasses.event import EventPublicationStatus from mobilizon_reshare.models.publication import PublicationStatus spec = { diff --git a/tests/commands/test_publish.py b/tests/commands/test_publish.py index 23a55eb..f52fb37 100644 --- a/tests/commands/test_publish.py +++ b/tests/commands/test_publish.py @@ -3,7 +3,7 @@ from logging import DEBUG import pytest from mobilizon_reshare.main.publish import select_and_publish, publish_event -from mobilizon_reshare.event.event import EventPublicationStatus, MobilizonEvent +from mobilizon_reshare.dataclasses.event import EventPublicationStatus, MobilizonEvent from mobilizon_reshare.models.event import Event from mobilizon_reshare.models.publication import PublicationStatus from mobilizon_reshare.storage.query.read import get_all_publications diff --git a/tests/commands/test_start.py b/tests/commands/test_start.py index 7db3757..7dc99c3 100644 --- a/tests/commands/test_start.py +++ b/tests/commands/test_start.py @@ -5,7 +5,7 @@ import pytest from mobilizon_reshare.config.command import CommandConfig from mobilizon_reshare.storage.query.read import get_all_mobilizon_events from tests.commands.conftest import simple_event_element, second_event_element -from mobilizon_reshare.event.event import EventPublicationStatus, MobilizonEvent +from mobilizon_reshare.dataclasses.event import EventPublicationStatus, MobilizonEvent from mobilizon_reshare.main.start import start from mobilizon_reshare.models.event import Event from mobilizon_reshare.models.publication import PublicationStatus diff --git a/tests/conftest.py b/tests/conftest.py index 5a2af02..f5623a2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -14,7 +14,7 @@ from tortoise import Tortoise import mobilizon_reshare from mobilizon_reshare.config.command import CommandConfig from mobilizon_reshare.config.config import get_settings -from mobilizon_reshare.event.event import MobilizonEvent, EventPublicationStatus +from mobilizon_reshare.dataclasses.event import MobilizonEvent, EventPublicationStatus from mobilizon_reshare.models.event import Event from mobilizon_reshare.models.notification import Notification, NotificationStatus from mobilizon_reshare.models.publication import Publication, PublicationStatus diff --git a/tests/formatting/test_output_format.py b/tests/formatting/test_output_format.py index c0420d7..cb5c3f3 100644 --- a/tests/formatting/test_output_format.py +++ b/tests/formatting/test_output_format.py @@ -4,18 +4,10 @@ from uuid import UUID import arrow import pytest -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.publishers.platforms.platform_mapping import get_formatter_class -begin_date = arrow.get( - datetime( - year=2021, - month=1, - day=1, - hour=11, - minute=30, - ) -) +begin_date = arrow.get(datetime(year=2021, month=1, day=1, hour=11, minute=30,)) end_date = begin_date.shift(hours=1) diff --git a/tests/mobilizon/test_events.py b/tests/mobilizon/test_events.py index 4dc6be4..1ff601d 100644 --- a/tests/mobilizon/test_events.py +++ b/tests/mobilizon/test_events.py @@ -3,7 +3,7 @@ from uuid import UUID import arrow import pytest -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.mobilizon.events import ( get_mobilizon_future_events, MobilizonRequestFailed, diff --git a/tests/models/test_event.py b/tests/models/test_event.py index 42329e1..15bdde9 100644 --- a/tests/models/test_event.py +++ b/tests/models/test_event.py @@ -5,7 +5,7 @@ import arrow import pytest import tortoise.timezone -from mobilizon_reshare.event.event import EventPublicationStatus, MobilizonEvent +from mobilizon_reshare.dataclasses.event import EventPublicationStatus, MobilizonEvent from mobilizon_reshare.models.event import Event from mobilizon_reshare.models.publication import PublicationStatus diff --git a/tests/publishers/conftest.py b/tests/publishers/conftest.py index eb1abde..57c35a0 100644 --- a/tests/publishers/conftest.py +++ b/tests/publishers/conftest.py @@ -5,7 +5,7 @@ from uuid import UUID import arrow import pytest -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.publishers.abstract import ( AbstractPlatform, AbstractEventFormatter, diff --git a/tests/publishers/test_coordinator.py b/tests/publishers/test_coordinator.py index 195d46d..d22f5e8 100644 --- a/tests/publishers/test_coordinator.py +++ b/tests/publishers/test_coordinator.py @@ -5,13 +5,13 @@ from unittest.mock import MagicMock import pytest -from mobilizon_reshare.event.event import MobilizonEvent +from mobilizon_reshare.dataclasses.event import MobilizonEvent from mobilizon_reshare.models.publication import ( PublicationStatus, Publication as PublicationModel, ) from mobilizon_reshare.models.publisher import Publisher -from mobilizon_reshare.publishers.abstract import EventPublication, RecapPublication +from mobilizon_reshare.dataclasses.publication import EventPublication, RecapPublication from mobilizon_reshare.publishers.coordinators.event_publishing.notify import ( PublicationFailureNotifiersCoordinator, ) diff --git a/tests/storage/test_query.py b/tests/storage/test_query.py index 3ce56ba..de63c39 100644 --- a/tests/storage/test_query.py +++ b/tests/storage/test_query.py @@ -4,9 +4,8 @@ from uuid import UUID import arrow import pytest -from mobilizon_reshare.event.event import EventPublicationStatus +from mobilizon_reshare.dataclasses.event import EventPublicationStatus from mobilizon_reshare.models.publication import PublicationStatus -from mobilizon_reshare.publishers.abstract import EventPublication from mobilizon_reshare.storage.query.read import ( get_published_events, events_with_status, @@ -57,7 +56,7 @@ async def test_get_published_events(generate_models): ], ) async def test_publications_with_status( - status, mobilizon_id, from_date, to_date, expected_result, generate_models, + status, mobilizon_id, from_date, to_date, expected_result, generate_models, ): await generate_models(complete_specification) publications = await publications_with_status( @@ -84,33 +83,33 @@ async def test_event_with_status(generate_models, status, expected_events_count) "status, expected_events_count, begin_window, end_window", [ ( - EventPublicationStatus.COMPLETED, - 2, - arrow.get(today + timedelta(hours=-1)), - None, + EventPublicationStatus.COMPLETED, + 2, + arrow.get(today + timedelta(hours=-1)), + None, ), ( - EventPublicationStatus.COMPLETED, - 1, - arrow.get(today + timedelta(hours=1)), - None, + EventPublicationStatus.COMPLETED, + 1, + arrow.get(today + timedelta(hours=1)), + None, ), ( - EventPublicationStatus.COMPLETED, - 1, - arrow.get(today + timedelta(hours=-2)), - arrow.get(today + timedelta(hours=1)), + EventPublicationStatus.COMPLETED, + 1, + arrow.get(today + timedelta(hours=-2)), + arrow.get(today + timedelta(hours=1)), ), ( - EventPublicationStatus.COMPLETED, - 0, - arrow.get(today + timedelta(hours=-2)), - arrow.get(today + timedelta(hours=0)), + EventPublicationStatus.COMPLETED, + 0, + arrow.get(today + timedelta(hours=-2)), + arrow.get(today + timedelta(hours=0)), ), ], ) async def test_event_with_status_window( - generate_models, status, expected_events_count, begin_window, end_window + generate_models, status, expected_events_count, begin_window, end_window ): await generate_models(complete_specification) result = list( @@ -126,23 +125,23 @@ async def test_event_with_status_window( [ ({"event": 2, "publications": [], "publisher": ["zulip"]}, [event_0, event_1],), ( - { - "event": 3, - "publications": [ - { - "event_idx": 1, - "publisher_idx": 0, - "status": PublicationStatus.FAILED, - }, - { - "event_idx": 2, - "publisher_idx": 0, - "status": PublicationStatus.COMPLETED, - }, - ], - "publisher": ["zulip"], - }, - [event_0], + { + "event": 3, + "publications": [ + { + "event_idx": 1, + "publisher_idx": 0, + "status": PublicationStatus.FAILED, + }, + { + "event_idx": 2, + "publisher_idx": 0, + "status": PublicationStatus.COMPLETED, + }, + ], + "publisher": ["zulip"], + }, + [event_0], ), (complete_specification, [event_3],), ], @@ -160,26 +159,26 @@ async def test_events_without_publications(spec, expected_events, generate_model [ ([], {"event": 2, "publications": [], "publisher": ["zulip"]}, event_0, 0,), ( - ["zulip"], - {"event": 2, "publications": [], "publisher": ["zulip"]}, - event_0, - 1, + ["zulip"], + {"event": 2, "publications": [], "publisher": ["zulip"]}, + event_0, + 1, ), ( - ["telegram", "zulip", "mastodon", "facebook"], - { - "event": 2, - "publications": [], - "publisher": ["telegram", "zulip", "mastodon", "facebook"], - }, - event_0, - 4, + ["telegram", "zulip", "mastodon", "facebook"], + { + "event": 2, + "publications": [], + "publisher": ["telegram", "zulip", "mastodon", "facebook"], + }, + event_0, + 4, ), ], indirect=["mock_active_publishers"], ) async def test_build_publications( - mock_active_publishers, spec, event, n_publications, generate_models + mock_active_publishers, spec, event, n_publications, generate_models ): await generate_models(spec) diff --git a/tests/storage/test_update.py b/tests/storage/test_update.py index 52c1b3b..4f26af6 100644 --- a/tests/storage/test_update.py +++ b/tests/storage/test_update.py @@ -4,7 +4,7 @@ import pytest from mobilizon_reshare.models.publication import PublicationStatus, Publication from mobilizon_reshare.models.publisher import Publisher -from mobilizon_reshare.publishers.abstract import EventPublication +from mobilizon_reshare.dataclasses.publication import EventPublication from mobilizon_reshare.publishers.coordinators.event_publishing.publish import ( EventPublicationReport, PublisherCoordinatorReport,