mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Utils: add coerce_url_to_protocol()
Sometimes we have a url that may or may not be using the protocol we want. In those cases, it's nice to have a handy way to ensure the protocol.
This commit is contained in:
@@ -677,6 +677,13 @@ class UrlParser(object):
|
||||
u.path, u.params, u.query, fragment))
|
||||
|
||||
|
||||
def coerce_url_to_protocol(url, protocol='http'):
|
||||
'''Given an absolute (but potentially protocol-relative) url, coerce it to
|
||||
a protocol.'''
|
||||
parsed_url = UrlParser(url)
|
||||
parsed_url.scheme = protocol
|
||||
return parsed_url.unparse()
|
||||
|
||||
def url_is_embeddable_image(url):
|
||||
"""The url is on an oembed-friendly domain and looks like an image."""
|
||||
parsed_url = UrlParser(url)
|
||||
|
||||
@@ -70,6 +70,31 @@ class UtilsTest(unittest.TestCase):
|
||||
utils.extract_subdomain('internet-frontpage.com', 'reddit.com'),
|
||||
'')
|
||||
|
||||
def test_coerce_url_to_protocol(self):
|
||||
self.assertEquals(
|
||||
utils.coerce_url_to_protocol('http://example.com/foo'),
|
||||
'http://example.com/foo')
|
||||
|
||||
self.assertEquals(
|
||||
utils.coerce_url_to_protocol('https://example.com/foo'),
|
||||
'http://example.com/foo')
|
||||
|
||||
self.assertEquals(
|
||||
utils.coerce_url_to_protocol('//example.com/foo'),
|
||||
'http://example.com/foo')
|
||||
|
||||
self.assertEquals(
|
||||
utils.coerce_url_to_protocol('http://example.com/foo', 'https'),
|
||||
'https://example.com/foo')
|
||||
|
||||
self.assertEquals(
|
||||
utils.coerce_url_to_protocol('https://example.com/foo', 'https'),
|
||||
'https://example.com/foo')
|
||||
|
||||
self.assertEquals(
|
||||
utils.coerce_url_to_protocol('//example.com/foo', 'https'),
|
||||
'https://example.com/foo')
|
||||
|
||||
|
||||
class TestCanonicalizeEmail(unittest.TestCase):
|
||||
def test_empty_string(self):
|
||||
|
||||
Reference in New Issue
Block a user