def test_relative_on_a_non_leaf_node(self): path = URLPath('/a/b/c/') assert path.relative('.') == '/a/b/c/' assert path.relative('d') == '/a/b/c/d' assert path.relative('..') == '/a/b/' assert path.relative('../d') == '/a/b/d' assert path.relative('/') == '/' assert path.relative('/d') == '/d'
def test_join_segments_can_create_relative_paths(self): assert URLPath.join_segments(('a', 'b', 'c'), absolute=False) == 'a/b/c' assert URLPath.join_segments(('a', 'b', 'c', ''), absolute=False) == 'a/b/c/'
def test_join_segments_encodes_non_ascii_and_special_characters_including_slash(self): assert URLPath.join_segments(('a b', u('d/\N{LATIN SMALL LETTER E WITH ACUTE}'))) == '/a%20b/d%2F%C3%A9'
def test_join_segments_joins_segments_into_a_single_path(self): assert URLPath.join_segments(('a', 'b', 'c')) == '/a/b/c' assert URLPath.join_segments(('a', 'b', 'c', '')) == '/a/b/c/'