From 386f1b4e3e646247a71c672296e234bf7d5e152d Mon Sep 17 00:00:00 2001 From: Eric <5089238+emizzle@users.noreply.github.com> Date: Fri, 27 Jun 2025 13:51:18 +1000 Subject: [PATCH] close http client responses in codex client --- tests/integration/codexclient.nim | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/integration/codexclient.nim b/tests/integration/codexclient.nim index 17ed6dd4..699c376d 100644 --- a/tests/integration/codexclient.nim +++ b/tests/integration/codexclient.nim @@ -87,12 +87,20 @@ proc getContent( client: CodexClient, url: string, headers: seq[HttpHeaderTuple] = @[] ): Future[string] {.async: (raises: [CancelledError, HttpError]).} = let response = await client.get(url, headers) + + defer: + await response.closeWait() + return await response.body proc info*( client: CodexClient ): Future[?!JsonNode] {.async: (raises: [CancelledError, HttpError]).} = let response = await client.get(client.baseurl & "/debug/info") + + defer: + await response.closeWait() + return JsonNode.parse(await response.body) proc setLogLevel*( @@ -102,6 +110,10 @@ proc setLogLevel*( url = client.baseurl & "/debug/chronicles/loglevel?level=" & level headers = @[("Content-Type", "text/plain")] response = await client.post(url, headers = headers, body = "") + + defer: + await response.closeWait() + assert response.status == 200 proc uploadRaw*( @@ -115,6 +127,10 @@ proc upload*( client: CodexClient, contents: string ): Future[?!Cid] {.async: (raises: [CancelledError, HttpError]).} = let response = await client.uploadRaw(contents) + + defer: + await response.closeWait() + assert response.status == 200 Cid.init(await response.body).mapFailure @@ -136,6 +152,9 @@ proc downloadBytes*( ): Future[?!seq[byte]] {.async: (raises: [CancelledError, HttpError]).} = let response = await client.downloadRaw($cid, local = local) + defer: + await response.closeWait() + if response.status != 200: return failure($response.status) @@ -153,6 +172,9 @@ proc downloadNoStream*( ): Future[?!string] {.async: (raises: [CancelledError, HttpError]).} = let response = await client.post(client.baseurl & "/data/" & $cid & "/network") + defer: + await response.closeWait() + if response.status != 200: return failure($response.status) @@ -164,6 +186,9 @@ proc downloadManifestOnly*( let response = await client.get(client.baseurl & "/data/" & $cid & "/network/manifest") + defer: + await response.closeWait() + if response.status != 200: return failure($response.status) @@ -181,6 +206,9 @@ proc delete*( ): Future[?!void] {.async: (raises: [CancelledError, HttpError]).} = let response = await client.deleteRaw($cid) + defer: + await response.closeWait() + if response.status != 204: return failure($response.status) @@ -198,6 +226,9 @@ proc list*( ): Future[?!RestContentList] {.async: (raises: [CancelledError, HttpError]).} = let response = await client.listRaw() + defer: + await response.closeWait() + if response.status != 200: return failure($response.status) @@ -209,6 +240,9 @@ proc space*( let url = client.baseurl & "/space" let response = await client.get(url) + defer: + await response.closeWait() + if response.status != 200: return failure($response.status) @@ -265,6 +299,9 @@ proc requestStorage*( ) body = await response.body + defer: + await response.closeWait() + if response.status != 200: doAssert(false, body) PurchaseId.fromHex(body).catch @@ -326,6 +363,9 @@ proc postAvailability*( until = until, ) + defer: + await response.closeWait() + let body = await response.body doAssert response.status == 201, @@ -389,6 +429,10 @@ proc patchAvailability*( enabled = enabled, until = until, ) + + defer: + await response.closeWait() + doAssert response.status == 204, "expected No Content, got " & $response.status proc getAvailabilities*(