From 2d5da50f8f694d7453f947ba9beae8ee53d045cb Mon Sep 17 00:00:00 2001 From: overtrue Date: Thu, 23 Apr 2026 01:04:37 +0800 Subject: [PATCH] test(s3): cover Aliyun bucket lookup fallbacks --- crates/s3/src/client.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/crates/s3/src/client.rs b/crates/s3/src/client.rs index 50504a2..9765f0b 100644 --- a/crates/s3/src/client.rs +++ b/crates/s3/src/client.rs @@ -2816,6 +2816,25 @@ mod tests { assert!(force_path_style_for_alias(&alias)); } + #[test] + fn auto_bucket_lookup_keeps_path_style_for_non_oss_aliyun_endpoint() { + let alias = Alias::new( + "aliyun", + "https://ecs-cn-hangzhou.aliyuncs.com", + "access-key", + "secret-key", + ); + + assert!(force_path_style_for_alias(&alias)); + } + + #[test] + fn auto_bucket_lookup_keeps_path_style_for_invalid_endpoint() { + let alias = Alias::new("broken", "not a valid endpoint", "access-key", "secret-key"); + + assert!(force_path_style_for_alias(&alias)); + } + #[test] fn explicit_bucket_lookup_overrides_auto_detection() { let mut path_alias = Alias::new( @@ -2834,6 +2853,19 @@ mod tests { assert!(!force_path_style_for_alias(&dns_alias)); } + #[test] + fn unknown_bucket_lookup_keeps_path_style() { + let mut alias = Alias::new( + "aliyun", + "https://oss-cn-hangzhou.aliyuncs.com", + "access-key", + "secret-key", + ); + alias.bucket_lookup = "unexpected".to_string(); + + assert!(force_path_style_for_alias(&alias)); + } + #[test] fn parse_replication_configuration_xml_reads_delete_replication() { let body = r#"