Ejemplo n.º 1
0
    def test_generate_from_twitter_status_retweet(self) -> None:

        user_mock = get_user_mock()

        original_status_mock = NonCallableMagicMock(spec=['id', 'text', 'user'])
        original_status_mock.id = TWITTER_STATUS_SAMPLE_2['id']
        original_status_mock.text = TWITTER_STATUS_SAMPLE_2['text']
        original_status_mock.user.screen_name = TWITTER_USER_SAMPLE_2['screen_name']

        status_mock = NonCallableMagicMock(spec=['id', 'text', 'retweeted_status'])
        status_mock.id = TWITTER_STATUS_SAMPLE['id']
        status_mock.text = TWITTER_STATUS_SAMPLE['text']
        status_mock.retweeted_status = original_status_mock

        post = DiscordPost.generate_from_twitter_status(user=user_mock, status=status_mock)

        self.assertIsInstance(post, DiscordPost)
        self.assertEqual(post.username, TWITTER_USER_SAMPLE['name'])
        self.assertEqual(post.avatar_url, TWITTER_USER_SAMPLE['profile_image_url_orig'])
        self.assertEqual(
            post.content,
            (
                f'RT: http://twitter.com/_/status/{TWITTER_STATUS_SAMPLE_2["id"]}\n'
                f'http://twitter.com/{TWITTER_USER_SAMPLE["screen_name"]}/status/'
                f'{TWITTER_STATUS_SAMPLE["id"]}'
            )
        )
        self.assertIsNone(post.embeds)
Ejemplo n.º 2
0
    def test_generate_from_twitter_status_has_video(self) -> None:

        user_mock = _get_user_mock()

        status_mock = NonCallableMagicMock(
            spec=['id', 'text', 'text', 'full_text', 'extended_entities'])
        status_mock.id = TWITTER_STATUS_SAMPLE['id']
        status_mock.text = TWITTER_STATUS_SAMPLE['text']
        status_mock.full_text = TWITTER_STATUS_SAMPLE['full_text']
        status_mock.extended_entities = {
            'media': [
                {
                    'type': 'video',
                    'media_url_https':
                    TWITTER_STATUS_SAMPLE['media_url_https'],
                },
            ]
        }

        post = DiscordPost.generate_from_twitter_status(user=user_mock,
                                                        status=status_mock)

        self.assertIsInstance(post, DiscordPost)
        self.assertEqual(post.username, TWITTER_USER_SAMPLE['name'])
        self.assertEqual(post.avatar_url,
                         TWITTER_USER_SAMPLE['profile_image_url_orig'])
        self.assertEqual(
            post.content,
            (f'http://twitter.com/{TWITTER_USER_SAMPLE["screen_name"]}/status/'
             f'{TWITTER_STATUS_SAMPLE["id"]}'))
        self.assertIsNone(post.embeds)
Ejemplo n.º 3
0
    def test_generate_from_twitter_status_without_full_text_and_media(self) -> None:

        user_mock = get_user_mock()

        status_mock = NonCallableMagicMock(spec=['id', 'text'])
        status_mock.id = TWITTER_STATUS_SAMPLE['id']
        status_mock.text = TWITTER_STATUS_SAMPLE['text']

        post = DiscordPost.generate_from_twitter_status(user=user_mock, status=status_mock)

        self.assertIsInstance(post, DiscordPost)
        self.assertEqual(post.username, TWITTER_USER_SAMPLE['name'])
        self.assertEqual(post.avatar_url, TWITTER_USER_SAMPLE['profile_image_url_orig'])
        self.assertEqual(
            post.content,
            (f'<http://twitter.com/{TWITTER_USER_SAMPLE["screen_name"]}/status/'
             f'{TWITTER_STATUS_SAMPLE["id"]}>\n'
             f'{TWITTER_STATUS_SAMPLE["text"]}')
        )
        self.assertIsNone(post.embeds)