def test_write(self): def request_callback(request): resp_body = "" headers = {'location': 'http://127.0.0.1:8440/file'} return (307, headers, resp_body) responses.add_callback(responses.PUT, "http://127.0.0.1:8440/webhdfs/v1/path/file", callback=request_callback) responses.add(responses.PUT, "http://127.0.0.1:8440/file", status=201) smart_open_object = smart_open.WebHdfsOpenWrite( smart_open.ParseUri("webhdfs://127.0.0.1:8440/path/file")) def write_callback(request): assert request.body == u"žluťoučký koníček".encode('utf8') headers = {} return (200, headers, "") test_string = u"žluťoučký koníček".encode('utf8') responses.add_callback(responses.POST, "http://127.0.0.1:8440/webhdfs/v1/path/file", callback=request_callback) responses.add_callback(responses.POST, "http://127.0.0.1:8440/file", callback=write_callback) smart_open_object.write(test_string) smart_open_object.close() assert len(responses.calls) == 4 assert responses.calls[ 2].request.url == "http://127.0.0.1:8440/webhdfs/v1/path/file?op=APPEND" assert responses.calls[3].request.url == "http://127.0.0.1:8440/file"
def test_initialize_write(self): def request_callback(request): resp_body = "" headers = {'location': 'http://127.0.0.1:8440/file'} return (307, headers, resp_body) responses.add_callback(responses.PUT, "http://127.0.0.1:8440/webhdfs/v1/path/file", callback=request_callback) responses.add(responses.PUT, "http://127.0.0.1:8440/file", status=201) smart_open_object = smart_open.WebHdfsOpenWrite(smart_open.ParseUri("webhdfs://127.0.0.1:8440/path/file")) assert len(responses.calls) == 2 path, params = responses.calls[0].request.url.split("?") assert path == "http://127.0.0.1:8440/webhdfs/v1/path/file" assert params == "overwrite=True&op=CREATE" or params == "op=CREATE&overwrite=True" assert responses.calls[1].request.url == "http://127.0.0.1:8440/file"