diff --git a/src/pretix/settings.py b/src/pretix/settings.py index a8153feab6..b8ce8aaf2f 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -367,7 +367,7 @@ except ImportError: if METRICS_ENABLED: - MIDDLEWARE.insert(MIDDLEWARE.index('pretix.multidomain.middlewares.MultiDomainMiddleware') + 1, + MIDDLEWARE.insert(MIDDLEWARE.index('pretix.multidomain.middlewares.CommonMiddleware') + 1, 'pretix.helpers.metrics.middleware.MetricsMiddleware') diff --git a/src/tests/base/test_metrics.py b/src/tests/base/test_metrics.py index 970414a1d2..e035db5268 100644 --- a/src/tests/base/test_metrics.py +++ b/src/tests/base/test_metrics.py @@ -189,3 +189,11 @@ def test_metrics_view(monkeypatch, client): # test metrics-view basic_auth = {"HTTP_AUTHORIZATION": base64.b64encode(bytes("foo:bar", "utf-8"))} assert "{} {}".format(fullname, counter_value) not in client.get("/metrics", headers=basic_auth) + + +@pytest.mark.django_db +@override_settings(HAS_REDIS=True, METRICS_USER="foo", METRICS_PASSPHRASE="bar") +def test_do_not_break_append_slash(monkeypatch, client): + r = client.get('/control') + assert r.status_code == 301 + assert r['Location'] == '/control/' diff --git a/src/tests/multidomain/test_middlewares.py b/src/tests/multidomain/test_middlewares.py index 321b28b527..a2afa0b5f2 100644 --- a/src/tests/multidomain/test_middlewares.py +++ b/src/tests/multidomain/test_middlewares.py @@ -27,6 +27,13 @@ def test_control_only_on_main_domain(env, client): assert r['Location'] == 'http://example.com/control/login' +@pytest.mark.django_db +def test_append_slash(env, client): + r = client.get('/control') + assert r.status_code == 301 + assert r['Location'] == '/control/' + + @pytest.mark.django_db def test_unknown_domain(env, client): r = client.get('/control/login', HTTP_HOST='foobar')