def test_file_uri(tmpdir): """ File storage returns a url to access a given file from the Web. """ storage = FileSystemStorage(location=str(tmpdir), base_uri="/test_media_url/") assert storage.uri("test.file") == "".join([storage.base_uri, "test.file"]) # should encode special chars except ~!*()' # like encodeURIComponent() JavaScript function do assert storage.uri(r"""~!*()'@#$%^&*abc`+ =.file""") == """/test_media_url/~!*()'%40%23%24%25%5E%26*abc%60%2B%20%3D.file""" # should translate os path separator(s) to the url path separator assert storage.uri("""a/b\\c.file""") == """/test_media_url/a/b/c.file""" storage.base_uri = None with pytest.raises(ValueError): storage.uri("test.file")