Example #1
0
def test_can_parse_full_uri():
    uri = URI("foo://bob@[email protected]:8042"
              "/over/there?name=ferret#nose")
    assert str(uri) ==\
        "foo://bob%[email protected]:8042/over/there?name=ferret#nose"
    assert len(uri) == (len("foo://bob%[email protected]:8042"
                            "/over/there?name=ferret#nose"))
    assert bool(uri)
    assert URI(uri) == \
        "foo://bob%[email protected]:8042/over/there?name=ferret#nose"
    assert uri.string == \
        "foo://bob%[email protected]:8042/over/there?name=ferret#nose"
    assert uri.scheme == "foo"
    assert uri.hierarchical_part == \
        "//bob%[email protected]:8042/over/there"
    assert uri.query == "name=ferret"
    assert dict(uri.query) == {"name": "ferret"}
    assert uri.query.get("name") == "ferret"
    assert uri.fragment == "nose"
    assert uri.authority == "bob%[email protected]:8042"
    assert uri.path == "/over/there"
    assert uri.user_info == "bob@somewhere"
    assert uri.host == "example.com"
    assert uri.port == 8042
    assert uri.host_port == "example.com:8042"
    assert uri.absolute_path_reference == "/over/there?name=ferret#nose"
Example #2
0
def test_can_parse_none_uri_from_none_uri():
    uri = URI(URI(None))
    assert str(uri) == ""
    assert uri.string is None
    assert uri.scheme is None
    assert uri.hierarchical_part is None
    assert uri.query is None
    assert uri.fragment is None
    assert uri.authority is None
    assert uri.path is None
    assert uri.user_info is None
    assert uri.host is None
    assert uri.port is None
    assert uri.host_port is None
    assert uri.absolute_path_reference is None
Example #3
0
def test_uri_can_be_iterated():
    uri = URI("http://example.com/")
    listed = list(uri)
    assert listed == [
        'h', 't', 't', 'p', ':', '/', '/', 'e', 'x', 'a', 'm', 'p', 'l', 'e',
        '.', 'c', 'o', 'm', '/'
    ]
Example #4
0
def test_can_parse_parameter_string_with_params():
    uri = URI("http://example.com/foo/name;version=1.2/bar")
    path_segment = ParameterString(uri.path.segments[2], ";")
    assert str(path_segment) == "name;version=1.2"
    assert path_segment.string == "name;version=1.2"
    assert list(path_segment) == [("name", None), ("version", "1.2")]
    assert len(path_segment) == 2
    assert path_segment[0] == ("name", None)
    assert path_segment[1] == ("version", "1.2")
    assert path_segment.get("name") is None
    assert path_segment.get("version") == "1.2"
Example #5
0
def test_can_parse_only_fragment():
    uri = URI("#foo")
    assert str(uri) == "#foo"
    assert uri.string == "#foo"
    assert uri.scheme is None
    assert uri.hierarchical_part == ""
    assert uri.query is None
    assert uri.fragment == "foo"
    assert uri.authority is None
    assert uri.path == ""
    assert uri.user_info is None
    assert uri.host is None
    assert uri.port is None
    assert uri.host_port is None
    assert uri.absolute_path_reference == "#foo"
Example #6
0
def test_can_build_uri_from_hierarchical_part():
    uri = URI().with_hierarchical_part("//example.com/")
    assert str(uri) == "//example.com/"
    assert uri.string == "//example.com/"
    assert uri.scheme is None
    assert uri.hierarchical_part == "//example.com/"
    assert uri.query is None
    assert uri.fragment is None
    assert uri.authority == "example.com"
    assert uri.path == "/"
    assert uri.user_info is None
    assert uri.host == "example.com"
    assert uri.port is None
    assert uri.host_port == "example.com"
    assert uri.absolute_path_reference == "/"
Example #7
0
def test_can_build_uri_from_absolute_path_reference():
    uri = URI().with_absolute_path_reference("/foo/bar?spam=eggs#mustard")
    assert str(uri) == "/foo/bar?spam=eggs#mustard"
    assert uri.string == "/foo/bar?spam=eggs#mustard"
    assert uri.scheme is None
    assert uri.hierarchical_part == "/foo/bar"
    assert uri.query == "spam=eggs"
    assert uri.fragment == "mustard"
    assert uri.authority is None
    assert uri.path == "/foo/bar"
    assert uri.user_info is None
    assert uri.host is None
    assert uri.port is None
    assert uri.host_port is None
    assert uri.absolute_path_reference == "/foo/bar?spam=eggs#mustard"
Example #8
0
def test_can_build_uri_from_scheme_and_host_port():
    uri = URI().with_scheme("http").with_host_port("example.com:3456")
    assert str(uri) == "http://example.com:3456"
    assert uri.string == "http://example.com:3456"
    assert uri.scheme == "http"
    assert uri.hierarchical_part == "//example.com:3456"
    assert uri.query is None
    assert uri.fragment is None
    assert uri.authority == "example.com:3456"
    assert uri.path == ""
    assert uri.user_info is None
    assert uri.host == "example.com"
    assert uri.port == 3456
    assert uri.host_port == "example.com:3456"
    assert uri.absolute_path_reference == ""
Example #9
0
def test_can_parse_relative_path_uri():
    uri = URI("foo/bar")
    assert str(uri) == "foo/bar"
    assert uri.string == "foo/bar"
    assert uri.scheme is None
    assert uri.hierarchical_part == "foo/bar"
    assert uri.query is None
    assert uri.fragment is None
    assert uri.authority is None
    assert uri.path == "foo/bar"
    assert uri.user_info is None
    assert uri.host is None
    assert uri.port is None
    assert uri.host_port is None
    assert uri.absolute_path_reference == "foo/bar"
Example #10
0
def test_can_parse_uri_with_root_path():
    uri = URI("foo://example.com/")
    assert str(uri) == "foo://example.com/"
    assert uri.string == "foo://example.com/"
    assert uri.scheme == "foo"
    assert uri.hierarchical_part == "//example.com/"
    assert uri.query is None
    assert uri.fragment is None
    assert uri.authority == "example.com"
    assert uri.path == "/"
    assert uri.user_info is None
    assert uri.host == "example.com"
    assert uri.port is None
    assert uri.host_port == "example.com"
    assert uri.absolute_path_reference == "/"
Example #11
0
def test_can_parse_uri_with_extended_chars():
    uri = URI("foo://éxamplə.çôm/foo")
    assert ustr(uri) == "foo://éxamplə.çôm/foo"
    assert uri.string == "foo://éxamplə.çôm/foo"
    assert uri.scheme == "foo"
    assert uri.hierarchical_part == "//éxamplə.çôm/foo"
    assert uri.query is None
    assert uri.fragment is None
    assert uri.authority == "éxamplə.çôm"
    assert uri.path == "/foo"
    assert uri.user_info is None
    assert uri.host == "éxamplə.çôm"
    assert uri.port is None
    assert uri.host_port == "éxamplə.çôm"
    assert uri.absolute_path_reference == "/foo"
Example #12
0
def test_can_parse_only_query():
    uri = URI("?foo=bar")
    assert str(uri) == "?foo=bar"
    assert uri.string == "?foo=bar"
    assert uri.scheme is None
    assert uri.hierarchical_part == ""
    assert uri.query == "foo=bar"
    assert dict(uri.query) == {"foo": "bar"}
    assert uri.fragment is None
    assert uri.authority is None
    assert uri.path == ""
    assert uri.user_info is None
    assert uri.host is None
    assert uri.port is None
    assert uri.host_port is None
    assert uri.absolute_path_reference == "?foo=bar"
Example #13
0
def test_can_build_uri_from_authority_and_absolute_path_reference():
    uri = URI().with_authority("[email protected]:9999")\
        .with_absolute_path_reference("/foo/bar?spam=eggs#mustard")
    assert str(uri) == "//[email protected]:9999/foo/bar?spam=eggs#mustard"
    assert uri.string == "//[email protected]:9999/foo/bar?spam=eggs#mustard"
    assert uri.scheme is None
    assert uri.hierarchical_part == "//[email protected]:9999/foo/bar"
    assert uri.query == "spam=eggs"
    assert uri.fragment == "mustard"
    assert uri.authority == "[email protected]:9999"
    assert uri.path == "/foo/bar"
    assert uri.user_info == "bob"
    assert uri.host == "example.com"
    assert uri.port == 9999
    assert uri.host_port == "example.com:9999"
    assert uri.absolute_path_reference == "/foo/bar?spam=eggs#mustard"
Example #14
0
def test_can_build_uri_from_scheme_hierarchical_part_query_and_fragment():
    uri = URI().with_scheme("foo").with_hierarchical_part("//example.com/")\
        .with_query("spam=eggs").with_fragment("mustard")
    assert str(uri) == "foo://example.com/?spam=eggs#mustard"
    assert uri.string == "foo://example.com/?spam=eggs#mustard"
    assert uri.scheme == "foo"
    assert uri.hierarchical_part == "//example.com/"
    assert uri.query == "spam=eggs"
    assert uri.fragment == "mustard"
    assert uri.authority == "example.com"
    assert uri.path == "/"
    assert uri.user_info is None
    assert uri.host == "example.com"
    assert uri.port is None
    assert uri.host_port == "example.com"
    assert uri.absolute_path_reference == "/?spam=eggs#mustard"
Example #15
0
def test_can_create_none_resource():
    resource = Resource(None)
    assert resource.uri == URI(None)
    assert not bool(resource)
    assert str(resource) == "<>"
Example #16
0
def test_uri_equality_with_string_containing_encoded_space():
    uri = URI("http://example.com/foo bar")
    string = "http://example.com/foo%20bar"
    assert uri == string
Example #17
0
def test_uri_equality_when_none():
    uri = URI(None)
    none = None
    assert uri == none
Example #18
0
def test_can_cast_none_uri():
    uri = URI._cast(None)
    none = None
    assert uri == none
Example #19
0
def test_uri_to_true():
    uri = URI("http://example.com/")
    assert uri.__bool__()
    assert uri.__nonzero__()
Example #20
0
def test_uri_equality_with_string():
    uri = URI("http://example.com/")
    string = "http://example.com/"
    assert uri == string
Example #21
0
def test_uri_is_hashable():
    uri = URI("http://example.com/")
    hashed = hash(uri)
    assert hashed
Example #22
0
def test_can_resolve_from_empty_uri():
    base = URI("")
    uri = base.resolve("foo")
    assert uri == "foo"
Example #23
0
def test_can_resolve_without_strict_mode():
    base = URI("http://a/b/c/d;p?q")
    uri = base.resolve("http:g", strict=False)
    assert uri == "http://a/b/c/g"
Example #24
0
def test_uri_to_false():
    uri = URI("")
    assert not uri.__bool__()
    assert not uri.__nonzero__()
Example #25
0
def test_can_cast_existing_uri():
    existing_uri = URI("http://example.com/")
    uri = URI._cast(existing_uri)
    string = "http://example.com/"
    assert uri == string
Example #26
0
def _test_references(references):
    base = URI("http://a/b/c/d;p?q")
    for reference, target in references.items():
        print(reference, "->", target)
        uri = base.resolve(reference)
        assert uri == target
Example #27
0
def test_can_create_resource_from_string():
    resource = Resource("http://example.com/foo")
    assert resource.uri == URI("http://example.com/foo")
    assert bool(resource)
    assert str(resource) == "<http://example.com/foo>"
Example #28
0
def test_can_create_resource_from_uri():
    uri = URI("http://example.com/foo")
    resource = Resource(uri)
    assert resource.uri == uri
    assert bool(resource)
    assert str(resource) == "<http://example.com/foo>"
Example #29
0
def test_can_cast_existing_uri():
    existing_uri = URI("http://example.com/")
    uri = URI._cast(existing_uri)
    string = "http://example.com/"
    assert uri == string
Example #30
0
def test_can_cast_none_uri():
    uri = URI._cast(None)
    none = None
    assert uri == none
Example #31
0
def test_uri_to_false():
    uri = URI("")
    assert not uri.__bool__()
    assert not uri.__nonzero__()
Example #32
0
def test_uri_to_true():
    uri = URI("http://example.com/")
    assert uri.__bool__()
    assert uri.__nonzero__()
Example #33
0
def test_can_resolve_without_strict_mode():
    base = URI("http://a/b/c/d;p?q")
    uri = base.resolve("http:g", strict=False)
    assert uri == "http://a/b/c/g"
Example #34
0
def _test_references(references):
    base = URI("http://a/b/c/d;p?q")
    for reference, target in references.items():
        print(reference, "->", target)
        uri = base.resolve(reference)
        assert uri == target
Example #35
0
def test_can_resolve_from_empty_path():
    base = URI("http://example.com")
    uri = base.resolve("foo")
    assert uri == "http://example.com/foo"
Example #36
0
def test_can_resolve_from_empty_path():
    base = URI("http://example.com")
    uri = base.resolve("foo")
    assert uri == "http://example.com/foo"
Example #37
0
def test_can_resolve_from_empty_uri():
    base = URI("")
    uri = base.resolve("foo")
    assert uri == "foo"
Example #38
0
def test_resolving_when_reference_is_none_returns_none():
    base = URI("http://example.com")
    uri = base.resolve(None)
    assert uri is None
Example #39
0
def test_resolving_when_reference_is_none_returns_none():
    base = URI("http://example.com")
    uri = base.resolve(None)
    assert uri is None