def test_unsplit_relative_urls(self): self.assertEqual(urlparse.urlunparse(('x-newscheme', None, 'stuff', '', '', '')), "x-newscheme:stuff") self.assertEqual(urlparse.urlunparse(('x-newscheme', None, '/stuff', '', '', '')), "x-newscheme:/stuff") self.assertEqual(urlparse.urlunparse(('x-newscheme', 'stuff', '', '', '', '')), "x-newscheme://stuff") self.assertEqual(urlparse.urlunparse(('x-newscheme', '', '/stuff', '', '', '')), "x-newscheme:///stuff")
def test_unsplit_relative_urls(self): self.assertEqual( urlparse.urlunparse(('x-newscheme', None, 'stuff', '', '', '')), "x-newscheme:stuff") self.assertEqual( urlparse.urlunparse(('x-newscheme', None, '/stuff', '', '', '')), "x-newscheme:/stuff") self.assertEqual( urlparse.urlunparse(('x-newscheme', 'stuff', '', '', '', '')), "x-newscheme://stuff") self.assertEqual( urlparse.urlunparse(('x-newscheme', '', '/stuff', '', '', '')), "x-newscheme:///stuff")
def test_unparse_parse(self): for u in [ 'Python', './Python', 'x-newscheme://foo.com/stuff', 'x://y', 'x:/y', 'x:/', '/', ]: self.assertEqual(urlparse.urlunsplit(urlparse.urlsplit(u)), u) self.assertEqual(urlparse.urlunparse(urlparse.urlparse(u)), u)
def checkRoundtrips(self, url, parsed, split): result = urlparse.urlparse(url) self.assertEqual(result, parsed) t = (result.scheme, result.netloc, result.path, result.params, result.query, result.fragment) self.assertEqual(t, parsed) # put it back together and it should be the same result2 = urlparse.urlunparse(result) self.assertEqual(result2, url) self.assertEqual(result2, result.geturl()) # the result of geturl() is a fixpoint; we can always parse it # again to get the same result: result3 = urlparse.urlparse(result.geturl()) self.assertEqual(result3.geturl(), result.geturl()) self.assertEqual(result3, result) self.assertEqual(result3.scheme, result.scheme) self.assertEqual(result3.netloc, result.netloc) self.assertEqual(result3.path, result.path) self.assertEqual(result3.params, result.params) self.assertEqual(result3.query, result.query) self.assertEqual(result3.fragment, result.fragment) self.assertEqual(result3.username, result.username) self.assertEqual(result3.password, result.password) self.assertEqual(result3.hostname, result.hostname) self.assertEqual(result3.port, result.port) # check the roundtrip using urlsplit() as well result = urlparse.urlsplit(url) self.assertEqual(result, split) t = (result.scheme, result.netloc, result.path, result.query, result.fragment) self.assertEqual(t, split) result2 = urlparse.urlunsplit(result) self.assertEqual(result2, url) self.assertEqual(result2, result.geturl()) # check the fixpoint property of re-parsing the result of geturl() result3 = urlparse.urlsplit(result.geturl()) self.assertEqual(result3.geturl(), result.geturl()) self.assertEqual(result3, result) self.assertEqual(result3.scheme, result.scheme) self.assertEqual(result3.netloc, result.netloc) self.assertEqual(result3.path, result.path) self.assertEqual(result3.query, result.query) self.assertEqual(result3.fragment, result.fragment) self.assertEqual(result3.username, result.username) self.assertEqual(result3.password, result.password) self.assertEqual(result3.hostname, result.hostname) self.assertEqual(result3.port, result.port)
def test_unparse_parse(self): for u in ['Python', './Python', 'x-newscheme://foo.com/stuff', 'x://y', 'x:/y', 'x:/', '/', ]: self.assertEqual(urlparse.urlunsplit(urlparse.urlsplit(u)), u) self.assertEqual(urlparse.urlunparse(urlparse.urlparse(u)), u)