From 0344f57fefc0877bf9048a084002fc719335e31c Mon Sep 17 00:00:00 2001 From: Paul Tremberth Date: Tue, 11 Oct 2016 19:53:15 +0200 Subject: [PATCH] Support case-insensitive policy names in settings --- scrapy/spidermiddlewares/referer.py | 2 +- tests/test_spidermiddleware_referer.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/scrapy/spidermiddlewares/referer.py b/scrapy/spidermiddlewares/referer.py index 88041d8f0..deda7b284 100644 --- a/scrapy/spidermiddlewares/referer.py +++ b/scrapy/spidermiddlewares/referer.py @@ -229,7 +229,7 @@ class RefererMiddleware(object): self.default_policy = load_object(policy) except ValueError: try: - self.default_policy = _policy_classes[policy] + self.default_policy = _policy_classes[policy.lower()] except: raise NotConfigured("Unknown referrer policy name %r" % policy) else: diff --git a/tests/test_spidermiddleware_referer.py b/tests/test_spidermiddleware_referer.py index b724d7999..b1ab366a7 100644 --- a/tests/test_spidermiddleware_referer.py +++ b/tests/test_spidermiddleware_referer.py @@ -310,6 +310,20 @@ class TestRefererMiddlewareSettingsPolicyByName(TestCase): mw = RefererMiddleware(settings) self.assertEquals(mw.default_policy, p) + def test_valid_name_casevariants(self): + for s, p in [ + (POLICY_SCRAPY_DEFAULT, DefaultReferrerPolicy), + (POLICY_NO_REFERRER, NoReferrerPolicy), + (POLICY_NO_REFERRER_WHEN_DOWNGRADE, NoReferrerWhenDowngradePolicy), + (POLICY_SAME_ORIGIN, SameOriginPolicy), + (POLICY_ORIGIN, OriginPolicy), + (POLICY_ORIGIN_WHEN_CROSS_ORIGIN, OriginWhenCrossOriginPolicy), + (POLICY_UNSAFE_URL, UnsafeUrlPolicy), + ]: + settings = Settings({'REFERER_POLICY': s.upper()}) + mw = RefererMiddleware(settings) + self.assertEquals(mw.default_policy, p) + def test_invalid_name(self): settings = Settings({'REFERER_POLICY': 'some-custom-unknown-policy'}) with self.assertRaises(NotConfigured):