public
Description: Remote multi-server automation tool
Homepage: http://www.capify.org
Clone URL: git://github.com/jamis/capistrano.git
Search Repo:
capistrano / test / utils.rb
100644 39 lines (32 sloc) 0.9 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
begin
  require 'rubygems'
  gem 'mocha'
rescue LoadError
end
 
require 'test/unit'
require 'mocha'
require 'capistrano/server_definition'
 
module TestExtensions
  def server(host, options={})
    Capistrano::ServerDefinition.new(host, options)
  end
 
  def namespace(fqn=nil)
    space = stub(:roles => {}, :fully_qualified_name => fqn, :default_task => nil)
    yield(space) if block_given?
    space
  end
 
  def role(space, name, *args)
    opts = args.last.is_a?(Hash) ? args.pop : {}
    space.roles[name] ||= []
    space.roles[name].concat(args.map { |h| Capistrano::ServerDefinition.new(h, opts) })
  end
 
  def new_task(name, namespace=@namespace, options={}, &block)
    block ||= Proc.new {}
    task = Capistrano::TaskDefinition.new(name, namespace, options, &block)
    assert_equal block, task.body
    return task
  end
end
 
class Test::Unit::TestCase
  include TestExtensions
end