Convert Homebrew::Cleanup test to spec.
This commit is contained in:
parent
f06898a4f0
commit
e84e7bd591
130
Library/Homebrew/test/cleanup_spec.rb
Normal file
130
Library/Homebrew/test/cleanup_spec.rb
Normal file
@ -0,0 +1,130 @@
|
||||
require "test/support/fixtures/testball"
|
||||
require "cleanup"
|
||||
require "fileutils"
|
||||
require "pathname"
|
||||
|
||||
describe Homebrew::Cleanup do
|
||||
let(:ds_store) { Pathname.new("#{HOMEBREW_PREFIX}/Library/.DS_Store") }
|
||||
|
||||
around(:each) do |example|
|
||||
begin
|
||||
FileUtils.touch ds_store
|
||||
|
||||
example.run
|
||||
ensure
|
||||
FileUtils.rm_f ds_store
|
||||
end
|
||||
end
|
||||
|
||||
describe "::cleanup" do
|
||||
it "removes .DS_Store files" do
|
||||
shutup do
|
||||
described_class.cleanup
|
||||
end
|
||||
|
||||
expect(ds_store).not_to exist
|
||||
end
|
||||
|
||||
it "doesn't remove anything if `--dry-run` is specified" do
|
||||
ARGV << "--dry-run"
|
||||
|
||||
shutup do
|
||||
described_class.cleanup
|
||||
end
|
||||
|
||||
expect(ds_store).to exist
|
||||
end
|
||||
end
|
||||
|
||||
specify "::cleanup_formula" do
|
||||
f1 = Class.new(Testball) do
|
||||
version "1.0"
|
||||
end.new
|
||||
|
||||
f2 = Class.new(Testball) do
|
||||
version "0.2"
|
||||
version_scheme 1
|
||||
end.new
|
||||
|
||||
f3 = Class.new(Testball) do
|
||||
version "0.3"
|
||||
version_scheme 1
|
||||
end.new
|
||||
|
||||
f4 = Class.new(Testball) do
|
||||
version "0.1"
|
||||
version_scheme 2
|
||||
end.new
|
||||
|
||||
shutup do
|
||||
[f1, f2, f3, f4].each do |f|
|
||||
f.brew do
|
||||
f.install
|
||||
end
|
||||
|
||||
Tab.create(f, DevelopmentTools.default_compiler, :libcxx).write
|
||||
end
|
||||
end
|
||||
|
||||
expect(f1).to be_installed
|
||||
expect(f2).to be_installed
|
||||
expect(f3).to be_installed
|
||||
expect(f4).to be_installed
|
||||
|
||||
shutup do
|
||||
described_class.cleanup_formula f3
|
||||
end
|
||||
|
||||
expect(f1).not_to be_installed
|
||||
expect(f2).not_to be_installed
|
||||
expect(f3).to be_installed
|
||||
expect(f4).to be_installed
|
||||
end
|
||||
|
||||
specify "::cleanup_logs" do
|
||||
path = (HOMEBREW_LOGS/"delete_me")
|
||||
path.mkpath
|
||||
ARGV << "--prune=all"
|
||||
|
||||
shutup do
|
||||
described_class.cleanup_logs
|
||||
end
|
||||
|
||||
expect(path).not_to exist
|
||||
end
|
||||
|
||||
describe "::cleanup_cache" do
|
||||
it "cleans up incomplete downloads" do
|
||||
incomplete = (HOMEBREW_CACHE/"something.incomplete")
|
||||
incomplete.mkpath
|
||||
|
||||
shutup do
|
||||
described_class.cleanup_cache
|
||||
end
|
||||
|
||||
expect(incomplete).not_to exist
|
||||
end
|
||||
|
||||
it "cleans up 'java_cache'" do
|
||||
java_cache = (HOMEBREW_CACHE/"java_cache")
|
||||
java_cache.mkpath
|
||||
|
||||
shutup do
|
||||
described_class.cleanup_cache
|
||||
end
|
||||
|
||||
expect(java_cache).not_to exist
|
||||
end
|
||||
|
||||
it "cleans up 'npm_cache'" do
|
||||
npm_cache = (HOMEBREW_CACHE/"npm_cache")
|
||||
npm_cache.mkpath
|
||||
|
||||
shutup do
|
||||
described_class.cleanup_cache
|
||||
end
|
||||
|
||||
expect(npm_cache).not_to exist
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,96 +0,0 @@
|
||||
require "testing_env"
|
||||
require "test/support/fixtures/testball"
|
||||
require "cleanup"
|
||||
require "fileutils"
|
||||
require "pathname"
|
||||
require "testing_env"
|
||||
|
||||
class CleanupTests < Homebrew::TestCase
|
||||
def setup
|
||||
super
|
||||
@ds_store = Pathname.new "#{HOMEBREW_PREFIX}/Library/.DS_Store"
|
||||
FileUtils.touch @ds_store
|
||||
end
|
||||
|
||||
def teardown
|
||||
FileUtils.rm_f @ds_store
|
||||
super
|
||||
end
|
||||
|
||||
def test_cleanup
|
||||
shutup { Homebrew::Cleanup.cleanup }
|
||||
refute_predicate @ds_store, :exist?
|
||||
end
|
||||
|
||||
def test_cleanup_dry_run
|
||||
ARGV << "--dry-run"
|
||||
shutup { Homebrew::Cleanup.cleanup }
|
||||
assert_predicate @ds_store, :exist?
|
||||
end
|
||||
|
||||
def test_cleanup_formula
|
||||
f1 = Class.new(Testball) do
|
||||
version "1.0"
|
||||
end.new
|
||||
f2 = Class.new(Testball) do
|
||||
version "0.2"
|
||||
version_scheme 1
|
||||
end.new
|
||||
f3 = Class.new(Testball) do
|
||||
version "0.3"
|
||||
version_scheme 1
|
||||
end.new
|
||||
f4 = Class.new(Testball) do
|
||||
version "0.1"
|
||||
version_scheme 2
|
||||
end.new
|
||||
|
||||
shutup do
|
||||
[f1, f2, f3, f4].each do |f|
|
||||
f.brew { f.install }
|
||||
Tab.create(f, DevelopmentTools.default_compiler, :libcxx).write
|
||||
end
|
||||
end
|
||||
|
||||
assert_predicate f1, :installed?
|
||||
assert_predicate f2, :installed?
|
||||
assert_predicate f3, :installed?
|
||||
assert_predicate f4, :installed?
|
||||
|
||||
shutup { Homebrew::Cleanup.cleanup_formula f3 }
|
||||
|
||||
refute_predicate f1, :installed?
|
||||
refute_predicate f2, :installed?
|
||||
assert_predicate f3, :installed?
|
||||
assert_predicate f4, :installed?
|
||||
end
|
||||
|
||||
def test_cleanup_logs
|
||||
path = (HOMEBREW_LOGS/"delete_me")
|
||||
path.mkpath
|
||||
ARGV << "--prune=all"
|
||||
shutup { Homebrew::Cleanup.cleanup_logs }
|
||||
refute_predicate path, :exist?
|
||||
end
|
||||
|
||||
def test_cleanup_cache_incomplete_downloads
|
||||
incomplete = (HOMEBREW_CACHE/"something.incomplete")
|
||||
incomplete.mkpath
|
||||
shutup { Homebrew::Cleanup.cleanup_cache }
|
||||
refute_predicate incomplete, :exist?
|
||||
end
|
||||
|
||||
def test_cleanup_cache_java_cache
|
||||
java_cache = (HOMEBREW_CACHE/"java_cache")
|
||||
java_cache.mkpath
|
||||
shutup { Homebrew::Cleanup.cleanup_cache }
|
||||
refute_predicate java_cache, :exist?
|
||||
end
|
||||
|
||||
def test_cleanup_cache_npm_cache
|
||||
npm_cache = (HOMEBREW_CACHE/"npm_cache")
|
||||
npm_cache.mkpath
|
||||
shutup { Homebrew::Cleanup.cleanup_cache }
|
||||
refute_predicate npm_cache, :exist?
|
||||
end
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user