Skip to content

Commit a124b9d

Browse files
committed
chore: Avoid build fails on MinIO rate limits
1 parent d036015 commit a124b9d

File tree

1 file changed

+38
-15
lines changed

1 file changed

+38
-15
lines changed

datafusion-cli/tests/cli_integration.rs

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ fn make_settings() -> Settings {
4444
settings
4545
}
4646

47-
async fn setup_minio_container() -> ContainerAsync<minio::MinIO> {
47+
async fn setup_minio_container() -> Result<ContainerAsync<minio::MinIO>, String> {
4848
const MINIO_ROOT_USER: &str = "TEST-DataFusionLogin";
4949
const MINIO_ROOT_PASSWORD: &str = "TEST-DataFusionPassword";
5050

@@ -109,17 +109,13 @@ async fn setup_minio_container() -> ContainerAsync<minio::MinIO> {
109109
}
110110
}
111111

112-
container
112+
Ok(container)
113113
}
114114

115-
Err(TestcontainersError::Client(e)) => {
116-
panic!(
117-
"Failed to start MinIO container. Ensure Docker is running and accessible: {e}"
118-
);
119-
}
120-
Err(e) => {
121-
panic!("Failed to start MinIO container: {e}");
122-
}
115+
Err(TestcontainersError::Client(e)) => Err(format!(
116+
"Failed to start MinIO container. Ensure Docker is running and accessible: {e}"
117+
)),
118+
Err(e) => Err(format!("Failed to start MinIO container: {e}")),
123119
}
124120
}
125121

@@ -253,7 +249,14 @@ async fn test_cli() {
253249
return;
254250
}
255251

256-
let container = setup_minio_container().await;
252+
let container = match setup_minio_container().await {
253+
Ok(c) => c,
254+
Err(e) if e.contains("toomanyrequests") => {
255+
eprintln!("Skipping test: Docker pull rate limit reached: {e}");
256+
return;
257+
}
258+
Err(e) => panic!("{e}"),
259+
};
257260

258261
let settings = make_settings();
259262
let _bound = settings.bind_to_scope();
@@ -286,7 +289,14 @@ async fn test_aws_options() {
286289
let settings = make_settings();
287290
let _bound = settings.bind_to_scope();
288291

289-
let container = setup_minio_container().await;
292+
let container = match setup_minio_container().await {
293+
Ok(c) => c,
294+
Err(e) if e.contains("toomanyrequests") => {
295+
eprintln!("Skipping test: Docker pull rate limit reached: {e}");
296+
return;
297+
}
298+
Err(e) => panic!("{e}"),
299+
};
290300
let port = container.get_host_port_ipv4(9000).await.unwrap();
291301

292302
let input = format!(
@@ -377,7 +387,14 @@ async fn test_s3_url_fallback() {
377387
return;
378388
}
379389

380-
let container = setup_minio_container().await;
390+
let container = match setup_minio_container().await {
391+
Ok(c) => c,
392+
Err(e) if e.contains("toomanyrequests") => {
393+
eprintln!("Skipping test: Docker pull rate limit reached: {e}");
394+
return;
395+
}
396+
Err(e) => panic!("{e}"),
397+
};
381398

382399
let mut settings = make_settings();
383400
settings.set_snapshot_suffix("s3_url_fallback");
@@ -407,8 +424,14 @@ async fn test_object_store_profiling() {
407424
return;
408425
}
409426

410-
let container = setup_minio_container().await;
411-
427+
let container = match setup_minio_container().await {
428+
Ok(c) => c,
429+
Err(e) if e.contains("toomanyrequests") => {
430+
eprintln!("Skipping test: Docker pull rate limit reached: {e}");
431+
return;
432+
}
433+
Err(e) => panic!("{e}"),
434+
};
412435
let mut settings = make_settings();
413436

414437
// as the object store profiling contains timestamps and durations, we must

0 commit comments

Comments
 (0)