def test_queryset(self): """ Compatible listing views must return normalized querysets. """ view = CompatibleListingView() view.request = self.factory.get('/') view.kwargs = {} self.assertTrue(isinstance(view.get_queryset(), NormalizedVideoList))
def test_paginate_by(self): """ Compatible listing views support the 'count' parameter to modify pagination. """ view = CompatibleListingView() view.request = self.factory.get('/', {'count': 1}) self.assertEqual(view.get_paginate_by(None), 1)
def test_get_context_data(self): """ Compatible listing views should include 'query' and 'video_list'. """ view = CompatibleListingView() view.request = self.factory.get('/') view.kwargs = {} context = view.get_context_data(object_list=view.get_queryset()) self.assertTrue('query' in context) self.assertTrue('video_list' in context) for f in context['form'].filter_fields(): self.assertFalse(f.name in context)
def test_get_form_data(self): """ Compatible listing views support 'query' as an alterative to 'q' iff 'q' is not also supplied, and allow 'latest' as an alias for 'newest'. """ view = CompatibleListingView() data = view.get_form_data({'query': 'foo'}) self.assertEqual(data.get('q'), 'foo') data = view.get_form_data({'query': 'foo', 'q': 'bar'}) self.assertEqual(data.get('q'), 'bar') data = view.get_form_data({'sort': 'latest'}) self.assertEqual(data.get('sort'), 'newest')
def test_get_form_data(self): """ Compatible listing views support 'query' as an alterative to 'q' iff 'q' is not also supplied, and allow 'latest' as an alias for 'newest'. """ view = CompatibleListingView() data = view.get_form_data({"query": "foo"}) self.assertEqual(data.get("q"), "foo") data = view.get_form_data({"query": "foo", "q": "bar"}) self.assertEqual(data.get("q"), "bar") data = view.get_form_data({"sort": "latest"}) self.assertEqual(data.get("sort"), "newest")
urlpatterns = patterns( 'localtv.views', url(r'^$', IndexView.as_view(), name='localtv_index'), url(r'^about/$', 'about', name='localtv_about'), url(r'^share/(\d+)/(\d+)', 'share_email', name='email-share'), url(r'^video/(?P<video_id>[0-9]+)(?:/(?P<slug>[\w~-]+))?/?$', VideoView.as_view(), name='localtv_view_video'), url(r'^api/', include(api_v1.urls))) # Listing patterns # This has to be importable for now because of a hack in the view_video view # which imports this view to check whether the referer was a category page. category_videos = CompatibleListingView.as_view( template_name='localtv/category.html', filter_name='category', filter_kwarg='slug' ) urlpatterns += patterns( 'localtv.listing.views', url(r'^search/$', CompatibleListingView.as_view( template_name='localtv/video_listing_search.html', ), name='localtv_search'), url(r'^category/$', SiteListView.as_view( template_name='localtv/categories.html', queryset=Category.objects.filter(level=0), paginate_by=15 ), name='localtv_category_index'), url(r'^category/(?P<slug>[-\w]+)/$', category_videos, name='localtv_category'), url(r'^author/$', ListView.as_view(
'localtv.views', url(r'^$', IndexView.as_view(), name='localtv_index'), url(r'^about/$', 'about', name='localtv_about'), url(r'^share/(\d+)/(\d+)', 'share_email', name='email-share'), url(r'^video/(?P<video_id>[0-9]+)(?:/(?P<slug>[\w-]+))?/?$', VideoView.as_view(), name='localtv_view_video'), url(r'^newsletter/$', 'newsletter', name='localtv_newsletter'), url(r'^api/', include(api_v1.urls))) # Listing patterns # This has to be importable for now because of a hack in the view_video view # which imports this view to check whether the referer was a category page. category_videos = CompatibleListingView.as_view( template_name='localtv/category.html', filter_name='category', filter_kwarg='slug' ) urlpatterns += patterns( 'localtv.listing.views', url(r'^search/$', CompatibleListingView.as_view( template_name='localtv/video_listing_search.html', ), name='localtv_search'), url(r'^category/$', SiteListView.as_view( template_name='localtv/categories.html', queryset=Category.objects.filter(level=0), paginate_by=15 ), name='localtv_category_index'), url(r'^category/(?P<slug>[-\w]+)/$', category_videos, name='localtv_category'), url(r'^author/$', ListView.as_view(
import datetime from django.conf.urls.defaults import patterns, url from django.views.generic.base import TemplateView from localtv.listing.views import CompatibleListingView urlpatterns = patterns( 'localtv.listing.views', url(r'^$', TemplateView.as_view(template_name="localtv/browse.html"), name='localtv_list_index'), url(r'^new/$', CompatibleListingView.as_view( template_name='localtv/video_listing_new.html', ), name='localtv_list_new'), url(r'^this-week/$', CompatibleListingView.as_view( template_name='localtv/video_listing_new.html', approved_since=datetime.timedelta(days=7), sort='approved', ), name='localtv_list_this_week'), url(r'^popular/$', CompatibleListingView.as_view( template_name='localtv/video_listing_popular.html', sort='popular'), name='localtv_list_popular'), url(r'^featured/$', CompatibleListingView.as_view( template_name='localtv/video_listing_featured.html',
import datetime from django.conf.urls.defaults import patterns, url from django.views.generic.base import TemplateView from localtv.listing.views import CompatibleListingView urlpatterns = patterns( 'localtv.listing.views', url(r'^$', TemplateView.as_view(template_name="localtv/browse.html"), name='localtv_list_index'), url(r'^new/$', CompatibleListingView.as_view( template_name='localtv/video_listing_new.html', ), name='localtv_list_new'), url(r'^this-week/$', CompatibleListingView.as_view( template_name='localtv/video_listing_new.html', approved_since=datetime.timedelta(days=7), sort='approved', ), name='localtv_list_this_week'), url(r'^popular/$', CompatibleListingView.as_view( template_name='localtv/video_listing_popular.html', sort='popular' ), name='localtv_list_popular'), url(r'^featured/$', CompatibleListingView.as_view( template_name='localtv/video_listing_featured.html', sort='featured', filter_name='featured', filter_kwarg='value', ), {'value': True}, name='localtv_list_featured'), url(r'^tag/(?P<name>.+)/$', CompatibleListingView.as_view(
from localtv.views import IndexView, VideoView # "Base" patterns urlpatterns = patterns( 'localtv.views', url(r'^$', IndexView.as_view(), name='localtv_index'), url(r'^about/$', 'about', name='localtv_about'), url(r'^share/(\d+)/(\d+)', 'share_email', name='email-share'), url(r'^video/(?P<video_id>[0-9]+)(?:/(?P<slug>[\w~-]+))?/?$', VideoView.as_view(), name='localtv_view_video'), url(r'^api/', include(api_v1.urls))) # Listing patterns # This has to be importable for now because of a hack in the view_video view # which imports this view to check whether the referer was a category page. category_videos = CompatibleListingView.as_view( template_name='localtv/category.html', filter_name='category', filter_kwarg='slug') urlpatterns += patterns( 'localtv.listing.views', url(r'^search/$', CompatibleListingView.as_view( template_name='localtv/video_listing_search.html', ), name='localtv_search'), url(r'^category/$', SiteListView.as_view(template_name='localtv/categories.html', queryset=Category.objects.filter(level=0), paginate_by=15), name='localtv_category_index'), url(r'^category/(?P<slug>[-\w]+)/$', category_videos, name='localtv_category'),