示例#1
0
    def test_raise_when_thread_tweet_fails(self, mocked_update_with_media,
                                           mocked_get_username):
        entry = MagicMock()
        type(entry).tweet_status_id_str = PropertyMock(
            return_value="1234567890")

        diff = get_mocked_diff()
        type(diff.old).entry = entry
        type(diff.new).tweet_status_id_str = PropertyMock()
        type(diff.new).save = MagicMock()
        type(diff).tweeted = PropertyMock(return_value=False)
        type(diff).save = MagicMock()

        twitter = TwitterHandler("myConsumerKey", "myConsumerSecret")
        twitter.tweet_diff(
            diff,
            {
                "access_token": "myAccessToken",
                "access_token_secret": "myAccessTokenSecret",
            },
        )

        mocked_update_with_media.assert_called_once()
        mocked_get_username.assert_not_called()
        diff.new.save.assert_not_called()
        diff.save.assert_not_called()
示例#2
0
    def test_raises_if_already_tweeted(self):
        diff = MagicMock()
        type(diff).tweeted = PropertyMock(return_value=True)

        token = {
            "access_token": "myAccessToken",
            "access_token_secret": "myAccessTokenSecret",
        }

        twitter = TwitterHandler("myConsumerKey", "myConsumerSecret")
        self.assertRaises(AlreadyTweetedError, twitter.tweet_diff, diff, token)
示例#3
0
    def test_raises_if_no_config_set(self):
        self.assertRaises(ConfigNotFoundError, TwitterHandler, None, None)
        self.assertRaises(ConfigNotFoundError, TwitterHandler, "myConsumerKey",
                          None)
        self.assertRaises(ConfigNotFoundError, TwitterHandler, None,
                          "myConsumerSecret")

        try:
            TwitterHandler("myConsumerKey", "myConsumerSecret")
        except ConfigNotFoundError:
            self.fail(
                "Twitter.__init__ raised ConfigNotFoundError unexpectedly!")
示例#4
0
    def test_update_thread_if_old_entry_has_related_tweet(
            self, mocked_create_thread, mocked_get_username):

        entry = MagicMock()
        type(entry).tweet_status_id_str = PropertyMock(
            return_value="1234567890")

        diff = get_mocked_diff()
        type(diff.old).entry = entry

        twitter = TwitterHandler("myConsumerKey", "myConsumerSecret")
        twitter.tweet_diff(
            diff,
            {
                "access_token": "myAccessToken",
                "access_token_secret": "myAccessTokenSecret",
            },
        )

        mocked_create_thread.assert_not_called()
        mocked_get_username.assert_called_once()
示例#5
0
    def test_create_thread_success(self, mocked_update_status):
        entry = MagicMock()
        type(entry).save = MagicMock()
        version = MagicMock()
        type(version).save = MagicMock()
        twitter = TwitterHandler("myConsumerKey", "myConsumerSecret")

        status_id_str = twitter.create_thread(
            entry,
            version,
            {
                "access_token": "myAccessToken",
                "access_token_secret": "myAccessTokenSecret",
            },
        )

        self.assertEqual(status_id_str,
                         mocked_update_status.return_value.id_str)

        mocked_update_status.assert_called_once()
        entry.save.assert_called_once()
        version.save.assert_called_once()
示例#6
0
 def test_create_thread_failure(self, mocked_update_status):
     entry = MagicMock()
     version = MagicMock()
     twitter = TwitterHandler("myConsumerKey", "myConsumerSecret")
     self.assertRaises(
         UpdateStatusError,
         twitter.create_thread,
         entry,
         version,
         {
             "access_token": "myAccessToken",
             "access_token_secret": "myAccessTokenSecret",
         },
     )
     mocked_update_status.assert_called_once()
示例#7
0
    def test_raises_if_not_all_archive_urls_are_present(self):
        diff = get_mocked_diff(False)
        token = {
            "access_token": "myAccessToken",
            "access_token_secret": "myAccessTokenSecret",
        }

        twitter = TwitterHandler("myConsumerKey", "myConsumerSecret")
        self.assertRaises(TwitterAchiveUrlNotFoundError, twitter.tweet_diff,
                          diff, token)

        type(diff.old).archive_url = PropertyMock(
            return_value="http://test.url/old")
        self.assertRaises(TwitterAchiveUrlNotFoundError, twitter.tweet_diff,
                          diff, token)

        type(diff.new).archive_url = PropertyMock(
            return_value="http://test.url/new")
        try:
            twitter.tweet_diff(diff, token)
        except TwitterAchiveUrlNotFoundError:
            self.fail(
                "twitter.tweet_diff raised AchiveUrlNotFoundError unexpectedly!"
            )
示例#8
0
    def test_tweet_diff(self):
        e = self.entry
        v1 = e.versions[0]

        # remove some characters from the version
        v1.summary = v1.summary[0:-20]
        v1.save()

        v2 = e.get_latest()

        # run this alone for checking correct tweeting behavior
        if v2 is not None:
            diff = v2.diff
            try:
                token = test_config.get("twitter.token")
                twitter_handler = TwitterHandler(
                    test_config.get("twitter.consumer_key"),
                    test_config.get("twitter.consumer_secret"),
                )
                twitter_handler.tweet_diff(diff, token)
                twitter_handler.delete_diff(diff, token)
            except Exception:
                logging.debug("no tweet configured for test. Doing nothing")
示例#9
0
 def test_raises_if_no_token_provided(self):
     diff = MagicMock()
     twitter = TwitterHandler("myConsumerKey", "myConsumerSecret")
     self.assertRaises(TokenNotFoundError, twitter.tweet_diff, diff, None)