$:.unshift '../lib' require 'test/unit' require 'rubygems' Gem::manage_gems class TestDeployment < Test::Unit::TestCase DEPLOYMENT_TEST_DIR = "deployment_test" def remove_temp_files @filectl.rm_rf(DEPLOYMENT_TEST_DIR) if File.exist?(DEPLOYMENT_TEST_DIR) @filectl.rm_f(Gem::Deployment::Manager::DEPLOYMENTS_DB) if File.exist?(Gem::Deployment::Manager::DEPLOYMENTS_DB) end def reset_paths remove_temp_files Dir.mkdir DEPLOYMENT_TEST_DIR end def test_deploy_dependencies return unless @rails_gem reset_paths dm = Gem::Deployment::Manager.new deployment = dm.new_deployment(DEPLOYMENT_TEST_DIR) deployment.add_gem(@rails_gem) assert deployment.deployed_gems.size > 1 end def test_deploy_rails return unless @rails_gem reset_paths dm = Gem::Deployment::Manager.new deployment = dm.new_deployment(DEPLOYMENT_TEST_DIR) deployment.add_gem(@rails_gem) deployment.prepare deployment.deploy dm2 = Gem::Deployment::Manager.new deployment = dm2[DEPLOYMENT_TEST_DIR] assert_not_nil deployment assert_equal File.expand_path(DEPLOYMENT_TEST_DIR), deployment.target_directory #puts deployment.deployed_gems.collect {|gem| gem.gem_name} #deployment.fully_deployed? end def xtest_deploy_sources reset_paths dm = Gem::Deployment::Manager.new deployment = dm.new_deployment(DEPLOYMENT_TEST_DIR) deployment.add_gem(@sources_gem) deployment2 = dm[DEPLOYMENT_TEST_DIR] assert_not_nil deployment2 assert_equal 1, deployment.deployed_gems.size deployed_sources = deployment.deployed_gems[0] assert_equal "sources-0.0.1", deployed_sources.gem_name assert_equal 0, deployed_sources.deployed_files.size deployment.prepare assert_equal 1, deployed_sources.deployed_files.size assert deployed_sources.deployed_files[0].source_path.include?("sources.rb") deployment.deploy assert File.exist?(File.join(DEPLOYMENT_TEST_DIR, "sources.rb")) end def test_deployed_file basename = "deploy_#{Time.now.to_i}" source_file = File.expand_path(basename+"1.tmp") dest_file = File.expand_path(basename+"2.tmp") File.open(source_file, "wb") {|file| file.print "Data"} df = Gem::Deployment::DeployedFile.new(source_file, dest_file) assert_equal source_file, df.source_path assert_equal dest_file, df.destination_path assert_nil df.checksum df.prepare assert_equal Digest::SHA1.new("Data").hexdigest, df.checksum df.deploy assert File.exist?(dest_file) assert df.deployed? assert_equal "Data", File.binread(dest_file) @filectl.rm_f source_file @filectl.rm_f dest_file end def teardown remove_temp_files end def setup @filectl = Object.new @filectl.extend Gem::Deployment::FileOperations @rails_gem = Gem.cache.search("rails").sort.last @sources_gem = Gem.cache.search("sources").sort.last end end