Installation tests now use the actual installer
This commit is contained in:
		
							parent
							
								
									2ca8172fe9
								
							
						
					
					
						commit
						c10f19c838
					
				@ -1,63 +0,0 @@
 | 
			
		||||
require 'testing_env'
 | 
			
		||||
require 'formula'
 | 
			
		||||
require 'compat/formula_specialties'
 | 
			
		||||
require 'testball'
 | 
			
		||||
require 'keg'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class InstallTests < Homebrew::TestCase
 | 
			
		||||
  def temporary_install f
 | 
			
		||||
    f.prefix.mkpath
 | 
			
		||||
    keg = Keg.new(f.prefix)
 | 
			
		||||
 | 
			
		||||
    shutup do
 | 
			
		||||
      f.brew { f.install }
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      yield
 | 
			
		||||
    ensure
 | 
			
		||||
      keg.unlink
 | 
			
		||||
      keg.uninstall
 | 
			
		||||
      f.clear_cache
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    refute_predicate keg, :exist?
 | 
			
		||||
    refute_predicate f, :installed?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_a_basic_install
 | 
			
		||||
    f = Testball.new
 | 
			
		||||
 | 
			
		||||
    refute_predicate f, :installed?
 | 
			
		||||
 | 
			
		||||
    temporary_install f do
 | 
			
		||||
      # Test that things made it into the Keg
 | 
			
		||||
      assert_predicate f.bin, :directory?
 | 
			
		||||
      assert_equal 3, f.bin.children.length
 | 
			
		||||
 | 
			
		||||
      assert_predicate f.libexec, :directory?
 | 
			
		||||
      assert_equal 1, f.libexec.children.length
 | 
			
		||||
 | 
			
		||||
      refute_predicate f.prefix+'main.c', :exist?
 | 
			
		||||
      assert_predicate f, :installed?
 | 
			
		||||
 | 
			
		||||
      # Test that things make it into the Cellar
 | 
			
		||||
      keg = Keg.new f.prefix
 | 
			
		||||
      keg.link
 | 
			
		||||
 | 
			
		||||
      bin = HOMEBREW_PREFIX+"bin"
 | 
			
		||||
      assert_predicate bin, :directory?
 | 
			
		||||
      assert_equal 3, bin.children.length
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_script_install
 | 
			
		||||
    f = Class.new(ScriptFileFormula) do
 | 
			
		||||
      url "file://#{File.expand_path(__FILE__)}"
 | 
			
		||||
      version "1"
 | 
			
		||||
    end.new("test_script_formula", Pathname.new(__FILE__).expand_path, :stable)
 | 
			
		||||
 | 
			
		||||
    temporary_install(f) { assert_equal 1, f.bin.children.length }
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										70
									
								
								Library/Homebrew/test/test_formula_installer.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								Library/Homebrew/test/test_formula_installer.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
			
		||||
require "testing_env"
 | 
			
		||||
require "formula"
 | 
			
		||||
require "compat/formula_specialties"
 | 
			
		||||
require "formula_installer"
 | 
			
		||||
require "keg"
 | 
			
		||||
require "testball"
 | 
			
		||||
 | 
			
		||||
class InstallTests < Homebrew::TestCase
 | 
			
		||||
  def temporary_install(formula)
 | 
			
		||||
    refute_predicate formula, :installed?
 | 
			
		||||
 | 
			
		||||
    installer = FormulaInstaller.new(formula)
 | 
			
		||||
 | 
			
		||||
    shutup { installer.install }
 | 
			
		||||
 | 
			
		||||
    keg = Keg.new(formula.prefix)
 | 
			
		||||
 | 
			
		||||
    assert_predicate formula, :installed?
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      yield formula
 | 
			
		||||
    ensure
 | 
			
		||||
      keg.unlink
 | 
			
		||||
      keg.uninstall
 | 
			
		||||
      formula.clear_cache
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    refute_predicate keg, :exist?
 | 
			
		||||
    refute_predicate formula, :installed?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_a_basic_install
 | 
			
		||||
    temporary_install(Testball.new) do |f|
 | 
			
		||||
      # Test that things made it into the Keg
 | 
			
		||||
      assert_predicate f.bin, :directory?
 | 
			
		||||
      assert_equal 3, f.bin.children.length
 | 
			
		||||
 | 
			
		||||
      assert_predicate f.libexec, :directory?
 | 
			
		||||
      assert_equal 1, f.libexec.children.length
 | 
			
		||||
 | 
			
		||||
      refute_predicate f.prefix+'main.c', :exist?
 | 
			
		||||
 | 
			
		||||
      # Test that things make it into the Cellar
 | 
			
		||||
      keg = Keg.new f.prefix
 | 
			
		||||
      keg.link
 | 
			
		||||
 | 
			
		||||
      bin = HOMEBREW_PREFIX+"bin"
 | 
			
		||||
      assert_predicate bin, :directory?
 | 
			
		||||
      assert_equal 3, bin.children.length
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_script_install
 | 
			
		||||
    mktmpdir do |dir|
 | 
			
		||||
      name = "test_script_formula"
 | 
			
		||||
      path = Pathname.new(dir)+"#{name}.rb"
 | 
			
		||||
 | 
			
		||||
      path.write <<-EOS.undent
 | 
			
		||||
        class #{Formulary.class_s(name)} < ScriptFileFormula
 | 
			
		||||
          url "file://#{File.expand_path(__FILE__)}"
 | 
			
		||||
          version "1"
 | 
			
		||||
        end
 | 
			
		||||
        EOS
 | 
			
		||||
 | 
			
		||||
      f = Formulary.factory(path.to_s)
 | 
			
		||||
 | 
			
		||||
      temporary_install(f) { assert_equal 1, f.bin.children.length }
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
class Testball < Formula
 | 
			
		||||
  def initialize(name="testball", path=Pathname.new(__FILE__).expand_path, spec=:stable)
 | 
			
		||||
    self.class.instance_eval do
 | 
			
		||||
      stable.url "file://#{TEST_DIRECTORY}/tarballs/testball-0.1.tbz"
 | 
			
		||||
      stable.url "file://#{File.expand_path("..", __FILE__)}/tarballs/testball-0.1.tbz"
 | 
			
		||||
      stable.sha1 "482e737739d946b7c8cbaf127d9ee9c148b999f5"
 | 
			
		||||
    end
 | 
			
		||||
    super
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user