mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-07 08:27:12 +00:00
refactor(cli): tighten Client facade and parallelize system df
- Drop dead http_client() accessor and its allow(dead_code). - Scope map_api_error to module-private; all call sites are in-file. - Rename test helper test_api_client to test_client to match what it returns. - Run system df's two independent server GETs concurrently with try_join!. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e12c3632e2
commit
9a4b812e2d
3 changed files with 19 additions and 28 deletions
|
|
@ -427,7 +427,7 @@ mod tests {
|
|||
|
||||
use super::*;
|
||||
|
||||
fn test_api_client(api_url: &str) -> server_client::Client {
|
||||
fn test_client(api_url: &str) -> server_client::Client {
|
||||
server_client::Client::new_no_proxy(api_url).unwrap()
|
||||
}
|
||||
|
||||
|
|
@ -534,7 +534,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let response = client.test_model("test-model", None).await.unwrap();
|
||||
|
||||
assert_eq!(response.status, api_types::ModelTestResultStatus::Ok);
|
||||
|
|
@ -562,7 +562,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let response = client
|
||||
.test_model("test-model", Some(api_types::ModelTestMode::Deep))
|
||||
.await
|
||||
|
|
@ -590,7 +590,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let response = client.test_model("kimi-k2.5", None).await.unwrap();
|
||||
|
||||
assert_eq!(response.status, api_types::ModelTestResultStatus::Skip);
|
||||
|
|
@ -614,7 +614,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let result = client.test_model("bad-model", None).await;
|
||||
assert!(result.is_err());
|
||||
assert!(result.unwrap_err().to_string().contains("Model not found"));
|
||||
|
|
@ -641,7 +641,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let models = client.list_models(None, None).await.unwrap();
|
||||
|
||||
mock.assert_async().await;
|
||||
|
|
@ -672,7 +672,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let models = client.list_models(Some("anthropic"), None).await.unwrap();
|
||||
|
||||
assert_eq!(models.len(), 1);
|
||||
|
|
@ -701,7 +701,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let models = client.list_models(None, Some("sonnet")).await.unwrap();
|
||||
|
||||
mock.assert_async().await;
|
||||
|
|
@ -747,7 +747,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let models = client.list_models(None, None).await.unwrap();
|
||||
|
||||
first_page.assert_async().await;
|
||||
|
|
@ -770,7 +770,7 @@ mod tests {
|
|||
})
|
||||
.await;
|
||||
|
||||
let client = test_api_client(&server.url(""));
|
||||
let client = test_client(&server.url(""));
|
||||
let result = client.list_models(None, None).await;
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,13 +19,16 @@ pub(super) async fn df_command(
|
|||
) -> Result<()> {
|
||||
let ctx = CommandContext::for_connection(&args.connection, printer, cli.clone(), cli_layer)?;
|
||||
let server = ctx.server().await?;
|
||||
let output = server.get_system_disk_usage(args.verbose).await?;
|
||||
|
||||
let json = cli.output.format == OutputFormat::Json;
|
||||
let storage_dir = if json {
|
||||
None
|
||||
|
||||
let (output, storage_dir) = if json {
|
||||
(server.get_system_disk_usage(args.verbose).await?, None)
|
||||
} else {
|
||||
server.get_system_info().await?.storage_dir
|
||||
let (output, info) = tokio::try_join!(
|
||||
server.get_system_disk_usage(args.verbose),
|
||||
server.get_system_info(),
|
||||
)?;
|
||||
(output, info.storage_dir)
|
||||
};
|
||||
|
||||
df_from(&output, storage_dir.as_deref(), json)
|
||||
|
|
|
|||
|
|
@ -468,18 +468,6 @@ impl Client {
|
|||
self.clone()
|
||||
}
|
||||
|
||||
#[allow(
|
||||
dead_code,
|
||||
reason = "This accessor is kept for tests and pending callers."
|
||||
)]
|
||||
pub(crate) fn http_client(&self) -> &fabro_http::HttpClient {
|
||||
&self.http_client
|
||||
}
|
||||
|
||||
#[allow(
|
||||
dead_code,
|
||||
reason = "This accessor is kept for tests and pending callers."
|
||||
)]
|
||||
pub(crate) fn base_url(&self) -> &str {
|
||||
&self.base_url
|
||||
}
|
||||
|
|
@ -1259,7 +1247,7 @@ impl Client {
|
|||
}
|
||||
}
|
||||
|
||||
pub(crate) fn map_api_error<E>(err: progenitor_client::Error<E>) -> anyhow::Error
|
||||
fn map_api_error<E>(err: progenitor_client::Error<E>) -> anyhow::Error
|
||||
where
|
||||
E: serde::Serialize + std::fmt::Debug,
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue