Skip to content

Commit db30029

Browse files
Merge pull request #4658 from ceritium/better-scpecification-policy-error-description
Add better specification policy error description (cherry picked from commit 8eb1279)
1 parent 08521cb commit db30029

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

lib/rubygems/specification_policy.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,25 +124,26 @@ def validate_metadata
124124
end
125125

126126
metadata.each do |key, value|
127+
entry = "metadata['#{key}']"
127128
if !key.kind_of?(String)
128129
error "metadata keys must be a String"
129130
end
130131

131132
if key.size > 128
132-
error "metadata key too large (#{key.size} > 128)"
133+
error "metadata key is too large (#{key.size} > 128)"
133134
end
134135

135136
if !value.kind_of?(String)
136-
error "metadata values must be a String"
137+
error "#{entry} value must be a String"
137138
end
138139

139140
if value.size > 1024
140-
error "metadata value too large (#{value.size} > 1024)"
141+
error "#{entry} value is too large (#{value.size} > 1024)"
141142
end
142143

143144
if METADATA_LINK_KEYS.include? key
144145
if value !~ VALID_URI_PATTERN
145-
error "metadata['#{key}'] has invalid link: #{value.inspect}"
146+
error "#{entry} has invalid link: #{value.inspect}"
146147
end
147148
end
148149
end

test/rubygems/test_gem_specification.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3612,7 +3612,7 @@ def test_metadata_key_size_validation_fails
36123612
@m2.validate
36133613
end
36143614

3615-
assert_equal "metadata key too large (129 > 128)", e.message
3615+
assert_equal "metadata key is too large (129 > 128)", e.message
36163616
end
36173617
end
36183618

@@ -3629,7 +3629,7 @@ def test_metadata_value_type_validation_fails
36293629
@m2.validate
36303630
end
36313631

3632-
assert_equal "metadata values must be a String", e.message
3632+
assert_equal "metadata['fail'] value must be a String", e.message
36333633
end
36343634
end
36353635

@@ -3646,7 +3646,7 @@ def test_metadata_value_size_validation_fails
36463646
@m2.validate
36473647
end
36483648

3649-
assert_equal "metadata value too large (1025 > 1024)", e.message
3649+
assert_equal "metadata['fail'] value is too large (1025 > 1024)", e.message
36503650
end
36513651
end
36523652

0 commit comments

Comments
 (0)