1
from tests import TestCase, add
3
from quodlibet.util.uri import URI
7
s.http_uri = URI("http://www.example.com/~piman;woo?bar=quux#whee")
8
s.rfile_uri = URI("file://example.com/home/piman/crazy")
9
s.file_uri = URI.frompath("/home/piman/cr!azy")
10
s.extra_uri = URI("file:///////////home/piman")
13
s.failUnless(isinstance(s.http_uri, URI))
14
s.failUnless(isinstance(s.http_uri, basestring))
16
# bad constructor tests
18
s.failUnlessRaises(ValueError, URI, "")
19
def test_no_scheme(s):
20
s.failUnlessRaises(ValueError, URI, "foobar/?quux")
21
def test_no_loc_or_path(s):
22
s.failUnlessRaises(ValueError, URI, "http://")
24
# good constructor tests
26
s.failUnlessEqual(s.http_uri.scheme, "http")
28
s.failUnlessEqual(s.http_uri.netloc, "www.example.com")
30
s.failUnlessEqual(s.http_uri.path, "/~piman")
32
s.failUnless(s.http_uri.params, "woo")
34
s.failUnlessEqual(s.http_uri.query, "bar=quux")
36
s.failUnlessEqual(s.http_uri.fragment, "whee")
39
def test_unescaped(s):
40
s.failUnlessEqual(s.file_uri.unescaped, "file:///home/piman/cr!azy")
41
s.failUnlessEqual(s.http_uri.unescaped, s.http_uri)
45
s.failUnlessEqual(s.file_uri, "file:///home/piman/cr%21azy")
46
s.failUnlessEqual(s.file_uri.filename, "/home/piman/cr!azy")
47
def test_bad_files(s):
48
s.failUnlessRaises(ValueError, lambda: s.http_uri.filename)
49
s.failUnlessRaises(ValueError, lambda: s.http_uri.filename)
50
def test_is_filename(s):
51
s.failUnless(s.file_uri.is_filename)
52
s.failIf(s.rfile_uri.is_filename)
53
s.failIf(s.http_uri.is_filename)
55
# test urlparse workaround
56
def test_urlparse_workaround(s):
57
s.failUnless(s.extra_uri.is_filename)
58
s.failIf(s.extra_uri.netloc)
59
s.failUnlessEqual(s.extra_uri.filename, "/home/piman")