Skip to content

Commit

Permalink
Draft Mastodon.
Browse files Browse the repository at this point in the history
  • Loading branch information
facundobatista committed Sep 25, 2023
1 parent 5f88d1e commit 348b5ba
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 12 deletions.
10 changes: 10 additions & 0 deletions joboffers/management/commands/test_mastodon.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from joboffers.management.commands import TestPublishCommand
from joboffers.publishers.mastodon import MastodonPublisher


class Command(TestPublishCommand):
help = 'Test sending a post to Mastodon.'

def handle(self, *args, **options):
"""Post a message to Mastodon."""
self._handle_publish(options, MastodonPublisher)
20 changes: 12 additions & 8 deletions joboffers/tests/test_joboffer_publisher.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from ..publishers.facebook import FacebookPublisher
from ..publishers.telegram import TelegramPublisher
from ..publishers.twitter import TwitterPublisher
from ..publishers.mastodon import MastodonPublisher
from ..models import OfferState
from .factories import JobOfferFactory

Expand Down Expand Up @@ -78,21 +79,24 @@ def test_publisher_publish_error():
@pytest.mark.django_db
@patch('joboffers.publishers.publish_offer')
def test_publisher_to_all_social_networks_works_ok(publish_offer_function, settings):
"""
Test that publish_to_all_social_networks() uses all the condifured publishers
"""
"""Test that publish_to_all_social_networks() uses all the configured publishers."""
joboffer = JobOfferFactory.create(state=OfferState.ACTIVE)
settings.SOCIAL_NETWORKS_PUBLISHERS = [
'joboffers.publishers.discourse.DiscoursePublisher',
'joboffers.publishers.facebook.FacebookPublisher',
'joboffers.publishers.telegram.TelegramPublisher',
'joboffers.publishers.twitter.TwitterPublisher'
'joboffers.publishers.discourse.DiscoursePublisher',
'joboffers.publishers.facebook.FacebookPublisher',
'joboffers.publishers.telegram.TelegramPublisher',
'joboffers.publishers.twitter.TwitterPublisher',
'joboffers.publishers.mastodon.MastodonPublisher',
]

publish_to_all_social_networks(joboffer)

expected_publishers = [
DiscoursePublisher, FacebookPublisher, TelegramPublisher, TwitterPublisher
DiscoursePublisher,
FacebookPublisher,
TelegramPublisher,
TwitterPublisher,
MastodonPublisher,
]

assert publish_offer_function.called
Expand Down
13 changes: 9 additions & 4 deletions pyarweb/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,15 +278,20 @@
TWITTER_CONSUMER_KEY = os.environ.get('TWITTER_CONSUMER_KEY')
TWITTER_CONSUMER_SECRET = os.environ.get('TWITTER_CONSUMER_SECRET')

# Mastodon constants
MASTODON_AUTH_TOKEN = os.environ.get('MASTODON_AUTH_TOKEN')
MASTODON_API_BASE_URL = os.environ.get('MASTODON_API_BASE_URL')

# Discourse constants
DISCOURSE_HOST = os.environ.get('DISCOURSE_HOST')
DISCOURSE_API_KEY = os.environ.get('DISCOURSE_API_KEY')
DISCOURSE_USERNAME = os.environ.get('DISCOURSE_USERNAME')
DISCOURSE_CATEGORY = os.environ.get('DISCOURSE_CATEGORY')

SOCIAL_NETWORKS_PUBLISHERS = [
'joboffers.publishers.discourse.DiscoursePublisher',
'joboffers.publishers.facebook.FacebookPublisher',
'joboffers.publishers.telegram.TelegramPublisher',
'joboffers.publishers.twitter.TwitterPublisher'
'joboffers.publishers.discourse.DiscoursePublisher',
'joboffers.publishers.facebook.FacebookPublisher',
'joboffers.publishers.telegram.TelegramPublisher',
'joboffers.publishers.twitter.TwitterPublisher',
'joboffers.publishers.mastodon.MastodonPublisher',
]
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ django-tagging==0.5.0
django-taggit==1.5.1
django-taggit-autosuggest==0.3.8
lxml==4.9.1
Mastodon.py==1.8.1
plotly==5.7.0
psycopg2-binary==2.9.1
tweepy==4.5.0
Expand Down

0 comments on commit 348b5ba

Please sign in to comment.