mirror of
https://github.com/ruby/ruby.git
synced 2025-09-17 17:43:59 +02:00
Update to RubyGems 1.3.4 r2223
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a6afbaeb3b
commit
31c94ffeb5
126 changed files with 7610 additions and 3747 deletions
|
@ -53,6 +53,7 @@ end
|
|||
s.test_file = 'test/suite.rb'
|
||||
s.requirements << 'A working computer'
|
||||
s.rubyforge_project = 'example'
|
||||
s.license = 'MIT'
|
||||
|
||||
s.add_dependency 'rake', '> 0.4'
|
||||
s.add_dependency 'jabber4r', '> 0.0.0'
|
||||
|
@ -91,6 +92,7 @@ end
|
|||
files
|
||||
has_rdoc
|
||||
homepage
|
||||
licenses
|
||||
name
|
||||
platform
|
||||
post_install_message
|
||||
|
@ -195,8 +197,8 @@ end
|
|||
assert_equal [], spec.requirements
|
||||
assert_equal [], spec.dependencies
|
||||
assert_equal 'bin', spec.bindir
|
||||
assert_equal false, spec.has_rdoc
|
||||
assert_equal false, spec.has_rdoc?
|
||||
assert_equal true, spec.has_rdoc
|
||||
assert_equal true, spec.has_rdoc?
|
||||
assert_equal '>= 0', spec.required_ruby_version.to_s
|
||||
assert_equal '>= 0', spec.required_rubygems_version.to_s
|
||||
end
|
||||
|
@ -216,6 +218,80 @@ end
|
|||
assert_equal "1.3.5", spec.version.to_s
|
||||
end
|
||||
|
||||
def test_initialize_copy
|
||||
spec = Gem::Specification.new do |s|
|
||||
s.name = "blah"
|
||||
s.version = "1.3.5"
|
||||
s.summary = 'summary'
|
||||
s.description = 'description'
|
||||
s.authors = 'author a', 'author b'
|
||||
s.licenses = 'BSD'
|
||||
s.files = 'lib/file.rb'
|
||||
s.test_files = 'test/file.rb'
|
||||
s.rdoc_options = '--foo'
|
||||
s.extra_rdoc_files = 'README.txt'
|
||||
s.executables = 'exec'
|
||||
s.extensions = 'ext/extconf.rb'
|
||||
s.requirements = 'requirement'
|
||||
s.add_dependency 'some_gem'
|
||||
end
|
||||
|
||||
new_spec = spec.dup
|
||||
|
||||
assert_equal "blah", spec.name
|
||||
assert_same spec.name, new_spec.name
|
||||
|
||||
assert_equal "1.3.5", spec.version.to_s
|
||||
assert_same spec.version, new_spec.version
|
||||
|
||||
assert_equal Gem::Platform::RUBY, spec.platform
|
||||
assert_same spec.platform, new_spec.platform
|
||||
|
||||
assert_equal 'summary', spec.summary
|
||||
assert_same spec.summary, new_spec.summary
|
||||
|
||||
assert_equal %w[lib/file.rb test/file.rb bin/exec README.txt
|
||||
ext/extconf.rb],
|
||||
spec.files
|
||||
refute_same spec.files, new_spec.files, 'files'
|
||||
|
||||
assert_equal %w[test/file.rb], spec.test_files
|
||||
refute_same spec.test_files, new_spec.test_files, 'test_files'
|
||||
|
||||
assert_equal %w[--foo], spec.rdoc_options
|
||||
refute_same spec.rdoc_options, new_spec.rdoc_options, 'rdoc_options'
|
||||
|
||||
assert_equal %w[README.txt], spec.extra_rdoc_files
|
||||
refute_same spec.extra_rdoc_files, new_spec.extra_rdoc_files,
|
||||
'extra_rdoc_files'
|
||||
|
||||
assert_equal %w[exec], spec.executables
|
||||
refute_same spec.executables, new_spec.executables, 'executables'
|
||||
|
||||
assert_equal %w[ext/extconf.rb], spec.extensions
|
||||
refute_same spec.extensions, new_spec.extensions, 'extensions'
|
||||
|
||||
assert_equal %w[requirement], spec.requirements
|
||||
refute_same spec.requirements, new_spec.requirements, 'requirements'
|
||||
|
||||
assert_equal [Gem::Dependency.new('some_gem', Gem::Requirement.default)],
|
||||
spec.dependencies
|
||||
refute_same spec.dependencies, new_spec.dependencies, 'dependencies'
|
||||
|
||||
assert_equal 'bin', spec.bindir
|
||||
assert_same spec.bindir, new_spec.bindir
|
||||
|
||||
assert_equal true, spec.has_rdoc
|
||||
assert_same spec.has_rdoc, new_spec.has_rdoc
|
||||
|
||||
assert_equal '>= 0', spec.required_ruby_version.to_s
|
||||
assert_same spec.required_ruby_version, new_spec.required_ruby_version
|
||||
|
||||
assert_equal '>= 0', spec.required_rubygems_version.to_s
|
||||
assert_same spec.required_rubygems_version,
|
||||
new_spec.required_rubygems_version
|
||||
end
|
||||
|
||||
def test__dump
|
||||
@a2.platform = Gem::Platform.local
|
||||
@a2.instance_variable_set :@original_platform, 'old_platform'
|
||||
|
@ -355,7 +431,7 @@ end
|
|||
s.homepage = %q{http://www.spice-of-life.net/download/cgikit/}
|
||||
s.autorequire = %q{cgikit}
|
||||
s.bindir = nil
|
||||
s.has_rdoc = nil
|
||||
s.has_rdoc = true
|
||||
s.required_ruby_version = nil
|
||||
s.platform = nil
|
||||
s.files = ["lib/cgikit", "lib/cgikit.rb", "lib/cgikit/components", "..."]
|
||||
|
@ -490,7 +566,7 @@ end
|
|||
'i386-mswin32_80' => 'a-1-x86-mswin32-80',
|
||||
'i386-mingw32' => 'a-1-x86-mingw32'
|
||||
}
|
||||
|
||||
|
||||
test_cases.each do |arch, expected|
|
||||
util_set_arch arch
|
||||
@a1.platform = 'current'
|
||||
|
@ -502,18 +578,49 @@ end
|
|||
assert @a1.has_rdoc?
|
||||
end
|
||||
|
||||
def test_has_rdoc_equals
|
||||
|
||||
use_ui @ui do
|
||||
@a1.has_rdoc = false
|
||||
end
|
||||
|
||||
assert_equal '', @ui.output
|
||||
|
||||
assert_equal true, @a1.has_rdoc
|
||||
end
|
||||
|
||||
def test_hash
|
||||
assert_equal @a1.hash, @a1.hash
|
||||
assert_equal @a1.hash, @a1.dup.hash
|
||||
refute_equal @a1.hash, @a2.hash
|
||||
end
|
||||
|
||||
def test_installation_path
|
||||
assert_equal @gemhome, @a1.installation_path
|
||||
|
||||
@a1.instance_variable_set :@loaded_from, nil
|
||||
|
||||
e = assert_raises Gem::Exception do
|
||||
@a1.installation_path
|
||||
end
|
||||
|
||||
assert_equal 'spec a-1 is not from an installed gem', e.message
|
||||
end
|
||||
|
||||
def test_lib_files
|
||||
@a1.files = %w[lib/foo.rb Rakefile]
|
||||
|
||||
assert_equal %w[lib/foo.rb], @a1.lib_files
|
||||
end
|
||||
|
||||
def test_license
|
||||
assert_equal 'MIT', @a1.license
|
||||
end
|
||||
|
||||
def test_licenses
|
||||
assert_equal ['MIT'], @a1.licenses
|
||||
end
|
||||
|
||||
def test_name
|
||||
assert_equal 'a', @a1.name
|
||||
end
|
||||
|
@ -568,6 +675,12 @@ end
|
|||
assert_equal Gem::Platform.new('ppc-darwin'), @a1.platform
|
||||
end
|
||||
|
||||
def test_prerelease_spec_adds_required_rubygems_version
|
||||
@prerelease = quick_gem('tardis', '2.2.0.a')
|
||||
refute @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new('1.3.1'))
|
||||
assert @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new('1.4.0'))
|
||||
end
|
||||
|
||||
def test_require_paths
|
||||
@a1.require_path = 'lib'
|
||||
assert_equal %w[lib], @a1.require_paths
|
||||
|
@ -646,7 +759,6 @@ Gem::Specification.new do |s|
|
|||
s.description = %q{This is a test description}
|
||||
s.email = %q{example@example.com}
|
||||
s.files = [\"lib/code.rb\"]
|
||||
s.has_rdoc = true
|
||||
s.homepage = %q{http://example.com}
|
||||
s.require_paths = [\"lib\"]
|
||||
s.rubygems_version = %q{#{Gem::RubyGemsVersion}}
|
||||
|
@ -698,8 +810,8 @@ Gem::Specification.new do |s|
|
|||
s.executables = [\"exec\"]
|
||||
s.extensions = [\"ext/a/extconf.rb\"]
|
||||
s.files = [\"lib/code.rb\", \"test/suite.rb\", \"bin/exec\", \"ext/a/extconf.rb\"]
|
||||
s.has_rdoc = %q{true}
|
||||
s.homepage = %q{http://example.com}
|
||||
s.licenses = [\"MIT\"]
|
||||
s.require_paths = [\"lib\"]
|
||||
s.requirements = [\"A working computer\"]
|
||||
s.rubyforge_project = %q{example}
|
||||
|
@ -709,7 +821,7 @@ Gem::Specification.new do |s|
|
|||
|
||||
if s.respond_to? :specification_version then
|
||||
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
||||
s.specification_version = 2
|
||||
s.specification_version = 3
|
||||
|
||||
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
||||
s.add_runtime_dependency(%q<rake>, [\"> 0.4\"])
|
||||
|
@ -797,12 +909,16 @@ end
|
|||
end
|
||||
|
||||
def test_validate
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
assert @a1.validate
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_authors
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.authors = []
|
||||
|
||||
|
@ -819,10 +935,28 @@ end
|
|||
end
|
||||
|
||||
assert_equal 'authors must be Array of Strings', e.message
|
||||
|
||||
@a1.authors = ['FIXME (who is writing this software)']
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not an author', e.message
|
||||
|
||||
@a1.authors = ['TODO (who is writing this software)']
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not an author', e.message
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_autorequire
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.autorequire = 'code'
|
||||
|
||||
|
@ -835,7 +969,50 @@ end
|
|||
end
|
||||
end
|
||||
|
||||
def test_validate_description
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.description = ''
|
||||
|
||||
use_ui @ui do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal "WARNING: no description specified\n", @ui.error, 'error'
|
||||
|
||||
@ui = MockGemUi.new
|
||||
@a1.summary = 'this is my summary'
|
||||
@a1.description = @a1.summary
|
||||
|
||||
use_ui @ui do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal "WARNING: description and summary are identical\n",
|
||||
@ui.error, 'error'
|
||||
|
||||
@a1.description = 'FIXME (describe your package)'
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not a description', e.message
|
||||
|
||||
@a1.description = 'TODO (describe your package)'
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not a description', e.message
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_email
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.email = ''
|
||||
|
||||
|
@ -844,10 +1021,28 @@ end
|
|||
end
|
||||
|
||||
assert_equal "WARNING: no email specified\n", @ui.error, 'error'
|
||||
|
||||
@a1.email = 'FIXME (your e-mail)'
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not an email address', e.message
|
||||
|
||||
@a1.email = 'TODO (your e-mail)'
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not an email address', e.message
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_empty
|
||||
util_setup_validate
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
Gem::Specification.new.validate
|
||||
end
|
||||
|
@ -856,8 +1051,11 @@ end
|
|||
end
|
||||
|
||||
def test_validate_executables
|
||||
util_setup_validate
|
||||
|
||||
FileUtils.mkdir_p File.join(@tempdir, 'bin')
|
||||
File.open File.join(@tempdir, 'bin', 'exec'), 'w' do end
|
||||
FileUtils.mkdir_p File.join(@tempdir, 'exec')
|
||||
|
||||
use_ui @ui do
|
||||
Dir.chdir @tempdir do
|
||||
|
@ -865,21 +1063,62 @@ end
|
|||
end
|
||||
end
|
||||
|
||||
assert_equal %w[exec], @a1.executables
|
||||
|
||||
assert_equal '', @ui.output, 'output'
|
||||
assert_equal "WARNING: bin/exec is missing #! line\n", @ui.error, 'error'
|
||||
end
|
||||
|
||||
def test_validate_empty_require_paths
|
||||
@a1.require_paths = []
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
if win_platform? then
|
||||
skip 'test_validate_empty_require_paths skipped on MS Windows (symlink)'
|
||||
else
|
||||
util_setup_validate
|
||||
|
||||
@a1.require_paths = []
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal 'specification must have at least one require_path',
|
||||
e.message
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_files
|
||||
skip 'test_validate_files skipped on MS Windows (symlink)' if win_platform?
|
||||
util_setup_validate
|
||||
|
||||
@a1.files += ['lib', 'lib2']
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
FileUtils.ln_s '/root/path', 'lib2' unless vc_windows?
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '["lib2"] are not files', e.message
|
||||
end
|
||||
|
||||
assert_equal 'specification must have at least one require_path', e.message
|
||||
assert_equal %w[lib/code.rb test/suite.rb bin/exec ext/a/extconf.rb lib2],
|
||||
@a1.files
|
||||
end
|
||||
|
||||
def test_validate_homepage
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.homepage = nil
|
||||
|
||||
use_ui @ui do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal "WARNING: no homepage specified\n", @ui.error, 'error'
|
||||
|
||||
@ui = MockGemUi.new
|
||||
|
||||
@a1.homepage = ''
|
||||
|
||||
use_ui @ui do
|
||||
|
@ -887,23 +1126,31 @@ end
|
|||
end
|
||||
|
||||
assert_equal "WARNING: no homepage specified\n", @ui.error, 'error'
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_has_rdoc
|
||||
Dir.chdir @tempdir do
|
||||
@a1.has_rdoc = false
|
||||
@a1.homepage = 'over at my cool site'
|
||||
|
||||
use_ui @ui do
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal "WARNING: RDoc will not be generated (has_rdoc == false)\n",
|
||||
@ui.error, 'error'
|
||||
assert_equal '"over at my cool site" is not a URI', e.message
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_name
|
||||
util_setup_validate
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.name = :json
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal 'invalid value for attribute name: ":json"', e.message
|
||||
end
|
||||
|
||||
def test_validate_platform_legacy
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.platform = 'mswin32'
|
||||
assert @a1.validate
|
||||
|
@ -917,6 +1164,8 @@ end
|
|||
end
|
||||
|
||||
def test_validate_rubyforge_project
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.rubyforge_project = ''
|
||||
|
||||
|
@ -930,6 +1179,8 @@ end
|
|||
end
|
||||
|
||||
def test_validate_rubygems_version
|
||||
util_setup_validate
|
||||
|
||||
@a1.rubygems_version = "3"
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
|
@ -939,7 +1190,26 @@ end
|
|||
e.message
|
||||
end
|
||||
|
||||
def test_validate_specification_version
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.specification_version = '1.0'
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
use_ui @ui do
|
||||
@a1.validate
|
||||
end
|
||||
end
|
||||
|
||||
err = 'specification_version must be a Fixnum (did you mean version?)'
|
||||
assert_equal err, e.message
|
||||
end
|
||||
end
|
||||
|
||||
def test_validate_summary
|
||||
util_setup_validate
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
@a1.summary = ''
|
||||
|
||||
|
@ -948,6 +1218,22 @@ end
|
|||
end
|
||||
|
||||
assert_equal "WARNING: no summary specified\n", @ui.error, 'error'
|
||||
|
||||
@a1.summary = 'FIXME (describe your package)'
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not a summary', e.message
|
||||
|
||||
@a1.summary = 'TODO (describe your package)'
|
||||
|
||||
e = assert_raises Gem::InvalidSpecificationException do
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
assert_equal '"FIXME" or "TODO" is not a summary', e.message
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -955,5 +1241,17 @@ end
|
|||
assert_equal Gem::Version.new('1'), @a1.version
|
||||
end
|
||||
|
||||
def util_setup_validate
|
||||
Dir.chdir @tempdir do
|
||||
FileUtils.mkdir_p File.join('ext', 'a')
|
||||
FileUtils.mkdir_p 'lib'
|
||||
FileUtils.mkdir_p 'test'
|
||||
|
||||
FileUtils.touch File.join('ext', 'a', 'extconf.rb')
|
||||
FileUtils.touch File.join('lib', 'code.rb')
|
||||
FileUtils.touch File.join('test', 'suite.rb')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue