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)
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())
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())
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)
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)