예제 #1
0
    def test_tweet_new_published_future_event(self, rget):

        def mocked_read(url, params):
            return Response({
                u'status_code': 200,
                u'data': {
                    u'url': u'http://mzl.la/1adh2wT',
                    u'hash': u'1adh2wT',
                    u'global_hash': u'1adh2wU',
                    u'long_url': u'https://air.mozilla.org/it-buildout/',
                    u'new_hash': 0
                },
                u'status_txt': u'OK'
            })

        rget.side_effect = mocked_read

        future = timezone.now() + datetime.timedelta(days=1)
        event = Event.objects.get(title='Test event')
        event.title = 'A Much Longer Test Title'
        event.created = timezone.now() - datetime.timedelta(days=1)
        event.start_time = future
        event.save()

        tweet_new_published_events()
        tweet, = EventTweet.objects.all()
        ok_(event.title in tweet.text)
        ok_('http://mzl.la/1adh2wT' in tweet.text)
        eq_(tweet.send_date + datetime.timedelta(minutes=30), future)
예제 #2
0
    def test_tweet_new_published_future_event(self, rget):
        def mocked_read(url, params):
            return Response({
                u'status_code': 200,
                u'data': {
                    u'url': u'http://mzl.la/1adh2wT',
                    u'hash': u'1adh2wT',
                    u'global_hash': u'1adh2wU',
                    u'long_url': u'https://air.mozilla.org/it-buildout/',
                    u'new_hash': 0
                },
                u'status_txt': u'OK'
            })

        rget.side_effect = mocked_read

        future = timezone.now() + datetime.timedelta(days=1)
        event = Event.objects.get(title='Test event')
        event.title = 'A Much Longer Test Title'
        event.created = timezone.now() - datetime.timedelta(days=1)
        event.start_time = future
        event.save()

        tweet_new_published_events()
        tweet, = EventTweet.objects.all()
        ok_(event.title in tweet.text)
        ok_('http://mzl.la/1adh2wT' in tweet.text)
        eq_(tweet.send_date + datetime.timedelta(minutes=30), future)
예제 #3
0
    def test_tweet_new_published_events_excluded_channel(self):
        event = Event.objects.get(title='Test event')
        event.created = timezone.now()
        event.archive_time = timezone.now()
        event.save()

        event.channels.add(Channel.objects.create(
            name='Normal',
            slug='normal',
        ))
        event.channels.add(Channel.objects.create(
            name='Excluded',
            slug='excluded',
            no_automated_tweets=True,
        ))

        tweet_new_published_events()
        ok_(not EventTweet.objects.all())
예제 #4
0
    def test_tweet_new_published_events_excluded_channel(self):
        event = Event.objects.get(title='Test event')
        event.created = timezone.now()
        event.archive_time = timezone.now()
        event.save()

        event.channels.add(
            Channel.objects.create(
                name='Normal',
                slug='normal',
            ))
        event.channels.add(
            Channel.objects.create(
                name='Excluded',
                slug='excluded',
                no_automated_tweets=True,
            ))

        tweet_new_published_events()
        ok_(not EventTweet.objects.all())
예제 #5
0
    def test_tweet_new_published_events_almost_too_long(self, rget):

        def mocked_read(url, params):
            return Response({
                u'status_code': 200,
                u'data': {
                    u'url': u'http://mzl.la/1adh2wT',
                    u'hash': u'1adh2wT',
                    u'global_hash': u'1adh2wU',
                    u'long_url': u'https://air.mozilla.org/it-buildout/',
                    u'new_hash': 0
                },
                u'status_txt': u'OK'
            })

        rget.side_effect = mocked_read

        event = Event.objects.get(title='Test event')
        recently = timezone.now()
        event.title = 'A Much Longer Test Title'
        event.created = recently
        event.archive_time = recently
        event.save()
        tags = (
            'firefox',
            'Intern Firefox OS',
            'abba',
            'somereallylongwordthatisactuallyatag',
        )
        for tag in tags:
            event.tags.add(Tag.objects.create(name=tag))

        tweet_new_published_events()
        tweet, = EventTweet.objects.all()
        ok_(event.title in tweet.text)
        ok_('http://mzl.la/1adh2wT' in tweet.text)
        ok_(tweet.include_placeholder)
        ok_('#abba' in tweet.text)
        ok_('#firefox' in tweet.text)
        ok_('#InternFirefoxOS' in tweet.text)
        ok_('#somereallylongwordthatisactuallyatag' not in tweet.text)
예제 #6
0
    def test_tweet_new_published_events_almost_too_long(self, rget):
        def mocked_read(url, params):
            return Response({
                u'status_code': 200,
                u'data': {
                    u'url': u'http://mzl.la/1adh2wT',
                    u'hash': u'1adh2wT',
                    u'global_hash': u'1adh2wU',
                    u'long_url': u'https://air.mozilla.org/it-buildout/',
                    u'new_hash': 0
                },
                u'status_txt': u'OK'
            })

        rget.side_effect = mocked_read

        event = Event.objects.get(title='Test event')
        recently = timezone.now()
        event.title = 'A Much Longer Test Title'
        event.created = recently
        event.archive_time = recently
        event.save()
        tags = (
            'firefox',
            'Intern Firefox OS',
            'abba',
            'somereallylongwordthatisactuallyatag',
        )
        for tag in tags:
            event.tags.add(Tag.objects.create(name=tag))

        tweet_new_published_events()
        tweet, = EventTweet.objects.all()
        ok_(event.title in tweet.text)
        ok_('http://mzl.la/1adh2wT' in tweet.text)
        ok_(tweet.include_placeholder)
        ok_('#abba' in tweet.text)
        ok_('#firefox' in tweet.text)
        ok_('#InternFirefoxOS' in tweet.text)
        ok_('#somereallylongwordthatisactuallyatag' not in tweet.text)
예제 #7
0
    def test_tweet_new_published_events(self, rget):

        def mocked_read(url, params):
            return Response({
                u'status_code': 200,
                u'data': {
                    u'url': u'http://mzl.la/1adh2wT',
                    u'hash': u'1adh2wT',
                    u'global_hash': u'1adh2wU',
                    u'long_url': u'https://air.mozilla.org/it-buildout/',
                    u'new_hash': 0
                },
                u'status_txt': u'OK'
            })

        rget.side_effect = mocked_read

        event = Event.objects.get(title='Test event')
        event.tags.add(Tag.objects.create(name='testing'))
        event_tag, = event.tags.all()
        tweet_new_published_events()

        assert not EventTweet.objects.all()
        assert event.privacy == Event.PRIVACY_PUBLIC
        recently = timezone.now()
        event.created = recently
        event.archive_time = recently
        event.save()

        tweet_new_published_events()
        tweet, = EventTweet.objects.all()
        ok_(event.title in tweet.text)
        ok_('http://mzl.la/1adh2wT' in tweet.text)
        ok_(tweet.include_placeholder)
        ok_('#' + event_tag.name in tweet.text)

        # run it again and no new EventTweet should be created
        tweet_new_published_events()
        eq_(EventTweet.objects.count(), 1)
예제 #8
0
    def test_tweet_new_published_events(self, rget):
        def mocked_read(url, params):
            return Response({
                u'status_code': 200,
                u'data': {
                    u'url': u'http://mzl.la/1adh2wT',
                    u'hash': u'1adh2wT',
                    u'global_hash': u'1adh2wU',
                    u'long_url': u'https://air.mozilla.org/it-buildout/',
                    u'new_hash': 0
                },
                u'status_txt': u'OK'
            })

        rget.side_effect = mocked_read

        event = Event.objects.get(title='Test event')
        event.tags.add(Tag.objects.create(name='testing'))
        event_tag, = event.tags.all()
        tweet_new_published_events()

        assert not EventTweet.objects.all()
        assert event.privacy == Event.PRIVACY_PUBLIC
        recently = timezone.now()
        event.created = recently
        event.archive_time = recently
        event.save()

        tweet_new_published_events()
        tweet, = EventTweet.objects.all()
        ok_(event.title in tweet.text)
        ok_('http://mzl.la/1adh2wT' in tweet.text)
        ok_(tweet.include_placeholder)
        ok_('#' + event_tag.name in tweet.text)

        # run it again and no new EventTweet should be created
        tweet_new_published_events()
        eq_(EventTweet.objects.count(), 1)