def test_no_http(self): url1 = '//ya.ru/abc/def/ind.php?b=3&a=2#Hh_1' url2 = 'ya.ru/abc/def/ind.php?b=3&a=2#Hh_1' url3 = 'ftp://ya.ru/abc/def/ind.php?b=3&a=2#Hh_1' res = ParseUrl(None, 'ya.ru', '/abc/def/ind.php', (('a', '2'), ('b', '3')), 'Hh_1') self.assertEqual(parseurl(url1), res) self.assertEqual(parseurl(url2), res) self.assertRaises(AttributeError, parseurl, url3)
def test_no_args_url(self): url = 'http://ya.ru/abc/def/#Hh_1' res = ParseUrl(False, 'ya.ru', '/abc/def/', (), 'Hh_1') self.assertEqual(parseurl(url), res) # unparse self.assertEqual(unparseurl(res), url)
def test_one_arg_url(self): url = 'http://ya.ru/abc/def/?a=2#Hh_1' res = ParseUrl(False, 'ya.ru', '/abc/def/', (('a', '2'), ), 'Hh_1') self.assertEqual(parseurl(url), res) # unparse self.assertEqual(unparseurl(res), url)
def test_full_url(self): url = 'http://ya.ru/abc/def/ind.php?b=3&a=2#Hh_1' res = ParseUrl(False, 'ya.ru', '/abc/def/ind.php', (('a', '2'), ('b', '3')), 'Hh_1') self.assertEqual(parseurl(url), res) # unparse url = 'http://ya.ru/abc/def/ind.php?a=2&b=3#Hh_1' self.assertEqual(unparseurl(res), url)
def test_no_path_url(self): url = 'http://ya.ru/#Hh_1' res = ParseUrl(False, 'ya.ru', '/', (), 'Hh_1') self.assertEqual(parseurl(url), res) self.assertFalse(res.args) # unparse self.assertEqual(unparseurl(res), url) url_unparse = 'http://ya.ru/' url = 'http://ya.ru/' res = ParseUrl(False, 'ya.ru', '/', (), '') self.assertEqual(parseurl(url), res) # unparse self.assertEqual(unparseurl(res), url_unparse) url = 'http://ya.ru' res = ParseUrl(False, 'ya.ru', '/', (), '') self.assertEqual(parseurl(url), res) # unparse self.assertEqual(unparseurl(res), url_unparse)
def test_no_domain(self): url = '/abc/def/i.php' res = ParseUrl(None, '', '/abc/def/i.php', (), '') self.assertEqual(res, parseurl(url))
def test_replace(self): base = 'http://example.com' url = '../a/b/c' self.assertEqual(parseurl('http://example.com/a/b/c'), join(base, url))