def test_shared_cache_control_decorator_with_defaults(rf, settings): settings.CACHE_CONTROL_DEFAULT_SHARED_MAX_AGE = 777 request = rf.get('/foo') response = shared_cache_control(simple_view)(request) assert response.status_code == 200 assert 'Cache-Control' in response assert 'public' in response['Cache-Control'] assert 'max-age=0' in response['Cache-Control'] assert 's-maxage=777' in response['Cache-Control']
from __future__ import unicode_literals from django.conf.urls import url from django.views.generic.base import RedirectView from kuma.core.decorators import shared_cache_control from . import views WEEK = 60 * 60 * 24 * 7 lang_urlpatterns = [ url(r'^revisions$', views.revisions, name='dashboards.revisions'), url(r'^user_lookup$', views.user_lookup, name='dashboards.user_lookup'), url(r'^topic_lookup$', views.topic_lookup, name='dashboards.topic_lookup'), url( r'^localization$', # Here the "shared_cache_control" decorator is an optimization. It # informs the CDN to cache the redirect for a week, so once this URL # has been requested by a client, all other client requests will be # redirected by the CDN instead of this Django service. shared_cache_control(s_maxage=WEEK)(RedirectView.as_view( url='/docs/MDN/Doc_status/Overview', permanent=True, ))), url(r'^spam$', views.spam, name='dashboards.spam'), url(r'^macros$', views.macros, name='dashboards.macros'), ]
views.list.needs_review, name='wiki.list_review_tag'), url(r'^needs-review/?', views.list.needs_review, name='wiki.list_review'), url(r'^localization-tag/(?P<tag>[^/]+)$', views.list.with_localization_tag, name='wiki.list_with_localization_tag'), url(r'^localization-tag/?', views.list.with_localization_tag, name='wiki.list_with_localization_tags'), # Legacy KumaScript macro list, when they were stored in Kuma database url(r'^templates$', shared_cache_control(s_maxage=60 * 60 * 24 * 30)( RedirectView.as_view(pattern_name='dashboards.macros', permanent=True) )), # Akismet Revision url(r'^submit_akismet_spam$', views.akismet_revision.submit_akismet_spam, name='wiki.submit_akismet_spam'), # Feeds url(r'^feeds/(?P<format>[^/]+)/all/?', shared_cache_control(feeds.DocumentsRecentFeed()), name="wiki.feeds.recent_documents"), url(r'^feeds/(?P<format>[^/]+)/l10n-updates/?', shared_cache_control(feeds.DocumentsUpdatedTranslationParentFeed()), name="wiki.feeds.l10n_updates"), url(r'^feeds/(?P<format>[^/]+)/tag/(?P<tag>[^/]+)',
from __future__ import unicode_literals from django.conf.urls import url from kuma.core.decorators import shared_cache_control from . import views MONTH = 60 * 60 * 24 * 30 lang_urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^maintenance-mode/?$', views.maintenance_mode, name='maintenance_mode'), url(r'^promote/?$', views.promote_buttons, name='promote'), url(r'^promote/buttons/?$', views.promote_buttons, name='promote_buttons'), ] urlpatterns = [ url(r'^contribute\.json$', shared_cache_control(views.contribute_json), name='contribute_json'), url(r'^robots.txt$', shared_cache_control(views.robots_txt), name='robots_txt'), url(r'^favicon.ico$', shared_cache_control(views.FaviconRedirect.as_view(), s_maxage=MONTH), name='favicon_ico'), ]
return serve(request, path, document_root=settings.MEDIA_ROOT) admin.autodiscover() handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 urlpatterns = [ url('', include('kuma.health.urls')), url('', include('kuma.landing.urls')), url( r'^events', shared_cache_control(RedirectView.as_view( url='https://mozilla.org/contribute/events', permanent=False )), name='events' ), ] if settings.MAINTENANCE_MODE: urlpatterns.append( url( r'^admin/.*', RedirectView.as_view( pattern_name='maintenance_mode', permanent=False ) ) )
MONTH = 60 * 60 * 24 * 30 lang_urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^maintenance-mode/?$', views.maintenance_mode, name='maintenance_mode'), url(r'^promote/?$', views.promote_buttons, name='promote'), url(r'^promote/buttons/?$', views.promote_buttons, name='promote_buttons'), ] urlpatterns = [ url(r'^contribute\.json$', shared_cache_control(views.contribute_json), name='contribute_json'), url(r'^robots.txt$', shared_cache_control(views.robots_txt), name='robots_txt'), url(r'^favicon.ico$', shared_cache_control(views.FaviconRedirect.as_view(), s_maxage=MONTH), name='favicon_ico'), ]
# -*- coding: utf-8 -*- from __future__ import unicode_literals from functools import partial from redirect_urls import redirect as lib_redirect from kuma.core.decorators import shared_cache_control shared_cache_control_for_zones = shared_cache_control( s_maxage=60 * 60 * 24 * 7) def redirect(pattern, to, **kwargs): """ Return a url matcher suited for urlpatterns Changes the defaults for locale_prefix and prepend_locale in the redirect_urls library. """ return lib_redirect(pattern, to, locale_prefix=False, prepend_locale=False, **kwargs) def locale_redirect(pattern, to, prepend_locale=True, **kwargs): """ Return a locale url matcher suited for urlpatterns This is suited for matching URLs that may start with a locale, like:
from __future__ import unicode_literals from django.conf.urls import url from kuma.core.decorators import beta_shared_cache_control, shared_cache_control from . import views MONTH = 60 * 60 * 24 * 30 lang_urlpatterns = [ url(r'^$', views.react_home, name='home'), ] urlpatterns = [ url(r'^contribute\.json$', beta_shared_cache_control(views.contribute_json), name='contribute_json'), url(r'^robots.txt$', beta_shared_cache_control(views.robots_txt), name='robots_txt'), url(r'^favicon.ico$', shared_cache_control(views.FaviconRedirect.as_view(), s_maxage=MONTH), name='favicon_ico'), ]
from kuma.core.decorators import beta_shared_cache_control, shared_cache_control from kuma.core.urlresolvers import i18n_patterns from kuma.landing.urls_beta import lang_urlpatterns as landing_lang_urlpatterns from kuma.views import serve_from_media_root handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 DAY = 60 * 60 * 24 MONTH = DAY * 30 YEAR = DAY * 365 redirect_to_attachments_domain = shared_cache_control( RedirectView.as_view(url=settings.ATTACHMENT_SITE_URL + '/%(path)s'), s_maxage=YEAR ) urlpatterns = [ url('', include('kuma.health.urls')), url('^api/', include('kuma.api.urls')), # The non-locale-based landing URL's url('', include('kuma.landing.urls_beta')), ] # The locale-based landing URL's urlpatterns += i18n_patterns(url('', include(landing_lang_urlpatterns))) # The beta docs URL's (all of which are locale-based) urlpatterns += i18n_patterns(url(r'^docs/', include('kuma.wiki.urls_beta'))) # The version, sitemap, humans, and file-attachment URL's (all non-locale-based) urlpatterns += [ url('', include('kuma.version.urls')),
from django.conf.urls import url from . import views from kuma.core.decorators import shared_cache_control urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^contribute\.json$', views.contribute_json, name='contribute_json'), url(r'^maintenance-mode/?$', views.maintenance_mode, name='maintenance_mode'), url(r'^promote/?$', views.promote_buttons, name='promote'), url(r'^promote/buttons/?$', views.promote_buttons, name='promote_buttons'), url(r'^robots.txt$', views.robots_txt, name='robots_txt'), url(r'^favicon.ico$', shared_cache_control( views.FaviconRedirect.as_view(icon='favicon.ico')), name='favicon_ico'), ]
from django.conf.urls import url from django.views.generic.base import RedirectView from kuma.core.decorators import shared_cache_control from . import views lang_urlpatterns = [ url(r'^revisions$', views.revisions, name='dashboards.revisions'), url(r'^user_lookup$', views.user_lookup, name='dashboards.user_lookup'), url(r'^topic_lookup$', views.topic_lookup, name='dashboards.topic_lookup'), url(r'^localization$', shared_cache_control(RedirectView.as_view( url='/docs/MDN/Doc_status/Overview', permanent=True, ))), url(r'^spam$', views.spam, name='dashboards.spam'), url(r'^macros$', views.macros, name='dashboards.macros'), ]
from kuma.dashboards.views import index as dashboards_index from kuma.landing.urls import lang_urlpatterns as landing_lang_urlpatterns from kuma.payments import views as payment_views from kuma.payments.urls import ( lang_urlpatterns as payments_lang_urlpatterns) from kuma.search.urls import ( lang_base_urlpatterns as search_lang_base_urlpatterns, lang_urlpatterns as search_lang_urlpatterns) from kuma.users.urls import lang_urlpatterns as users_lang_urlpatterns from kuma.wiki.admin import purge_view from kuma.wiki.urls import lang_urlpatterns as wiki_lang_urlpatterns from kuma.wiki.views.document import as_json as document_as_json from kuma.wiki.views.legacy import mindtouch_to_kuma_redirect serve_from_media_root = shared_cache_control(kuma.views.serve_from_media_root) admin.autodiscover() handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 urlpatterns = [url('', include('kuma.health.urls'))] urlpatterns += [url('', include('kuma.landing.urls'))] urlpatterns += i18n_patterns(url('', include(landing_lang_urlpatterns))) urlpatterns += i18n_patterns( url( r'^events', shared_cache_control(RedirectView.as_view( url='https://mozilla.org/contribute/events',
from . import views lang_urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^maintenance-mode/?$', views.maintenance_mode, name='maintenance_mode'), url(r'^promote/?$', views.promote_buttons, name='promote'), url(r'^promote/buttons/?$', views.promote_buttons, name='promote_buttons'), ] urlpatterns = [ url(r'^contribute\.json$', views.contribute_json, name='contribute_json'), url(r'^robots.txt$', views.robots_txt, name='robots_txt'), url(r'^favicon.ico$', shared_cache_control(views.FaviconRedirect.as_view()), name='favicon_ico'), ]
from kuma.core.decorators import beta_shared_cache_control, shared_cache_control from kuma.core.urlresolvers import i18n_patterns from kuma.landing.urls_beta import lang_urlpatterns as landing_lang_urlpatterns from kuma.users.urls_beta import lang_urlpatterns as users_lang_urlpatterns from kuma.views import serve_from_media_root handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 DAY = 60 * 60 * 24 MONTH = DAY * 30 YEAR = DAY * 365 redirect_to_attachments_domain = shared_cache_control( RedirectView.as_view(url=settings.ATTACHMENT_SITE_URL + '/%(path)s'), s_maxage=YEAR) urlpatterns = [ url('', include('kuma.health.urls')), url('^api/', include('kuma.api.urls')), # The non-locale-based landing URL's url('', include('kuma.landing.urls_beta')), ] # The locale-based landing URL's urlpatterns += i18n_patterns(url('', include(landing_lang_urlpatterns))) # The beta docs URL's (all of which are locale-based) urlpatterns += i18n_patterns(url(r'^docs/', include('kuma.wiki.urls_beta'))) # The beta search URL urlpatterns += i18n_patterns(url(r'^search$', include('kuma.search.urls_beta')))
from django.conf.urls import url from . import views from kuma.core.decorators import shared_cache_control urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^contribute\.json$', views.contribute_json, name='contribute_json'), url(r'^maintenance-mode/?$', views.maintenance_mode, name='maintenance_mode'), url(r'^promote/?$', views.promote_buttons, name='promote'), url(r'^promote/buttons/?$', views.promote_buttons, name='promote_buttons'), url(r'^robots.txt$', views.robots_txt, name='robots_txt'), url(r'^favicon.ico$', shared_cache_control( views.FaviconRedirect.as_view(icon='favicon.ico')), name='favicon_ico'), ]
urlpatterns = [re_path("", include("kuma.health.urls"))] # The non-locale-based landing URL's urlpatterns += [re_path("", include("kuma.landing.urls"))] # The locale-based landing URL's urlpatterns += i18n_patterns(re_path("", include(landing_lang_urlpatterns))) urlpatterns += i18n_patterns( re_path( r"^events", # Here the "shared_cache_control" decorator is an optimization. It # informs the CDN to cache the redirect for a month, so once this URL # has been requested by a client, all other client requests will be # redirected by the CDN instead of this Django service. shared_cache_control(s_maxage=MONTH)( RedirectView.as_view( url="https://mozilla.org/contribute/events", permanent=False ) ), name="events", ), ) if settings.MAINTENANCE_MODE: urlpatterns.append( re_path( r"^admin/.*", never_cache( RedirectView.as_view(pattern_name="maintenance_mode", permanent=False) ), ) )
""" return serve(request, path, document_root=settings.MEDIA_ROOT) admin.autodiscover() handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 urlpatterns = [ url('', include('kuma.health.urls')), url('', include('kuma.landing.urls')), url(r'^events', shared_cache_control( RedirectView.as_view(url='https://mozilla.org/contribute/events', permanent=False)), name='events'), ] if settings.MAINTENANCE_MODE: urlpatterns.append( url( r'^admin/.*', never_cache( RedirectView.as_view(pattern_name='maintenance_mode', permanent=False)))) else: urlpatterns += [ # Django admin: url(r'^admin/wiki/document/purge/',
from functools import partial from redirect_urls import redirect as lib_redirect from kuma.core.decorators import shared_cache_control shared_cache_control_for_zones = shared_cache_control( s_maxage=60 * 60 * 24 * 7) def redirect(pattern, to, **kwargs): """ Return a url matcher suited for urlpatterns Changes the defaults for locale_prefix and prepend_locale in the redirect_urls library. """ return lib_redirect(pattern, to, locale_prefix=False, prepend_locale=False, **kwargs) def locale_redirect(pattern, to, prepend_locale=True, **kwargs): """ Return a locale url matcher suited for urlpatterns This is suited for matching URLs that may start with a locale, like: /en-US/docs/Foo/Bar
), re_path( r"^localization-tag/?", views.list.with_localization_tag, name="wiki.list_with_localization_tags", ), # Akismet Revision re_path( r"^submit_akismet_spam$", views.akismet_revision.submit_akismet_spam, name="wiki.submit_akismet_spam", ), # Feeds re_path( r"^feeds/(?P<format>[^/]+)/all/?", shared_cache_control(feeds.DocumentsRecentFeed()), name="wiki.feeds.recent_documents", ), re_path( r"^feeds/(?P<format>[^/]+)/l10n-updates/?", shared_cache_control(feeds.DocumentsUpdatedTranslationParentFeed()), name="wiki.feeds.l10n_updates", ), re_path( r"^feeds/(?P<format>[^/]+)/tag/(?P<tag>[^/]+)", shared_cache_control(feeds.DocumentsRecentFeed()), name="wiki.feeds.recent_documents", ), re_path( r"^feeds/(?P<format>[^/]+)/needs-review/(?P<tag>[^/]+)", shared_cache_control(feeds.DocumentsReviewFeed()),
from __future__ import unicode_literals from django.conf.urls import url from kuma.core.decorators import shared_cache_control from . import views lang_urlpatterns = [ url(r'^$', views.react_home, name='home'), ] urlpatterns = [ url(r'^contribute\.json$', views.contribute_json, name='contribute_json'), url(r'^robots.txt$', views.robots_txt, name='robots_txt'), url(r'^favicon.ico$', shared_cache_control(views.FaviconRedirect.as_view()), name='favicon_ico'), ]
""" return serve(request, path, document_root=settings.MEDIA_ROOT) admin.autodiscover() handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 urlpatterns = [ url('', include('kuma.health.urls')), url('', include('kuma.landing.urls')), url(r'^events', shared_cache_control( RedirectView.as_view(url='https://mozilla.org/contribute/events', permanent=False)), name='events'), ] if settings.MAINTENANCE_MODE: urlpatterns.append( url( r'^admin/.*', RedirectView.as_view(pattern_name='maintenance_mode', permanent=False))) else: urlpatterns += [ # Django admin: url(r'^admin/wiki/document/purge/', purge_view,
from django.conf.urls import url from kuma.core.decorators import shared_cache_control from . import views MONTH = 60 * 60 * 24 * 30 lang_urlpatterns = [ url(r'^$', views.home, name='home'), url(r'^maintenance-mode/?$', views.maintenance_mode, name='maintenance_mode'), url(r'^promote/?$', views.promote_buttons, name='promote'), url(r'^promote/buttons/?$', views.promote_buttons, name='promote_buttons'), ] urlpatterns = [ url(r'^contribute\.json$', views.contribute_json, name='contribute_json'), url(r'^robots.txt$', views.robots_txt, name='robots_txt'), url(r'^favicon.ico$', shared_cache_control(views.FaviconRedirect.as_view(), s_maxage=MONTH), name='favicon_ico'), ]
re_path( r"^localization-tag/(?P<tag>[^/]+)$", views.list.with_localization_tag, name="wiki.list_with_localization_tag", ), re_path( r"^localization-tag/?", views.list.with_localization_tag, name="wiki.list_with_localization_tags", ), # Legacy KumaScript macro list, when they were stored in Kuma database re_path( r"^templates$", ensure_wiki_domain( shared_cache_control(s_maxage=60 * 60 * 24 * 30)( RedirectView.as_view(pattern_name="dashboards.macros", permanent=True) ) ), ), # Akismet Revision re_path( r"^submit_akismet_spam$", views.akismet_revision.submit_akismet_spam, name="wiki.submit_akismet_spam", ), # Feeds re_path( r"^feeds/(?P<format>[^/]+)/all/?", shared_cache_control(feeds.DocumentsRecentFeed()), name="wiki.feeds.recent_documents", ),
""" return serve(request, path, document_root=settings.MEDIA_ROOT) admin.autodiscover() handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 urlpatterns = [ url('', include('kuma.health.urls')), url('', include('kuma.landing.urls')), url(r'^events', shared_cache_control( RedirectView.as_view(url='https://mozilla.org/contribute/events', permanent=False)), name='events'), ] if settings.MAINTENANCE_MODE: urlpatterns.append( url( r'^admin/.*', never_cache( RedirectView.as_view(pattern_name='maintenance_mode', permanent=False)))) else: urlpatterns += [ # Django admin: url(r'^admin/wiki/document/purge/',
admin.autodiscover() handler403 = core_views.handler403 handler404 = core_views.handler404 handler500 = core_views.handler500 urlpatterns = [url('', include('kuma.health.urls'))] urlpatterns += [url('', include('kuma.landing.urls'))] urlpatterns += i18n_patterns(url('', include(landing_lang_urlpatterns))) urlpatterns += i18n_patterns( url( r'^events', shared_cache_control(RedirectView.as_view( url='https://mozilla.org/contribute/events', permanent=False )), name='events' ), ) if settings.MAINTENANCE_MODE: urlpatterns.append( url( r'^admin/.*', never_cache(RedirectView.as_view( pattern_name='maintenance_mode', permanent=False )) ) )