def test_parse_origin_from_url(self): url = '' self.assertIsNone(parse_origin_from_url(url)) url = 'www.example.com' self.assertEqual(parse_origin_from_url(url), 'http://www.example.com') url = 'http://www.example.com' self.assertEqual(parse_origin_from_url(url), 'http://www.example.com') url = 'www.example.com:80' self.assertEqual(parse_origin_from_url(url), 'http://www.example.com') url = 'http://www.example.com:80' self.assertEqual(parse_origin_from_url(url), 'http://www.example.com') url = 'www.example.com:443' self.assertEqual(parse_origin_from_url(url), 'https://www.example.com') url = 'https://www.example.com' self.assertEqual(parse_origin_from_url(url), 'https://www.example.com') url = 'https://www.example.com:443' self.assertEqual(parse_origin_from_url(url), 'https://www.example.com') url = 'https://www.example.com:80' self.assertEqual(parse_origin_from_url(url), url) url = 'http://www.example.com:443' self.assertEqual(parse_origin_from_url(url), url)
def get_origin_setting(options): if options.origin == '*': if not options.debug: raise ValueError( 'Wildcard origin policy is only allowed in debug mode.') else: return '*' origin = options.origin.lower() if origin in ['same', 'primary']: return origin origins = set() for url in origin.split(','): orig = parse_origin_from_url(url) if orig: origins.add(orig) if not origins: raise ValueError('Empty origin list') return origins