Example #1
0
 def test_event_versioning(self):
     
     now = timezone.now()
     t1 = now + datetime.timedelta(days=3)
     t2 = now + datetime.timedelta(days=5)
     
     # just created event, empty prefix expected
     event = Event(title=u'Test', description='Test', url='http://www.example.com', date_time_begin=t1)
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertFalse(changed)
     self.assertEqual("", prefix)
     
     # date updated, prefix expected
     now = timezone.now()
     event.date_time_begin = t2
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertTrue(changed)
     self.assertEqual("[Update][Datum] ", prefix)
     
     # location added, no update expected
     now = timezone.now()
     event.location = Location.objects.get(id=1)
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertFalse(changed)
     self.assertEqual("", prefix)
     
     # location updated, prefix expected
     now = timezone.now()
     event.location = Location.objects.get(id=2)
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertTrue(changed)
     self.assertEqual("[Update][Ort] ", prefix)
     
     # canceled, prefix expected
     now = timezone.now()
     event.canceled = True;
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertTrue(changed)
     self.assertEqual("[Abgesagt] ", prefix)
Example #2
0
def __must_tweet_and_prefix(event, tweet_type):
    # check if already tweeted, reweet only when changed
    tweet = None
    tweet_list = TweetedEvent.objects.filter(event=event).filter(type=tweet_type).order_by('-date_time_created')
    if tweet_list:
        tweet = tweet_list[0]
        
        changed, prefix = utils.get_changed_and_change_prefix(event, tweet.date_time_created)
        if changed and not tweet.tweet.startswith(prefix):
            return (True, prefix)
        else:
            return (False, '')
    
    # always tweet canceled event once
    canceled, prefix = utils.get_canceled_and_cancel_prefix(event)
    if canceled:
        return (True, prefix)
    else:
        return (True, '')