moved publications to dataclasses module
This commit is contained in:
parent
9032df7c70
commit
fff9f0acd7
|
@ -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.command import CommandConfig
|
||||||
from mobilizon_reshare.config.config import current_version, get_settings
|
from mobilizon_reshare.config.config import current_version, get_settings
|
||||||
from mobilizon_reshare.config.publishers import publisher_names
|
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.models.publication import PublicationStatus
|
||||||
from mobilizon_reshare.publishers import get_active_publishers
|
from mobilizon_reshare.publishers import get_active_publishers
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import click
|
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.models.event import Event
|
||||||
from mobilizon_reshare.publishers.platforms.platform_mapping import get_formatter_class
|
from mobilizon_reshare.publishers.platforms.platform_mapping import get_formatter_class
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,8 @@ from typing import Iterable, Optional
|
||||||
import click
|
import click
|
||||||
from arrow import Arrow
|
from arrow import Arrow
|
||||||
|
|
||||||
from mobilizon_reshare.event.event import EventPublicationStatus
|
from mobilizon_reshare.dataclasses.event import EventPublicationStatus
|
||||||
from mobilizon_reshare.event.event import MobilizonEvent
|
from mobilizon_reshare.dataclasses.event import MobilizonEvent
|
||||||
from mobilizon_reshare.event.event_selection_strategies import select_unpublished_events
|
from mobilizon_reshare.event.event_selection_strategies import select_unpublished_events
|
||||||
from mobilizon_reshare.storage.query.read import (
|
from mobilizon_reshare.storage.query.read import (
|
||||||
get_published_events,
|
get_published_events,
|
||||||
|
|
|
@ -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]
|
|
@ -5,7 +5,7 @@ from typing import List, Optional
|
||||||
import arrow
|
import arrow
|
||||||
|
|
||||||
from mobilizon_reshare.config.config import get_settings
|
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__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,10 @@ import logging.config
|
||||||
from typing import Optional, Iterator
|
from typing import Optional, Iterator
|
||||||
|
|
||||||
from mobilizon_reshare.config.command import CommandConfig
|
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.event.event_selection_strategies import select_event_to_publish
|
||||||
from mobilizon_reshare.publishers import get_active_publishers
|
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 (
|
from mobilizon_reshare.publishers.coordinators.event_publishing.notify import (
|
||||||
PublicationFailureNotifiersCoordinator,
|
PublicationFailureNotifiersCoordinator,
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import logging.config
|
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.mobilizon.events import get_mobilizon_future_events
|
||||||
from mobilizon_reshare.storage.query.write import create_unpublished_events
|
from mobilizon_reshare.storage.query.write import create_unpublished_events
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,9 @@ from typing import Optional, List
|
||||||
from arrow import now
|
from arrow import now
|
||||||
|
|
||||||
from mobilizon_reshare.config.command import CommandConfig
|
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 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 (
|
from mobilizon_reshare.publishers.coordinators.event_publishing.notify import (
|
||||||
PublicationFailureNotifiersCoordinator,
|
PublicationFailureNotifiersCoordinator,
|
||||||
)
|
)
|
||||||
|
|
|
@ -8,7 +8,7 @@ import arrow
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from mobilizon_reshare.config.config import get_settings
|
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__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,14 @@
|
||||||
import inspect
|
import inspect
|
||||||
import logging
|
import logging
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from dataclasses import dataclass
|
from typing import Optional
|
||||||
from typing import List, Optional
|
|
||||||
from uuid import UUID
|
|
||||||
|
|
||||||
from dynaconf.utils.boxing import DynaBox
|
from dynaconf.utils.boxing import DynaBox
|
||||||
from jinja2 import Environment, FileSystemLoader, Template
|
from jinja2 import Environment, FileSystemLoader, Template
|
||||||
|
|
||||||
from mobilizon_reshare.config.config import get_settings
|
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 .exceptions import InvalidAttribute
|
||||||
from ..models.publication import Publication
|
|
||||||
|
|
||||||
JINJA_ENV = Environment(loader=FileSystemLoader("/"))
|
JINJA_ENV = Environment(loader=FileSystemLoader("/"))
|
||||||
|
|
||||||
|
@ -176,32 +173,3 @@ class AbstractEventFormatter(LoggerMixin, ConfLoaderMixin):
|
||||||
|
|
||||||
def _preprocess_message(self, message: str):
|
def _preprocess_message(self, message: str):
|
||||||
return message
|
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]
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ from dataclasses import dataclass
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from mobilizon_reshare.models.publication import PublicationStatus
|
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
|
from mobilizon_reshare.publishers.coordinators import BasePublicationReport
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ from dataclasses import dataclass
|
||||||
from typing import Sequence
|
from typing import Sequence
|
||||||
import logging
|
import logging
|
||||||
from mobilizon_reshare.models.publication import PublicationStatus
|
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 import BaseCoordinatorReport
|
||||||
from mobilizon_reshare.publishers.coordinators.event_publishing import (
|
from mobilizon_reshare.publishers.coordinators.event_publishing import (
|
||||||
BaseEventPublishingCoordinator,
|
BaseEventPublishingCoordinator,
|
||||||
|
|
|
@ -3,7 +3,7 @@ from dataclasses import dataclass
|
||||||
from typing import Optional, Sequence, List
|
from typing import Optional, Sequence, List
|
||||||
|
|
||||||
from mobilizon_reshare.models.publication import PublicationStatus
|
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 (
|
from mobilizon_reshare.publishers.coordinators import (
|
||||||
BasePublicationReport,
|
BasePublicationReport,
|
||||||
BaseCoordinatorReport,
|
BaseCoordinatorReport,
|
||||||
|
|
|
@ -4,7 +4,7 @@ import facebook
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
from facebook import GraphAPIError
|
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.formatting.description import html_to_plaintext
|
||||||
from mobilizon_reshare.publishers.abstract import (
|
from mobilizon_reshare.publishers.abstract import (
|
||||||
AbstractPlatform,
|
AbstractPlatform,
|
||||||
|
|
|
@ -5,7 +5,7 @@ import pkg_resources
|
||||||
import requests
|
import requests
|
||||||
from requests import Response
|
from requests import Response
|
||||||
|
|
||||||
from mobilizon_reshare.event.event import MobilizonEvent
|
from mobilizon_reshare.dataclasses.event import MobilizonEvent
|
||||||
from mobilizon_reshare.publishers.abstract import (
|
from mobilizon_reshare.publishers.abstract import (
|
||||||
AbstractPlatform,
|
AbstractPlatform,
|
||||||
AbstractEventFormatter,
|
AbstractEventFormatter,
|
||||||
|
|
|
@ -6,7 +6,7 @@ import requests
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from requests import Response
|
from requests import Response
|
||||||
|
|
||||||
from mobilizon_reshare.event.event import MobilizonEvent
|
from mobilizon_reshare.dataclasses.event import MobilizonEvent
|
||||||
from mobilizon_reshare.publishers.abstract import (
|
from mobilizon_reshare.publishers.abstract import (
|
||||||
AbstractEventFormatter,
|
AbstractEventFormatter,
|
||||||
AbstractPlatform,
|
AbstractPlatform,
|
||||||
|
|
|
@ -4,7 +4,7 @@ import pkg_resources
|
||||||
from tweepy import OAuthHandler, API, TweepyException
|
from tweepy import OAuthHandler, API, TweepyException
|
||||||
from tweepy.models import Status
|
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 (
|
from mobilizon_reshare.publishers.abstract import (
|
||||||
AbstractPlatform,
|
AbstractPlatform,
|
||||||
AbstractEventFormatter,
|
AbstractEventFormatter,
|
||||||
|
|
|
@ -6,7 +6,7 @@ import requests
|
||||||
from requests import Response
|
from requests import Response
|
||||||
from requests.auth import HTTPBasicAuth
|
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.formatting.description import html_to_markdown
|
||||||
from mobilizon_reshare.publishers.abstract import (
|
from mobilizon_reshare.publishers.abstract import (
|
||||||
AbstractPlatform,
|
AbstractPlatform,
|
||||||
|
|
|
@ -7,11 +7,11 @@ from tortoise.exceptions import DoesNotExist
|
||||||
from tortoise.queryset import QuerySet
|
from tortoise.queryset import QuerySet
|
||||||
from tortoise.transactions import atomic
|
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.event import Event
|
||||||
from mobilizon_reshare.models.publication import Publication, PublicationStatus
|
from mobilizon_reshare.models.publication import Publication, PublicationStatus
|
||||||
from mobilizon_reshare.models.publisher import Publisher
|
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
|
from mobilizon_reshare.storage.query.exceptions import EventNotFound
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ from typing import Iterable, Optional
|
||||||
import arrow
|
import arrow
|
||||||
from tortoise.transactions import atomic
|
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.event import Event
|
||||||
from mobilizon_reshare.models.publication import Publication
|
from mobilizon_reshare.models.publication import Publication
|
||||||
from mobilizon_reshare.models.publisher import Publisher
|
from mobilizon_reshare.models.publisher import Publisher
|
||||||
|
|
|
@ -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_event import list_events
|
||||||
from mobilizon_reshare.cli.commands.list.list_publication import list_publications
|
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
|
from mobilizon_reshare.models.publication import PublicationStatus
|
||||||
|
|
||||||
spec = {
|
spec = {
|
||||||
|
|
|
@ -3,7 +3,7 @@ from logging import DEBUG
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mobilizon_reshare.main.publish import select_and_publish, publish_event
|
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.event import Event
|
||||||
from mobilizon_reshare.models.publication import PublicationStatus
|
from mobilizon_reshare.models.publication import PublicationStatus
|
||||||
from mobilizon_reshare.storage.query.read import get_all_publications
|
from mobilizon_reshare.storage.query.read import get_all_publications
|
||||||
|
|
|
@ -5,7 +5,7 @@ import pytest
|
||||||
from mobilizon_reshare.config.command import CommandConfig
|
from mobilizon_reshare.config.command import CommandConfig
|
||||||
from mobilizon_reshare.storage.query.read import get_all_mobilizon_events
|
from mobilizon_reshare.storage.query.read import get_all_mobilizon_events
|
||||||
from tests.commands.conftest import simple_event_element, second_event_element
|
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.main.start import start
|
||||||
from mobilizon_reshare.models.event import Event
|
from mobilizon_reshare.models.event import Event
|
||||||
from mobilizon_reshare.models.publication import PublicationStatus
|
from mobilizon_reshare.models.publication import PublicationStatus
|
||||||
|
|
|
@ -14,7 +14,7 @@ from tortoise import Tortoise
|
||||||
import mobilizon_reshare
|
import mobilizon_reshare
|
||||||
from mobilizon_reshare.config.command import CommandConfig
|
from mobilizon_reshare.config.command import CommandConfig
|
||||||
from mobilizon_reshare.config.config import get_settings
|
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.event import Event
|
||||||
from mobilizon_reshare.models.notification import Notification, NotificationStatus
|
from mobilizon_reshare.models.notification import Notification, NotificationStatus
|
||||||
from mobilizon_reshare.models.publication import Publication, PublicationStatus
|
from mobilizon_reshare.models.publication import Publication, PublicationStatus
|
||||||
|
|
|
@ -4,18 +4,10 @@ from uuid import UUID
|
||||||
import arrow
|
import arrow
|
||||||
import pytest
|
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
|
from mobilizon_reshare.publishers.platforms.platform_mapping import get_formatter_class
|
||||||
|
|
||||||
begin_date = arrow.get(
|
begin_date = arrow.get(datetime(year=2021, month=1, day=1, hour=11, minute=30,))
|
||||||
datetime(
|
|
||||||
year=2021,
|
|
||||||
month=1,
|
|
||||||
day=1,
|
|
||||||
hour=11,
|
|
||||||
minute=30,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
end_date = begin_date.shift(hours=1)
|
end_date = begin_date.shift(hours=1)
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ from uuid import UUID
|
||||||
import arrow
|
import arrow
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mobilizon_reshare.event.event import MobilizonEvent
|
from mobilizon_reshare.dataclasses.event import MobilizonEvent
|
||||||
from mobilizon_reshare.mobilizon.events import (
|
from mobilizon_reshare.mobilizon.events import (
|
||||||
get_mobilizon_future_events,
|
get_mobilizon_future_events,
|
||||||
MobilizonRequestFailed,
|
MobilizonRequestFailed,
|
||||||
|
|
|
@ -5,7 +5,7 @@ import arrow
|
||||||
import pytest
|
import pytest
|
||||||
import tortoise.timezone
|
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.event import Event
|
||||||
from mobilizon_reshare.models.publication import PublicationStatus
|
from mobilizon_reshare.models.publication import PublicationStatus
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ from uuid import UUID
|
||||||
import arrow
|
import arrow
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mobilizon_reshare.event.event import MobilizonEvent
|
from mobilizon_reshare.dataclasses.event import MobilizonEvent
|
||||||
from mobilizon_reshare.publishers.abstract import (
|
from mobilizon_reshare.publishers.abstract import (
|
||||||
AbstractPlatform,
|
AbstractPlatform,
|
||||||
AbstractEventFormatter,
|
AbstractEventFormatter,
|
||||||
|
|
|
@ -5,13 +5,13 @@ from unittest.mock import MagicMock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mobilizon_reshare.event.event import MobilizonEvent
|
from mobilizon_reshare.dataclasses.event import MobilizonEvent
|
||||||
from mobilizon_reshare.models.publication import (
|
from mobilizon_reshare.models.publication import (
|
||||||
PublicationStatus,
|
PublicationStatus,
|
||||||
Publication as PublicationModel,
|
Publication as PublicationModel,
|
||||||
)
|
)
|
||||||
from mobilizon_reshare.models.publisher import Publisher
|
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 (
|
from mobilizon_reshare.publishers.coordinators.event_publishing.notify import (
|
||||||
PublicationFailureNotifiersCoordinator,
|
PublicationFailureNotifiersCoordinator,
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,9 +4,8 @@ from uuid import UUID
|
||||||
import arrow
|
import arrow
|
||||||
import pytest
|
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.models.publication import PublicationStatus
|
||||||
from mobilizon_reshare.publishers.abstract import EventPublication
|
|
||||||
from mobilizon_reshare.storage.query.read import (
|
from mobilizon_reshare.storage.query.read import (
|
||||||
get_published_events,
|
get_published_events,
|
||||||
events_with_status,
|
events_with_status,
|
||||||
|
@ -57,7 +56,7 @@ async def test_get_published_events(generate_models):
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_publications_with_status(
|
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)
|
await generate_models(complete_specification)
|
||||||
publications = await publications_with_status(
|
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",
|
"status, expected_events_count, begin_window, end_window",
|
||||||
[
|
[
|
||||||
(
|
(
|
||||||
EventPublicationStatus.COMPLETED,
|
EventPublicationStatus.COMPLETED,
|
||||||
2,
|
2,
|
||||||
arrow.get(today + timedelta(hours=-1)),
|
arrow.get(today + timedelta(hours=-1)),
|
||||||
None,
|
None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
EventPublicationStatus.COMPLETED,
|
EventPublicationStatus.COMPLETED,
|
||||||
1,
|
1,
|
||||||
arrow.get(today + timedelta(hours=1)),
|
arrow.get(today + timedelta(hours=1)),
|
||||||
None,
|
None,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
EventPublicationStatus.COMPLETED,
|
EventPublicationStatus.COMPLETED,
|
||||||
1,
|
1,
|
||||||
arrow.get(today + timedelta(hours=-2)),
|
arrow.get(today + timedelta(hours=-2)),
|
||||||
arrow.get(today + timedelta(hours=1)),
|
arrow.get(today + timedelta(hours=1)),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
EventPublicationStatus.COMPLETED,
|
EventPublicationStatus.COMPLETED,
|
||||||
0,
|
0,
|
||||||
arrow.get(today + timedelta(hours=-2)),
|
arrow.get(today + timedelta(hours=-2)),
|
||||||
arrow.get(today + timedelta(hours=0)),
|
arrow.get(today + timedelta(hours=0)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_event_with_status_window(
|
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)
|
await generate_models(complete_specification)
|
||||||
result = list(
|
result = list(
|
||||||
|
@ -126,23 +125,23 @@ async def test_event_with_status_window(
|
||||||
[
|
[
|
||||||
({"event": 2, "publications": [], "publisher": ["zulip"]}, [event_0, event_1],),
|
({"event": 2, "publications": [], "publisher": ["zulip"]}, [event_0, event_1],),
|
||||||
(
|
(
|
||||||
{
|
{
|
||||||
"event": 3,
|
"event": 3,
|
||||||
"publications": [
|
"publications": [
|
||||||
{
|
{
|
||||||
"event_idx": 1,
|
"event_idx": 1,
|
||||||
"publisher_idx": 0,
|
"publisher_idx": 0,
|
||||||
"status": PublicationStatus.FAILED,
|
"status": PublicationStatus.FAILED,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_idx": 2,
|
"event_idx": 2,
|
||||||
"publisher_idx": 0,
|
"publisher_idx": 0,
|
||||||
"status": PublicationStatus.COMPLETED,
|
"status": PublicationStatus.COMPLETED,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"publisher": ["zulip"],
|
"publisher": ["zulip"],
|
||||||
},
|
},
|
||||||
[event_0],
|
[event_0],
|
||||||
),
|
),
|
||||||
(complete_specification, [event_3],),
|
(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,),
|
([], {"event": 2, "publications": [], "publisher": ["zulip"]}, event_0, 0,),
|
||||||
(
|
(
|
||||||
["zulip"],
|
["zulip"],
|
||||||
{"event": 2, "publications": [], "publisher": ["zulip"]},
|
{"event": 2, "publications": [], "publisher": ["zulip"]},
|
||||||
event_0,
|
event_0,
|
||||||
1,
|
1,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
["telegram", "zulip", "mastodon", "facebook"],
|
["telegram", "zulip", "mastodon", "facebook"],
|
||||||
{
|
{
|
||||||
"event": 2,
|
"event": 2,
|
||||||
"publications": [],
|
"publications": [],
|
||||||
"publisher": ["telegram", "zulip", "mastodon", "facebook"],
|
"publisher": ["telegram", "zulip", "mastodon", "facebook"],
|
||||||
},
|
},
|
||||||
event_0,
|
event_0,
|
||||||
4,
|
4,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
indirect=["mock_active_publishers"],
|
indirect=["mock_active_publishers"],
|
||||||
)
|
)
|
||||||
async def test_build_publications(
|
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)
|
await generate_models(spec)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import pytest
|
||||||
|
|
||||||
from mobilizon_reshare.models.publication import PublicationStatus, Publication
|
from mobilizon_reshare.models.publication import PublicationStatus, Publication
|
||||||
from mobilizon_reshare.models.publisher import Publisher
|
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 (
|
from mobilizon_reshare.publishers.coordinators.event_publishing.publish import (
|
||||||
EventPublicationReport,
|
EventPublicationReport,
|
||||||
PublisherCoordinatorReport,
|
PublisherCoordinatorReport,
|
||||||
|
|
Loading…
Reference in New Issue