Пример #1
0
    def test_map_attributes_to_retweet_with_hashtag(self):
        original_author = 'dialelo'
        original_text = 'I <3 #Python'
        original_status = create_status(user=original_author,
                                        text=original_text)

        text = 'RT @%s: %s' % (original_author, original_text)
        entities = {
            u'user_mentions': [],
            u'hashtags': [
                {u'indices': [5, 11],
                 u'text': u'Python'},
            ],
            u'urls': [],
            }
        retweet = create_status(text=text,
                                entities=entities,
                                is_retweet=True,
                                retweeted_status=original_status)

        # retweet text gets parsed because sometimes is not complete
        expected_result = [u'I ', u'<3 ', ('hashtag', '#Python')]
        result = map_attributes(retweet,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)
Пример #2
0
    def test_map_attributes_mention(self):
        text = '@pypi is down!'

        entities = {
            u'user_mentions': [
                {
                    u'id': 60840400,
                    u'indices': [0, 5],
                    u'id_str': u'60840400',
                    u'screen_name': u'pypi',
                    u'name': u'PYthon Package Index'
                },
            ],
            u'hashtags': [],
            u'urls': [],
        }
        tweet = create_status(
            text=text,
            entities=entities,
        )

        expected_result = [('attag', u'@pypi'), u' is down!']
        result = map_attributes(tweet,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)
Пример #3
0
    def test_map_attributes_to_retweet_with_hashtag(self):
        original_author = 'dialelo'
        original_text = 'I <3 #Python'
        original_status = create_status(user=original_author,
                                        text=original_text)

        text = 'RT @%s: %s' % (original_author, original_text)
        entities = {
            u'user_mentions': [],
            u'hashtags': [
                {
                    u'indices': [5, 11],
                    u'text': u'Python'
                },
            ],
            u'urls': [],
        }
        retweet = create_status(text=text,
                                entities=entities,
                                is_retweet=True,
                                retweeted_status=original_status)

        # retweet text gets parsed because sometimes is not complete
        expected_result = [u'I ', u'<3 ', ('hashtag', '#Python')]
        result = map_attributes(retweet,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)
Пример #4
0
    def test_map_attributes_mention(self):
        text = '@pypi is down!'

        entities = {
            u'user_mentions': [
                {u'id': 60840400,
                 u'indices': [0, 5],
                 u'id_str': u'60840400',
                 u'screen_name': u'pypi',
                 u'name': u'PYthon Package Index'},
            ],
            u'hashtags': [],
            u'urls': [],
            }
        tweet = create_status(text=text,
                              entities=entities,)

        expected_result = [('attag', u'@pypi'), u' is down!']
        result = map_attributes(tweet,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)
Пример #5
0
    def test_map_attributes_with_mentions_hashtags_and_url(self):
        text = (u'@aaloy  QT @Pybonacci: \xa1Qu\xe9 pasada con Vim!'
                u' #Python #IDE RT @dialelo uso un setup parecido a este: '
                u'http://t.co/5lTGNzba')
        entities = {
            u'user_mentions': [
                {u'id': 60840400,
                 u'indices': [0, 6],
                 u'id_str': u'60840400',
                 u'screen_name': u'aaloy',
                 u'name': u'Antoni Aloy'},
                {u'id': 552951614,
                 u'indices': [11, 21],
                 u'id_str': u'552951614',
                 u'screen_name': u'Pybonacci',
                 u'name': u'Pybonacci'},
                {u'id': 87322884,
                 u'indices': [60, 68],
                 u'id_str': u'87322884',
                 u'screen_name': u'dialelo',
                 u'name': u'Alejandro G\xf3mez'}
            ],
            u'hashtags': [
                {u'indices': [44, 51],
                 u'text': u'Python'},
                {u'indices': [52, 56],
                 u'text': u'IDE'}
            ],
            u'urls': [
                {u'url': u'http://t.co/5lTGNzba',
                 u'indices': [99, 119],
                 u'expanded_url':
                    u'http://sontek.net/turning-vim-into-a-modern-python-ide',
                 u'display_url': u'sontek.net/turning-vim-in\u2026'}
            ]}
        expected_result = [('attag', u'@aaloy'), u'  QT ',
                           ('attag', u'@Pybonacci'),
                           u': \xa1Qu\xe9 pasada con Vim! ',
                           ('hashtag', u'#Python'), u' ', ('hashtag', u'#IDE'),
                           u' RT ', ('attag', u'@dialelo'),
                           u' uso un setup parecido a este: ',
                           ('url', u'sontek.net/turning-vim-in\u2026')]

        status = create_status(text=text,
                               entities=entities)
        result = map_attributes(status,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)

        text = (u'New release of #Turses 0.1.6 with lots of improvements, '
                u'ncurses twitter client. https://t.co/cciH85AG via @dialelo')
        entities = {
            u'hashtags': [{u'indices': [15, 22], u'text': u'Turses'}],
            u'urls': [{u'display_url': u'github.com/alejandrogomez\u2026',
                       u'expanded_url':
                       u'https://github.com/alejandrogomez/turses',
                       u'indices': [80, 101],
                       u'url': u'https://t.co/cciH85AG'}],
            u'user_mentions': [{u'id': 87322884,
                                u'id_str': u'87322884',
                                u'indices': [106, 114],
                                u'name': u'Alejandro G\xf3mez',
                                u'screen_name': u'dialelo'}]
        }
        expected_result = [u'New release of ',
                           ('hashtag', u'#Turses'),
                           (u' 0.1.6 with lots of improvements, '
                            u'ncurses twitter client. '),
                           ('url', u'github.com/alejandrogomez\u2026'),
                           u' via ',
                           ('attag', u'@dialelo')]

        status = create_status(user='******',
                               text=text,
                               entities=entities)
        result = map_attributes(status,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)
Пример #6
0
    def test_map_attributes_with_mentions_hashtags_and_url(self):
        text = (u'@aaloy  QT @Pybonacci: \xa1Qu\xe9 pasada con Vim!'
                u' #Python #IDE RT @dialelo uso un setup parecido a este: '
                u'http://t.co/5lTGNzba')
        entities = {
            u'user_mentions': [{
                u'id': 60840400,
                u'indices': [0, 6],
                u'id_str': u'60840400',
                u'screen_name': u'aaloy',
                u'name': u'Antoni Aloy'
            }, {
                u'id': 552951614,
                u'indices': [11, 21],
                u'id_str': u'552951614',
                u'screen_name': u'Pybonacci',
                u'name': u'Pybonacci'
            }, {
                u'id': 87322884,
                u'indices': [60, 68],
                u'id_str': u'87322884',
                u'screen_name': u'dialelo',
                u'name': u'Alejandro G\xf3mez'
            }],
            u'hashtags': [{
                u'indices': [44, 51],
                u'text': u'Python'
            }, {
                u'indices': [52, 56],
                u'text': u'IDE'
            }],
            u'urls': [{
                u'url': u'http://t.co/5lTGNzba',
                u'indices': [99, 119],
                u'expanded_url':
                u'http://sontek.net/turning-vim-into-a-modern-python-ide',
                u'display_url': u'sontek.net/turning-vim-in\u2026'
            }]
        }
        expected_result = [('attag', u'@aaloy'), u'  QT ',
                           ('attag', u'@Pybonacci'),
                           u': \xa1Qu\xe9 pasada con Vim! ',
                           ('hashtag', u'#Python'), u' ', ('hashtag', u'#IDE'),
                           u' RT ', ('attag', u'@dialelo'),
                           u' uso un setup parecido a este: ',
                           ('url', u'sontek.net/turning-vim-in\u2026')]

        status = create_status(text=text, entities=entities)
        result = map_attributes(status,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)

        text = (u'New release of #Turses 0.1.6 with lots of improvements, '
                u'ncurses twitter client. https://t.co/cciH85AG via @dialelo')
        entities = {
            u'hashtags': [{
                u'indices': [15, 22],
                u'text': u'Turses'
            }],
            u'urls': [{
                u'display_url': u'github.com/alejandrogomez\u2026',
                u'expanded_url': u'https://github.com/alejandrogomez/turses',
                u'indices': [80, 101],
                u'url': u'https://t.co/cciH85AG'
            }],
            u'user_mentions': [{
                u'id': 87322884,
                u'id_str': u'87322884',
                u'indices': [106, 114],
                u'name': u'Alejandro G\xf3mez',
                u'screen_name': u'dialelo'
            }]
        }
        expected_result = [
            u'New release of ', ('hashtag', u'#Turses'),
            (u' 0.1.6 with lots of improvements, '
             u'ncurses twitter client. '),
            ('url', u'github.com/alejandrogomez\u2026'), u' via ',
            ('attag', u'@dialelo')
        ]

        status = create_status(user='******', text=text, entities=entities)
        result = map_attributes(status,
                                hashtag='hashtag',
                                attag='attag',
                                url='url')

        self.assertEqual(result, expected_result)