Example #1
0
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']
Example #2
0
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'),
]
Example #3
0
File: urls.py Project: mozilla/kuma
        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>[^/]+)',
Example #4
0
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'),
]
Example #5
0
    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
            )
        )
    )
Example #6
0
File: urls.py Project: mozilla/kuma
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'),
]
Example #7
0
# -*- 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:
Example #8
0
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'),
]
Example #9
0
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')),
Example #10
0
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'),
]
Example #11
0
File: urls.py Project: Elchi3/kuma
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'),
]
Example #12
0
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',
Example #13
0
File: urls.py Project: Elchi3/kuma
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'),
]
Example #14
0
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')))
Example #15
0
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'),
]
Example #16
0
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)
            ),
        )
    )
Example #17
0
    """
    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/',
Example #18
0

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
Example #19
0
 ),
 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()),
Example #20
0
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'),
]
Example #21
0
    """
    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,
Example #22
0
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'),
]
Example #23
0
 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",
 ),
Example #24
0
File: urls.py Project: Ladeia/kuma
    """
    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/',
Example #25
0
File: urls.py Project: Elchi3/kuma

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