summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDmitriy Ivliev <[email protected]>2024-07-10 17:09:50 +0300
committergit <[email protected]>2024-07-11 02:27:46 +0000
commit6dc0086d2046506d838b9de41cb12a4aadec58d1 (patch)
tree58d8f02c3d226e14214d24c4fb1ff82b547664bd /test
parentbc1b4235fb0b859122ae15b865bf1a15e7d2050f (diff)
[rubygems/rubygems] fix s3 source configuration issue
https://github.com/rubygems/rubygems/commit/356726bd1a
Diffstat (limited to 'test')
-rw-r--r--test/rubygems/test_gem_config_file.rb67
1 files changed, 67 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_config_file.rb b/test/rubygems/test_gem_config_file.rb
index a055f248be..b28dcf503e 100644
--- a/test/rubygems/test_gem_config_file.rb
+++ b/test/rubygems/test_gem_config_file.rb
@@ -575,6 +575,73 @@ if you believe they were disclosed to a third party.
assert_equal("bar", actual[:foo])
end
+ def test_s3_source
+ yaml = <<~YAML
+ ---
+ :sources:
+ - s3://bucket1/
+ - s3://bucket2/
+ - s3://bucket3/path_to_gems_dir/
+ - s3://bucket4/
+ - https://rubygems.org/
+ :s3_source:
+ :bucket1:
+ :provider: env
+ :bucket2:
+ :provider: instance_profile
+ :region: us-west-2
+ :bucket3:
+ :id: AOUEAOEU123123AOEUAO
+ :secret: aodnuhtdao/saeuhto+19283oaehu/asoeu+123h
+ :region: us-east-2
+ :bucket4:
+ :id: AOUEAOEU123123AOEUAO
+ :secret: aodnuhtdao/saeuhto+19283oaehu/asoeu+123h
+ :security_token: AQoDYXdzEJr
+ :region: us-west-1
+ YAML
+
+ File.open @temp_conf, "w" do |fp|
+ fp.puts yaml
+ end
+ util_config_file
+
+ assert_equal(["s3://bucket1/", "s3://bucket2/", "s3://bucket3/path_to_gems_dir/", "s3://bucket4/", "https://rubygems.org/"], @cfg.sources)
+ expected_config = {
+ bucket1: { provider: "env" },
+ bucket2: { provider: "instance_profile", region: "us-west-2" },
+ bucket3: { id: "AOUEAOEU123123AOEUAO", secret: "aodnuhtdao/saeuhto+19283oaehu/asoeu+123h", region: "us-east-2" },
+ bucket4: { id: "AOUEAOEU123123AOEUAO", secret: "aodnuhtdao/saeuhto+19283oaehu/asoeu+123h", security_token: "AQoDYXdzEJr", region: "us-west-1" },
+ }
+ assert_equal(expected_config, @cfg[:s3_source])
+ assert_equal(expected_config[:bucket1], @cfg[:s3_source][:bucket1])
+ assert_equal(expected_config[:bucket2], @cfg[:s3_source][:bucket2])
+ assert_equal(expected_config[:bucket3], @cfg[:s3_source][:bucket3])
+ assert_equal(expected_config[:bucket4], @cfg[:s3_source][:bucket4])
+ end
+
+ def test_s3_source_with_config_without_lookahead
+ yaml = <<~YAML
+ :sources:
+ - s3://bucket1/
+ s3_source:
+ bucket1:
+ provider: env
+ YAML
+
+ File.open @temp_conf, "w" do |fp|
+ fp.puts yaml
+ end
+ util_config_file
+
+ assert_equal(["s3://bucket1/"], @cfg.sources)
+ expected_config = {
+ "bucket1" => { "provider" => "env" },
+ }
+ assert_equal(expected_config, @cfg[:s3_source])
+ assert_equal(expected_config[:bucket1], @cfg[:s3_source][:bucket1])
+ end
+
def util_config_file(args = @cfg_args)
@cfg = Gem::ConfigFile.new args
end