Example #1
0
def trending_feed(request):
    events = get_featured_events(
        None,  # across all channels
        request.user,
        length=settings.TRENDING_ROKU_COUNT,
    )
    return render_channel_events(events, request)
Example #2
0
def trending_feed(request):
    events = get_featured_events(
        None,  # across all channels
        request.user,
        length=settings.TRENDING_ROKU_COUNT,
    )
    return render_channel_events(events, request)
    def test_get_featured_events(self):
        channels = Channel.objects.filter(
            slug=settings.DEFAULT_CHANNEL_SLUG
        )
        user = User.objects.create(
            username='******',
        )
        events = get_featured_events(channels, user)
        eq_(events, [])

        event = Event.objects.get(title='Test event')
        # must be archived some time ago
        yesterday = timezone.now() - datetime.timedelta(days=1)
        assert event.archive_time < yesterday
        # must be scheduled
        assert event.status == Event.STATUS_SCHEDULED
        # must be in the main channel
        assert event.channels.filter(slug=settings.DEFAULT_CHANNEL_SLUG)
        # must have some hits
        EventHitStats.objects.create(
            event=event,
            total_hits=100,
            shortcode='abc123'
        )
        # finally!
        events = get_featured_events(channels, user)
        # because it's cacjed
        eq_(events, [])
        # however...
        cache.clear()
        events = get_featured_events(channels, user)
        eq_(events, [event])

        # should work even if the event is processing
        event.status = Event.STATUS_PROCESSING
        event.save()
        cache.clear()
        events = get_featured_events(channels, user)
        eq_(events, [event])

        # but not if it's removed
        event.status = Event.STATUS_REMOVED
        event.save()
        cache.clear()
        events = get_featured_events(channels, user)
        eq_(events, [])
    def test_get_featured_events(self):
        channels = Channel.objects.filter(slug=settings.DEFAULT_CHANNEL_SLUG)
        user = User.objects.create(username='******', )
        events = get_featured_events(channels, user)
        eq_(events, [])

        event = Event.objects.get(title='Test event')
        # must be archived some time ago
        yesterday = timezone.now() - datetime.timedelta(days=1)
        assert event.archive_time < yesterday
        # must be scheduled
        assert event.status == Event.STATUS_SCHEDULED
        # must be in the main channel
        assert event.channels.filter(slug=settings.DEFAULT_CHANNEL_SLUG)
        # must have some hits
        EventHitStats.objects.create(event=event,
                                     total_hits=100,
                                     shortcode='abc123')
        # finally!
        events = get_featured_events(channels, user)
        # because it's cacjed
        eq_(events, [])
        # however...
        cache.clear()
        events = get_featured_events(channels, user)
        eq_(events, [event])

        # should work even if the event is processing
        event.status = Event.STATUS_PROCESSING
        event.save()
        cache.clear()
        events = get_featured_events(channels, user)
        eq_(events, [event])

        # but not if it's removed
        event.status = Event.STATUS_REMOVED
        event.save()
        cache.clear()
        events = get_featured_events(channels, user)
        eq_(events, [])