Skip to content
This repository has been archived by the owner on Aug 26, 2022. It is now read-only.

Commit

Permalink
bug 1477468: add redirects for marionette
Browse files Browse the repository at this point in the history
* add redirects
* add tests for redirects
  • Loading branch information
escattone committed Oct 24, 2018
1 parent 224cdb7 commit bd04852
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 6 deletions.
51 changes: 46 additions & 5 deletions kuma/redirects/redirects.py
@@ -1,4 +1,6 @@
# -*- coding: utf-8 -*-
from functools import partial

from redirect_urls import redirect as lib_redirect

from kuma.core.decorators import shared_cache_control
Expand Down Expand Up @@ -824,9 +826,48 @@ def locale_redirect(pattern, to, prepend_locale=True, **kwargs):
permanent=False,
decorators=shared_cache_control_for_zones))

redirectpatterns = scl3_redirectpatterns + zone_redirectpatterns + [
locale_redirect(
r'^fellowship',
'/docs/Archive/2015_MDN_Fellowship_Program',
permanent=True),
marionette_client_docs_url = (
'https://marionette-client.readthedocs.io/en/latest/')
marionette_docs_root_url = (
'https://firefox-source-docs.mozilla.org/testing/marionette/marionette/')
marionette_redirect = partial(locale_redirect, re_flags='i',
prepend_locale=False, permanent=True)

marionette_redirectpatterns = [
marionette_redirect(r'docs/(?:Mozilla/QA/)?Marionette$',
marionette_docs_root_url + 'index.html'),
marionette_redirect(r'docs/(?:Mozilla/QA/)?Marionette/Builds$',
marionette_docs_root_url + 'Building.html'),
marionette_redirect(r'docs/(?:Mozilla/QA/)?Marionette/Client$',
marionette_client_docs_url),
marionette_redirect(r'docs/Mozilla/QA/Marionette/Python_Client$',
marionette_client_docs_url),
marionette_redirect(r'docs/(?:Mozilla/QA/)?Marionette/Developer_setup$',
marionette_docs_root_url + 'Contributing.html'),
marionette_redirect(r'docs/Marionette_Test_Runner$',
marionette_docs_root_url + 'PythonTests.html'),
marionette_redirect(r'docs/Mozilla/QA/Marionette/Marionette_Test_Runner$',
marionette_docs_root_url + 'PythonTests.html'),
marionette_redirect(r'docs/(?:Mozilla/QA/)?Marionette/(?:MarionetteTestCase'
r'|Marionette_Python_Tests|Running_Tests|Tests)$',
marionette_docs_root_url + 'PythonTests.html'),
marionette_redirect(r'docs/Mozilla/QA/Marionette/Protocol$',
marionette_docs_root_url + 'Protocol.html'),
marionette_redirect(r'docs/Mozilla/QA/Marionette/WebDriver/status$',
'https://bugzilla.mozilla.org'
'/showdependencytree.cgi?id=721859&hide_resolved=1'),
marionette_redirect(r'docs/Marionette/Debugging$',
marionette_docs_root_url + 'Debugging.html'),
]

redirectpatterns = (
scl3_redirectpatterns +
zone_redirectpatterns +
marionette_redirectpatterns +
[
locale_redirect(
r'^fellowship',
'/docs/Archive/2015_MDN_Fellowship_Program',
permanent=True),
]
)
34 changes: 34 additions & 0 deletions tests/headless/map_301.py
Expand Up @@ -439,3 +439,37 @@
url_test('/en-US/fellowship',
'/en-US/docs/Archive/2015_MDN_Fellowship_Program'),
)))

marionette_client_docs_url = (
'https://marionette-client.readthedocs.io/en/latest/')
marionette_docs_root_url = (
'https://firefox-source-docs.mozilla.org/testing/marionette/marionette/')
marionette_locales = '{/en-US,/fr,/ja,/pl,/pt-BR,/ru,/zh-CN,}'
marionette_base = marionette_locales + '/docs/Mozilla/QA/Marionette'
marionette_multi_base = marionette_locales + '/docs/{Mozilla/QA/,}Marionette'
marionette_python_tests = (
'{MarionetteTestCase,Marionette_Python_Tests,Running_Tests,Tests}')

MARIONETTE_URLS = list(flatten((
url_test(marionette_multi_base, marionette_docs_root_url + 'index.html'),
url_test(marionette_multi_base + '/Builds',
marionette_docs_root_url + 'Building.html'),
url_test(marionette_multi_base + '/Client', marionette_client_docs_url),
url_test(marionette_multi_base + '/Developer_setup',
marionette_docs_root_url + 'Contributing.html'),
url_test(marionette_multi_base + '/' + marionette_python_tests,
marionette_docs_root_url + 'PythonTests.html'),
url_test(marionette_locales + '/docs/Marionette_Test_Runner',
marionette_docs_root_url + 'PythonTests.html'),
url_test(marionette_base + '/Marionette_Test_Runner',
marionette_docs_root_url + 'PythonTests.html'),
url_test(marionette_base + '/Protocol',
marionette_docs_root_url + 'Protocol.html'),
url_test(marionette_base + '/Python_Client',
marionette_client_docs_url),
url_test(marionette_base + '/WebDriver/status',
'https://bugzilla.mozilla.org'
'/showdependencytree.cgi?id=721859&hide_resolved=1'),
url_test(marionette_locales + '/docs/Marionette/Debugging',
marionette_docs_root_url + 'Debugging.html'),
)))
12 changes: 11 additions & 1 deletion tests/headless/test_redirects.py
Expand Up @@ -5,7 +5,8 @@
from utils.urls import assert_valid_url

from .map_301 import (GITHUB_IO_URLS, LEGACY_URLS, MOZILLADEMOS_URLS,
REDIRECT_URLS, SCL3_REDIRECT_URLS, ZONE_REDIRECT_URLS)
MARIONETTE_URLS, REDIRECT_URLS, SCL3_REDIRECT_URLS,
ZONE_REDIRECT_URLS)

# while these test methods are similar, they're each testing a
# subset of redirects, and it was easier to work with them separately.
Expand Down Expand Up @@ -63,3 +64,12 @@ def test_slc3_redirects(url, base_url):
def test_zone_redirects(url, base_url):
url['base_url'] = base_url
assert_valid_url(**url)


@pytest.mark.headless
@pytest.mark.nondestructive
@pytest.mark.parametrize('url', MARIONETTE_URLS,
ids=[item['url'] for item in MARIONETTE_URLS])
def test_marionette_redirects(url, base_url):
url['base_url'] = base_url
assert_valid_url(**url)

0 comments on commit bd04852

Please sign in to comment.