test/test_process.rb in god-0.11.0 vs test/test_process.rb in god-0.12.0

- old
+ new

@@ -3,11 +3,11 @@ module God class Process # def fork # raise "You forgot to stub fork" # end - + def exec(*args) raise "You forgot to stub exec" end end end @@ -17,60 +17,60 @@ God.internal_init @p = God::Process.new @p.name = 'foo' @p.stubs(:test).returns true # so we don't try to mkdir_p Process.stubs(:detach) # because we stub fork - + ::Process::Sys.stubs(:setuid).returns(true) ::Process::Sys.stubs(:setgid).returns(true) end - + # valid? - + def test_valid_should_return_true_if_auto_daemonized_and_log @p.start = 'qux' @p.log = 'bar' - + assert @p.valid? end - + def test_valid_should_return_true_if_auto_daemonized_and_no_stop @p.start = 'qux' @p.log = 'bar' - + assert @p.valid? end - + def test_valid_should_return_true_if_uid_exists @p.start = 'qux' @p.log = '/tmp/foo.log' @p.uid = 'root' - + assert @p.valid? end - + def test_valid_should_return_true_if_uid_does_not_exists @p.start = 'qux' @p.log = '/tmp/foo.log' @p.uid = 'foobarbaz' - + assert !@p.valid? end - + def test_valid_should_return_true_if_gid_exists @p.start = 'qux' @p.log = '/tmp/foo.log' @p.gid = 'wheel' - + assert @p.valid? end - + def test_valid_should_return_false_if_gid_does_not_exists @p.start = 'qux' @p.log = '/tmp/foo.log' @p.gid = 'foobarbaz' - + assert !@p.valid? end def test_valid_should_return_true_if_dir_exists @p.start = 'qux' @@ -111,13 +111,13 @@ File.expects(:exist?).with('/tmp/foo.log').returns(true) File.expects(:exist?).with('/tmp/dev/null').returns(true) assert @p.valid? end - + # call_action - + def test_call_action_should_write_pid # Only for start, restart [:start, :restart].each do |action| @p.stubs(:test).returns true IO.expects(:pipe).returns([StringIO.new('1234'), StringIO.new]) @@ -143,102 +143,108 @@ @p.name = 'foo' @p.pid_file = 'blah.pid' @p.stubs(:test).returns true # so we don't try to mkdir_p Process.stubs(:detach) # because we stub fork end - + # alive? - + def test_alive_should_call_system_process_exists File.expects(:read).with('blah.pid').times(2).returns('1234') System::Process.any_instance.expects(:exists?).returns(false) assert !@p.alive? end - + def test_alive_should_return_false_if_no_such_file File.expects(:read).with('blah.pid').raises(Errno::ENOENT) assert !@p.alive? end - + # valid? - + def test_valid_should_return_false_if_no_start @p.name = 'foo' @p.stop = 'baz' assert !@p.valid? end - + # pid - + def test_pid_should_return_integer_for_valid_pid_files File.stubs(:read).returns("123") assert_equal 123, @p.pid end - + def test_pid_should_return_nil_for_missing_files @p.pid_file = '' assert_equal nil, @p.pid end - + def test_pid_should_return_nil_for_invalid_pid_files File.stubs(:read).returns("four score and seven years ago") assert_equal nil, @p.pid end - + def test_pid_should_retain_last_pid_value_if_pid_file_is_removed File.stubs(:read).returns("123") assert_equal 123, @p.pid - + File.stubs(:read).raises(Errno::ENOENT) assert_equal 123, @p.pid - + File.stubs(:read).returns("246") assert_equal 246, @p.pid end - + # default_pid_file - + def test_default_pid_file assert_equal File.join(God.pid_file_directory, 'foo.pid'), @p.default_pid_file end - + # unix socket - + def test_unix_socket_should_return_path_specified @p.unix_socket = '/path/to-socket' assert_equal '/path/to-socket', @p.unix_socket end - + + # umask + def test_umask_should_return_umask_specified + @p.umask = 002 + assert_equal 002, @p.umask + end + # call_action # These actually excercise call_action in the back at this point - Kev - + def test_call_action_with_string_should_call_system @p.start = "do something" @p.expects(:fork) Process.expects(:waitpid2).returns([123, 0]) @p.call_action(:start) end - + def test_call_action_with_lambda_should_call cmd = lambda { puts "Hi" } cmd.expects(:call) @p.start = cmd @p.call_action(:start) end - + def test_call_action_with_invalid_command_class_should_raise @p.start = 5 @p.stop = 'baz' - + assert @p.valid? - + assert_raise NotImplementedError do @p.call_action(:start) end end - + # start!/stop!/restart! - + def test_start_stop_restart_bang [:start, :stop, :restart].each do |x| @p.expects(:call_action).with(x) @p.send("#{x}!") end