Manage sandbox test resources in setup/teardown

This commit is contained in:
Jack Nagel 2015-04-28 22:36:54 -04:00
parent a972565739
commit ba26567b03

View File

@ -4,25 +4,25 @@ require "sandbox"
class SandboxTest < Homebrew::TestCase
def setup
skip "sandbox not implemented" unless Sandbox.available?
@sandbox = Sandbox.new
@dir = Pathname.new(Dir.mktmpdir)
@file = @dir/"foo"
end
def teardown
@dir.rmtree
end
def test_allow_write
s = Sandbox.new
testpath = Pathname.new(TEST_TMPDIR)
foo = testpath/"foo"
s.allow_write foo
s.exec "touch", foo
assert_predicate foo, :exist?
foo.unlink
@sandbox.allow_write @file
@sandbox.exec "touch", @file
assert_predicate @file, :exist?
end
def test_deny_write
s = Sandbox.new
testpath = Pathname.new(TEST_TMPDIR)
bar = testpath/"bar"
shutup do
assert_raises(ErrorDuringExecution) { s.exec "touch", bar }
assert_raises(ErrorDuringExecution) { @sandbox.exec "touch", @file }
end
refute_predicate bar, :exist?
refute_predicate @file, :exist?
end
end