capistrano 2.15.11 → 3.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +17 -8
  3. data/Gemfile +1 -12
  4. data/LICENSE.txt +18 -0
  5. data/README.md +65 -68
  6. data/Rakefile +4 -10
  7. data/bin/cap +2 -3
  8. data/bin/capify +7 -91
  9. data/capistrano.gemspec +20 -34
  10. data/lib/Capfile +2 -0
  11. data/lib/capistrano/application.rb +28 -0
  12. data/lib/capistrano/bundler.rb +1 -0
  13. data/lib/capistrano/configuration/question.rb +42 -0
  14. data/lib/capistrano/configuration/server.rb +24 -0
  15. data/lib/capistrano/configuration/servers.rb +43 -95
  16. data/lib/capistrano/configuration.rb +81 -44
  17. data/lib/capistrano/console.rb +1 -0
  18. data/lib/capistrano/defaults.rb +11 -0
  19. data/lib/capistrano/deploy.rb +3 -0
  20. data/lib/capistrano/dotfile.rb +3 -0
  21. data/lib/capistrano/dsl/env.rb +57 -0
  22. data/lib/capistrano/dsl/paths.rb +74 -0
  23. data/lib/capistrano/dsl/stages.rb +15 -0
  24. data/lib/capistrano/dsl/task_enhancements.rb +15 -0
  25. data/lib/capistrano/dsl.rb +38 -0
  26. data/lib/capistrano/git.rb +1 -0
  27. data/lib/capistrano/i18n.rb +33 -0
  28. data/lib/capistrano/install.rb +1 -0
  29. data/lib/capistrano/setup.rb +17 -0
  30. data/lib/capistrano/tasks/bundler.rake +13 -0
  31. data/lib/capistrano/tasks/console.rake +21 -0
  32. data/lib/capistrano/tasks/deploy.rake +153 -0
  33. data/lib/capistrano/tasks/framework.rake +45 -0
  34. data/lib/capistrano/tasks/git.rake +65 -0
  35. data/lib/capistrano/tasks/install.rake +39 -0
  36. data/lib/capistrano/templates/Capfile +43 -0
  37. data/lib/capistrano/templates/deploy.rb.erb +17 -0
  38. data/lib/capistrano/templates/stage.rb.erb +20 -0
  39. data/lib/capistrano/version.rb +1 -11
  40. data/lib/capistrano.rb +9 -3
  41. data/spec/lib/capistrano/configuration/question_spec.rb +54 -0
  42. data/spec/lib/capistrano/configuration/server_spec.rb +48 -0
  43. data/spec/lib/capistrano/configuration/servers_spec.rb +79 -0
  44. data/spec/lib/capistrano/configuration_spec.rb +80 -0
  45. data/spec/lib/capistrano/dsl/env_spec.rb +83 -0
  46. data/spec/lib/capistrano/dsl/paths_spec.rb +69 -0
  47. data/spec/lib/capistrano/dsl_spec.rb +51 -0
  48. data/spec/lib/capistrano_spec.rb +8 -0
  49. data/spec/spec_helper.rb +14 -0
  50. metadata +89 -215
  51. data/.travis.yml +0 -9
  52. data/CHANGELOG +0 -1203
  53. data/lib/capistrano/callback.rb +0 -45
  54. data/lib/capistrano/cli/execute.rb +0 -85
  55. data/lib/capistrano/cli/help.rb +0 -125
  56. data/lib/capistrano/cli/help.txt +0 -81
  57. data/lib/capistrano/cli/options.rb +0 -243
  58. data/lib/capistrano/cli/ui.rb +0 -40
  59. data/lib/capistrano/cli.rb +0 -47
  60. data/lib/capistrano/command.rb +0 -303
  61. data/lib/capistrano/configuration/actions/file_transfer.rb +0 -50
  62. data/lib/capistrano/configuration/actions/inspect.rb +0 -46
  63. data/lib/capistrano/configuration/actions/invocation.rb +0 -329
  64. data/lib/capistrano/configuration/alias_task.rb +0 -26
  65. data/lib/capistrano/configuration/callbacks.rb +0 -147
  66. data/lib/capistrano/configuration/connections.rb +0 -237
  67. data/lib/capistrano/configuration/execution.rb +0 -142
  68. data/lib/capistrano/configuration/loading.rb +0 -205
  69. data/lib/capistrano/configuration/log_formatters.rb +0 -75
  70. data/lib/capistrano/configuration/namespaces.rb +0 -223
  71. data/lib/capistrano/configuration/roles.rb +0 -83
  72. data/lib/capistrano/configuration/variables.rb +0 -127
  73. data/lib/capistrano/errors.rb +0 -19
  74. data/lib/capistrano/ext/multistage.rb +0 -67
  75. data/lib/capistrano/ext/string.rb +0 -5
  76. data/lib/capistrano/extensions.rb +0 -57
  77. data/lib/capistrano/fix_rake_deprecated_dsl.rb +0 -8
  78. data/lib/capistrano/logger.rb +0 -166
  79. data/lib/capistrano/processable.rb +0 -55
  80. data/lib/capistrano/recipes/compat.rb +0 -32
  81. data/lib/capistrano/recipes/deploy/assets.rb +0 -202
  82. data/lib/capistrano/recipes/deploy/dependencies.rb +0 -44
  83. data/lib/capistrano/recipes/deploy/local_dependency.rb +0 -54
  84. data/lib/capistrano/recipes/deploy/remote_dependency.rb +0 -117
  85. data/lib/capistrano/recipes/deploy/scm/accurev.rb +0 -169
  86. data/lib/capistrano/recipes/deploy/scm/base.rb +0 -200
  87. data/lib/capistrano/recipes/deploy/scm/bzr.rb +0 -86
  88. data/lib/capistrano/recipes/deploy/scm/cvs.rb +0 -153
  89. data/lib/capistrano/recipes/deploy/scm/darcs.rb +0 -96
  90. data/lib/capistrano/recipes/deploy/scm/git.rb +0 -299
  91. data/lib/capistrano/recipes/deploy/scm/mercurial.rb +0 -137
  92. data/lib/capistrano/recipes/deploy/scm/none.rb +0 -55
  93. data/lib/capistrano/recipes/deploy/scm/perforce.rb +0 -152
  94. data/lib/capistrano/recipes/deploy/scm/subversion.rb +0 -121
  95. data/lib/capistrano/recipes/deploy/scm.rb +0 -19
  96. data/lib/capistrano/recipes/deploy/strategy/base.rb +0 -92
  97. data/lib/capistrano/recipes/deploy/strategy/checkout.rb +0 -20
  98. data/lib/capistrano/recipes/deploy/strategy/copy.rb +0 -338
  99. data/lib/capistrano/recipes/deploy/strategy/export.rb +0 -20
  100. data/lib/capistrano/recipes/deploy/strategy/remote.rb +0 -52
  101. data/lib/capistrano/recipes/deploy/strategy/remote_cache.rb +0 -57
  102. data/lib/capistrano/recipes/deploy/strategy/unshared_remote_cache.rb +0 -21
  103. data/lib/capistrano/recipes/deploy/strategy.rb +0 -20
  104. data/lib/capistrano/recipes/deploy.rb +0 -625
  105. data/lib/capistrano/recipes/standard.rb +0 -37
  106. data/lib/capistrano/recipes/templates/maintenance.rhtml +0 -53
  107. data/lib/capistrano/role.rb +0 -102
  108. data/lib/capistrano/server_definition.rb +0 -56
  109. data/lib/capistrano/shell.rb +0 -265
  110. data/lib/capistrano/ssh.rb +0 -95
  111. data/lib/capistrano/task_definition.rb +0 -77
  112. data/lib/capistrano/transfer.rb +0 -218
  113. data/test/cli/execute_test.rb +0 -132
  114. data/test/cli/help_test.rb +0 -165
  115. data/test/cli/options_test.rb +0 -329
  116. data/test/cli/ui_test.rb +0 -28
  117. data/test/cli_test.rb +0 -17
  118. data/test/command_test.rb +0 -322
  119. data/test/configuration/actions/file_transfer_test.rb +0 -61
  120. data/test/configuration/actions/inspect_test.rb +0 -76
  121. data/test/configuration/actions/invocation_test.rb +0 -306
  122. data/test/configuration/alias_task_test.rb +0 -118
  123. data/test/configuration/callbacks_test.rb +0 -201
  124. data/test/configuration/connections_test.rb +0 -439
  125. data/test/configuration/execution_test.rb +0 -175
  126. data/test/configuration/loading_test.rb +0 -148
  127. data/test/configuration/namespace_dsl_test.rb +0 -332
  128. data/test/configuration/roles_test.rb +0 -157
  129. data/test/configuration/servers_test.rb +0 -183
  130. data/test/configuration/variables_test.rb +0 -190
  131. data/test/configuration_test.rb +0 -77
  132. data/test/deploy/local_dependency_test.rb +0 -76
  133. data/test/deploy/remote_dependency_test.rb +0 -146
  134. data/test/deploy/scm/accurev_test.rb +0 -23
  135. data/test/deploy/scm/base_test.rb +0 -55
  136. data/test/deploy/scm/bzr_test.rb +0 -51
  137. data/test/deploy/scm/darcs_test.rb +0 -37
  138. data/test/deploy/scm/git_test.rb +0 -274
  139. data/test/deploy/scm/mercurial_test.rb +0 -134
  140. data/test/deploy/scm/none_test.rb +0 -35
  141. data/test/deploy/scm/perforce_test.rb +0 -23
  142. data/test/deploy/scm/subversion_test.rb +0 -68
  143. data/test/deploy/strategy/copy_test.rb +0 -360
  144. data/test/extensions_test.rb +0 -69
  145. data/test/fixtures/cli_integration.rb +0 -5
  146. data/test/fixtures/config.rb +0 -5
  147. data/test/fixtures/custom.rb +0 -3
  148. data/test/logger_formatting_test.rb +0 -149
  149. data/test/logger_test.rb +0 -134
  150. data/test/recipes_test.rb +0 -25
  151. data/test/role_test.rb +0 -11
  152. data/test/server_definition_test.rb +0 -121
  153. data/test/shell_test.rb +0 -96
  154. data/test/ssh_test.rb +0 -113
  155. data/test/task_definition_test.rb +0 -117
  156. data/test/transfer_test.rb +0 -168
  157. data/test/utils.rb +0 -37
  158. data/test/version_test.rb +0 -11
@@ -1,69 +0,0 @@
1
- require "utils"
2
- require 'capistrano'
3
-
4
- class ExtensionsTest < Test::Unit::TestCase
5
- module CustomExtension
6
- def do_something(command)
7
- run(command)
8
- end
9
- end
10
-
11
- def setup
12
- @config = Capistrano::Configuration.new
13
- end
14
-
15
- def teardown
16
- Capistrano::EXTENSIONS.keys.each { |e| Capistrano.remove_plugin(e) }
17
- end
18
-
19
- def test_register_plugin_should_add_instance_method_on_configuration_and_return_true
20
- assert !@config.respond_to?(:custom_stuff)
21
- assert Capistrano.plugin(:custom_stuff, CustomExtension)
22
- assert @config.respond_to?(:custom_stuff)
23
- end
24
-
25
- def test_register_plugin_that_already_exists_should_return_false
26
- assert Capistrano.plugin(:custom_stuff, CustomExtension)
27
- assert !Capistrano.plugin(:custom_stuff, CustomExtension)
28
- end
29
-
30
- def test_register_plugin_with_public_method_name_should_fail
31
- method = Capistrano::Configuration.public_instance_methods.first
32
- assert_not_nil method, "need a public instance method for testing"
33
- assert_raises(Capistrano::Error) { Capistrano.plugin(method, CustomExtension) }
34
- end
35
-
36
- def test_register_plugin_with_protected_method_name_should_fail
37
- method = Capistrano::Configuration.protected_instance_methods.first
38
- assert_not_nil method, "need a protected instance method for testing"
39
- assert_raises(Capistrano::Error) { Capistrano.plugin(method, CustomExtension) }
40
- end
41
-
42
- def test_register_plugin_with_private_method_name_should_fail
43
- method = Capistrano::Configuration.private_instance_methods.first
44
- assert_not_nil method, "need a private instance method for testing"
45
- assert_raises(Capistrano::Error) { Capistrano.plugin(method, CustomExtension) }
46
- end
47
-
48
- def test_unregister_plugin_that_does_not_exist_should_return_false
49
- assert !Capistrano.remove_plugin(:custom_stuff)
50
- end
51
-
52
- def test_unregister_plugin_should_remove_method_and_return_true
53
- assert Capistrano.plugin(:custom_stuff, CustomExtension)
54
- assert @config.respond_to?(:custom_stuff)
55
- assert Capistrano.remove_plugin(:custom_stuff)
56
- assert !@config.respond_to?(:custom_stuff)
57
- end
58
-
59
- def test_registered_plugin_proxy_should_return_proxy_object
60
- Capistrano.plugin(:custom_stuff, CustomExtension)
61
- assert_instance_of Capistrano::ExtensionProxy, @config.custom_stuff
62
- end
63
-
64
- def test_proxy_object_should_delegate_to_configuration
65
- Capistrano.plugin(:custom_stuff, CustomExtension)
66
- @config.expects(:run).with("hello")
67
- @config.custom_stuff.do_something("hello")
68
- end
69
- end
@@ -1,5 +0,0 @@
1
- role :test, "www.capistrano.test"
2
-
3
- task :testing, :roles => :test do
4
- set :testing_occurred, true
5
- end
@@ -1,5 +0,0 @@
1
- set :application, "foo"
2
- set :repository, "1/2/#{application}"
3
- set :gateway, "#{__FILE__}.example.com"
4
-
5
- role :web, "www.example.com", :primary => true
@@ -1,3 +0,0 @@
1
- ConfigurationLoadingTest::MockConfig.instance(:must_exist).load do
2
- ping! :custom
3
- end
@@ -1,149 +0,0 @@
1
- require File.expand_path("../utils", __FILE__)
2
- require 'capistrano/logger'
3
- require 'stringio'
4
-
5
- Capistrano::Logger.class_eval do
6
- # Allows formatters to be changed during tests
7
- def self.formatters=(formatters)
8
- @formatters = formatters
9
- @sorted_formatters = nil
10
- end
11
- end
12
-
13
- class LoggerFormattingTest < Test::Unit::TestCase
14
- def setup
15
- @io = StringIO.new
16
- @io.stubs(:tty?).returns(true)
17
- @logger = Capistrano::Logger.new(:output => @io, :level => 3)
18
- end
19
-
20
- def test_matching_with_style_and_color
21
- Capistrano::Logger.formatters = [{ :match => /^err ::/, :color => :red, :style => :underscore, :level => 0 }]
22
- @logger.log(0, "err :: Error Occurred")
23
- assert @io.string.include? "\e[4;31merr :: Error Occurred\e[0m"
24
- end
25
-
26
- def test_style_without_color
27
- Capistrano::Logger.formatters = [{ :match => /.*/, :style => :underscore, :level => 0 }]
28
- @logger.log(0, "test message")
29
- # Default color should be blank (0m)
30
- assert @io.string.include? "\e[4;0mtest message\e[0m"
31
- end
32
-
33
- def test_prepending_text
34
- Capistrano::Logger.formatters = [{ :match => /^executing/, :level => 0, :prepend => '== Currently ' }]
35
- @logger.log(0, "executing task")
36
- assert @io.string.include? '== Currently executing task'
37
- end
38
-
39
- def test_replacing_matched_text
40
- Capistrano::Logger.formatters = [{ :match => /^executing/, :level => 0, :replace => 'running' }]
41
- @logger.log(0, "executing task")
42
- assert @io.string.include? 'running task'
43
- end
44
-
45
- def test_prepending_timestamps
46
- Capistrano::Logger.formatters = [{ :match => /.*/, :level => 0, :timestamp => true }]
47
- @logger.log(0, "test message")
48
- assert @io.string.match /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} test message/
49
- end
50
-
51
- def test_formatter_priorities
52
- Capistrano::Logger.formatters = [
53
- { :match => /.*/, :color => :red, :level => 0, :priority => -10 },
54
- { :match => /.*/, :color => :blue, :level => 0, :priority => -20, :prepend => '###' }
55
- ]
56
-
57
- @logger.log(0, "test message")
58
- # Only the red formatter (color 31) should be applied.
59
- assert @io.string.include? "\e[31mtest message"
60
- # The blue formatter should not have prepended $$$
61
- assert !@io.string.include?('###')
62
- end
63
-
64
- def test_no_formatting_if_no_color_or_style
65
- Capistrano::Logger.formatters = []
66
- @logger.log(0, "test message")
67
- assert @io.string.include? "*** test message"
68
- end
69
-
70
- def test_formatter_log_levels
71
- Capistrano::Logger.formatters = [{ :match => /.*/, :color => :blue, :level => 3 }]
72
- @logger.log(0, "test message")
73
- # Should not match log level
74
- assert @io.string.include? "*** test message"
75
-
76
- clear_logger
77
- @logger.log(3, "test message")
78
- # Should match log level and apply blue color
79
- assert @io.string.include? "\e[34mtest message"
80
- end
81
-
82
- private
83
-
84
- def colorize(message, color, style = nil)
85
- style = "#{style};" if style
86
- "\e[#{style}#{color}m" + message + "\e[0m"
87
- end
88
-
89
- def clear_logger
90
- @io = StringIO.new
91
- @io.stubs(:tty?).returns(true)
92
- @logger.device = @io
93
- end
94
- end
95
-
96
- class DefaultLoggerFormattersTest < Test::Unit::TestCase
97
- def setup
98
- @expected_default_formatter_values = [
99
- # TRACE
100
- { :match => /command finished/, :color => :white, :style => :dim, :level => 3, :priority => -10 },
101
- { :match => /executing locally/, :color => :yellow, :level => 3, :priority => -20 },
102
-
103
- # DEBUG
104
- { :match => /executing `.*/, :color => :green, :level => 2, :priority => -10, :timestamp => true },
105
- { :match => /.*/, :color => :yellow, :level => 2, :priority => -30 },
106
-
107
- # INFO
108
- { :match => /.*out\] (fatal:|ERROR:).*/, :color => :red, :level => 1, :priority => -10 },
109
- { :match => /Permission denied/, :color => :red, :level => 1, :priority => -20 },
110
- { :match => /sh: .+: command not found/, :color => :magenta, :level => 1, :priority => -30 },
111
-
112
- # IMPORTANT
113
- { :match => /^err ::/, :color => :red, :level => 0, :priority => -10 },
114
- { :match => /.*/, :color => :blue, :level => 0, :priority => -20 }
115
- ]
116
-
117
- @custom_default_formatter_values = [
118
- { :match => /.*/, :color => :white }
119
- ]
120
-
121
- end
122
-
123
- def test_default_formatters_api
124
- assert Capistrano::Logger.respond_to? :default_formatters
125
- assert Capistrano::Logger.respond_to? :default_formatters=
126
- end
127
-
128
- def test_default_formatters_values
129
- assert_equal @expected_default_formatter_values, Capistrano::Logger.default_formatters
130
- assert_equal @expected_default_formatter_values, Capistrano::Logger.instance_variable_get("@formatters")
131
- assert_equal nil, Capistrano::Logger.instance_variable_get("@sorted_formatters")
132
- end
133
-
134
- def test_set_default_formatters_values
135
- # when given an array
136
- Capistrano::Logger.default_formatters = @custom_default_formatter_values
137
-
138
- assert_equal @custom_default_formatter_values, Capistrano::Logger.default_formatters
139
- Capistrano::Logger.default_formatters = @custom_default_formatter_values
140
- assert_equal @custom_default_formatter_values, Capistrano::Logger.instance_variable_get("@formatters")
141
- assert_equal nil, Capistrano::Logger.instance_variable_get("@sorted_formatters")
142
-
143
- # when given a single formatter values hash
144
- Capistrano::Logger.default_formatters = @custom_default_formatter_values.first
145
-
146
- assert_equal @custom_default_formatter_values, Capistrano::Logger.default_formatters
147
- end
148
-
149
- end
data/test/logger_test.rb DELETED
@@ -1,134 +0,0 @@
1
- require "utils"
2
- require 'capistrano/logger'
3
- require 'stringio'
4
-
5
- class LoggerTest < Test::Unit::TestCase
6
- def setup
7
- @io = StringIO.new
8
- # Turn off formatting for these tests. Formatting is tested in `logger_formatting_test.rb`.
9
- @logger = Capistrano::Logger.new(:output => @io, :disable_formatters => true)
10
- end
11
-
12
- def test_logger_should_use_STDERR_by_default
13
- logger = Capistrano::Logger.new
14
- assert_equal STDERR, logger.device
15
- end
16
-
17
- def test_logger_should_have_log_level_0
18
- logger = Capistrano::Logger.new
19
- assert_equal 0, logger.level
20
- end
21
-
22
- def test_logger_should_use_level_form_options
23
- logger = Capistrano::Logger.new :level => 4
24
- assert_equal 4, logger.level
25
- end
26
-
27
- def test_logger_should_use_output_option_if_output_responds_to_puts
28
- logger = Capistrano::Logger.new(:output => STDOUT)
29
- assert_equal STDOUT, logger.device
30
- end
31
-
32
- def test_logger_should_open_file_if_output_does_not_respond_to_puts
33
- File.expects(:open).with("logs/capistrano.log", "a").returns(:mock)
34
- logger = Capistrano::Logger.new(:output => "logs/capistrano.log")
35
- assert_equal :mock, logger.device
36
- end
37
-
38
- def test_close_should_not_close_device_if_device_is_default
39
- logger = Capistrano::Logger.new
40
- logger.device.expects(:close).never
41
- logger.close
42
- end
43
-
44
- def test_close_should_not_close_device_is_device_is_explicitly_given
45
- logger = Capistrano::Logger.new(:output => STDOUT)
46
- STDOUT.expects(:close).never
47
- logger.close
48
- end
49
-
50
- def test_close_should_close_device_when_device_was_implicitly_opened
51
- f = mock("file", :close => nil)
52
- File.expects(:open).with("logs/capistrano.log", "a").returns(f)
53
- logger = Capistrano::Logger.new(:output => "logs/capistrano.log")
54
- logger.close
55
- end
56
-
57
- def test_log_with_level_greater_than_threshold_should_ignore_message
58
- @logger.level = 3
59
- @logger.log(4, "message")
60
- assert @io.string.empty?
61
- end
62
-
63
- def test_log_with_level_equal_to_threshold_should_log_message
64
- @logger.level = 3
65
- @logger.log(3, "message")
66
- assert @io.string.include?("message")
67
- end
68
-
69
- def test_log_with_level_less_than_threshold_should_log_message
70
- @logger.level = 3
71
- @logger.log(2, "message")
72
- assert @io.string.include?("message")
73
- end
74
-
75
- def test_log_with_multiline_message_should_log_each_line_separately
76
- @logger.log(0, "first line\nsecond line")
77
- assert @io.string.include?("*** first line")
78
- assert @io.string.include?("*** second line")
79
- end
80
-
81
- def test_log_with_line_prefix_should_insert_line_prefix_before_message
82
- @logger.log(0, "message", "prefix")
83
- assert @io.string.include?("*** [prefix] message")
84
- end
85
-
86
- def test_log_with_level_0_should_have_strong_indent
87
- @logger.log(0, "message")
88
- assert @io.string.match(/^\*\*\* message/)
89
- end
90
-
91
- def test_log_with_level_1_should_have_weaker_indent
92
- @logger.level = 1
93
- @logger.log(1, "message")
94
- assert @io.string.match(/^ \*\* message/)
95
- end
96
-
97
- def test_log_with_level_2_should_have_weaker_indent
98
- @logger.level = 2
99
- @logger.log(2, "message")
100
- assert @io.string.match(/^ \* message/)
101
- end
102
-
103
- def test_log_with_level_3_should_have_weakest_indent
104
- @logger.level = 3
105
- @logger.log(3, "message")
106
- assert @io.string.match(/^ message/)
107
- end
108
-
109
- def test_important_should_delegate_to_log_with_level_IMPORTANT
110
- @logger.expects(:log).with(Capistrano::Logger::IMPORTANT, "message", "prefix")
111
- @logger.important("message", "prefix")
112
- end
113
-
114
- def test_info_should_delegate_to_log_with_level_INFO
115
- @logger.expects(:log).with(Capistrano::Logger::INFO, "message", "prefix")
116
- @logger.info("message", "prefix")
117
- end
118
-
119
- def test_debug_should_delegate_to_log_with_level_DEBUG
120
- @logger.expects(:log).with(Capistrano::Logger::DEBUG, "message", "prefix")
121
- @logger.debug("message", "prefix")
122
- end
123
-
124
- def test_trace_should_delegate_to_log_with_level_TRACE
125
- @logger.expects(:log).with(Capistrano::Logger::TRACE, "message", "prefix")
126
- @logger.trace("message", "prefix")
127
- end
128
-
129
- def test_ordering_of_levels
130
- assert Capistrano::Logger::IMPORTANT < Capistrano::Logger::INFO
131
- assert Capistrano::Logger::INFO < Capistrano::Logger::DEBUG
132
- assert Capistrano::Logger::DEBUG < Capistrano::Logger::TRACE
133
- end
134
- end
data/test/recipes_test.rb DELETED
@@ -1,25 +0,0 @@
1
- require 'utils'
2
- require 'capistrano/configuration'
3
-
4
- class RecipesTest < Test::Unit::TestCase
5
-
6
- def setup
7
- @config = Capistrano::Configuration.new
8
- @config.stubs(:logger).returns(stub_everything)
9
- end
10
-
11
- def test_current_releases_does_not_cause_error_on_dry_run
12
- @config.dry_run = true
13
- @config.load 'deploy'
14
- @config.load do
15
- set :application, "foo"
16
- task :dry_run_test do
17
- fetch :current_release
18
- end
19
- end
20
-
21
- assert_nothing_raised do
22
- @config.dry_run_test
23
- end
24
- end
25
- end
data/test/role_test.rb DELETED
@@ -1,11 +0,0 @@
1
- require "utils"
2
- require 'capistrano/role'
3
-
4
- class RoleTest < Test::Unit::TestCase
5
- def test_clearing_a_populated_role_should_yield_no_servers
6
- role = Capistrano::Role.new("app1.capistrano.test", lambda { |o| "app2.capistrano.test" })
7
- assert_equal 2, role.servers.size
8
- role.clear
9
- assert role.servers.empty?
10
- end
11
- end
@@ -1,121 +0,0 @@
1
- require "utils"
2
- require 'capistrano/server_definition'
3
-
4
- class ServerDefinitionTest < Test::Unit::TestCase
5
- def test_new_without_credentials_or_port_should_set_values_to_defaults
6
- server = Capistrano::ServerDefinition.new("www.capistrano.test")
7
- assert_equal "www.capistrano.test", server.host
8
- assert_nil server.user
9
- assert_nil server.port
10
- end
11
-
12
- def test_new_with_encoded_user_should_extract_user_and_use_default_port
13
- server = Capistrano::ServerDefinition.new("jamis@www.capistrano.test")
14
- assert_equal "www.capistrano.test", server.host
15
- assert_equal "jamis", server.user
16
- assert_nil server.port
17
- end
18
-
19
- def test_new_with_encoded_port_should_extract_port_and_use_default_user
20
- server = Capistrano::ServerDefinition.new("www.capistrano.test:8080")
21
- assert_equal "www.capistrano.test", server.host
22
- assert_nil server.user
23
- assert_equal 8080, server.port
24
- end
25
-
26
- def test_new_with_encoded_user_and_port_should_extract_user_and_port
27
- server = Capistrano::ServerDefinition.new("jamis@www.capistrano.test:8080")
28
- assert_equal "www.capistrano.test", server.host
29
- assert_equal "jamis", server.user
30
- assert_equal 8080, server.port
31
- end
32
-
33
- def test_new_with_user_as_option_should_use_given_user
34
- server = Capistrano::ServerDefinition.new("www.capistrano.test", :user => "jamis")
35
- assert_equal "www.capistrano.test", server.host
36
- assert_equal "jamis", server.user
37
- assert_nil server.port
38
- end
39
-
40
- def test_new_with_port_as_option_should_use_given_user
41
- server = Capistrano::ServerDefinition.new("www.capistrano.test", :port => 8080)
42
- assert_equal "www.capistrano.test", server.host
43
- assert_nil server.user
44
- assert_equal 8080, server.port
45
- end
46
-
47
- def test_encoded_value_should_override_hash_option
48
- server = Capistrano::ServerDefinition.new("jamis@www.capistrano.test:8080", :user => "david", :port => 8081)
49
- assert_equal "www.capistrano.test", server.host
50
- assert_equal "jamis", server.user
51
- assert_equal 8080, server.port
52
- assert server.options.empty?
53
- end
54
-
55
- def test_new_with_option_should_dup_option_hash
56
- options = {}
57
- server = Capistrano::ServerDefinition.new("www.capistrano.test", options)
58
- assert_not_equal options.object_id, server.options.object_id
59
- end
60
-
61
- def test_new_with_options_should_keep_options
62
- server = Capistrano::ServerDefinition.new("www.capistrano.test", :primary => true)
63
- assert_equal true, server.options[:primary]
64
- end
65
-
66
- def test_default_user_should_try_to_guess_username
67
- ENV.stubs(:[]).returns(nil)
68
- assert_equal "not-specified", Capistrano::ServerDefinition.default_user
69
-
70
- ENV.stubs(:[]).returns(nil)
71
- ENV.stubs(:[]).with("USERNAME").returns("ryan")
72
- assert_equal "ryan", Capistrano::ServerDefinition.default_user
73
-
74
- ENV.stubs(:[]).returns(nil)
75
- ENV.stubs(:[]).with("USER").returns("jamis")
76
- assert_equal "jamis", Capistrano::ServerDefinition.default_user
77
- end
78
-
79
- def test_comparison_should_match_when_host_user_port_are_same
80
- s1 = server("jamis@www.capistrano.test:8080")
81
- s2 = server("www.capistrano.test", :user => "jamis", :port => 8080)
82
- assert_equal s1, s2
83
- assert_equal s1.hash, s2.hash
84
- assert s1.eql?(s2)
85
- end
86
-
87
- def test_servers_should_be_comparable
88
- s1 = server("jamis@www.capistrano.test:8080")
89
- s2 = server("www.alphabet.test:1234")
90
- s3 = server("jamis@www.capistrano.test:8075")
91
- s4 = server("billy@www.capistrano.test:8080")
92
-
93
- assert s2 < s1
94
- assert s3 < s1
95
- assert s4 < s1
96
- assert s2 < s3
97
- assert s2 < s4
98
- assert s3 < s4
99
- end
100
-
101
- def test_comparison_should_not_match_when_any_of_host_user_port_differ
102
- s1 = server("jamis@www.capistrano.test:8080")
103
- s2 = server("bob@www.capistrano.test:8080")
104
- s3 = server("jamis@www.capistrano.test:8081")
105
- s4 = server("jamis@app.capistrano.test:8080")
106
- assert_not_equal s1, s2
107
- assert_not_equal s1, s3
108
- assert_not_equal s1, s4
109
- assert_not_equal s2, s3
110
- assert_not_equal s2, s4
111
- assert_not_equal s3, s4
112
- end
113
-
114
- def test_to_s
115
- assert_equal "www.capistrano.test", server("www.capistrano.test").to_s
116
- assert_equal "www.capistrano.test", server("www.capistrano.test:22").to_s
117
- assert_equal "www.capistrano.test:1234", server("www.capistrano.test:1234").to_s
118
- assert_equal "jamis@www.capistrano.test", server("jamis@www.capistrano.test").to_s
119
- assert_equal "jamis@www.capistrano.test:1234", server("jamis@www.capistrano.test:1234").to_s
120
- end
121
- end
data/test/shell_test.rb DELETED
@@ -1,96 +0,0 @@
1
- require "utils"
2
- require 'capistrano/configuration'
3
- require 'capistrano/shell'
4
-
5
- class ShellTest < Test::Unit::TestCase
6
- def setup
7
- @config = Capistrano::Configuration.new
8
- @shell = Capistrano::Shell.new(@config)
9
- @shell.stubs(:puts)
10
- end
11
-
12
- def test_readline_fallback_prompt_should_write_to_stdout_and_read_from_stdin
13
- STDOUT.expects(:print).with("prompt> ")
14
- STDOUT.expects(:flush)
15
- STDIN.expects(:gets).returns("hi\n")
16
- assert_equal "hi\n", Capistrano::Shell::ReadlineFallback.readline("prompt> ")
17
- end
18
-
19
- def test_question_mark_as_input_should_trigger_help
20
- @shell.expects(:read_line).returns("?")
21
- @shell.expects(:help)
22
- assert @shell.read_and_execute
23
- end
24
-
25
- def test_help_as_input_should_trigger_help
26
- @shell.expects(:read_line).returns("help")
27
- @shell.expects(:help)
28
- assert @shell.read_and_execute
29
- end
30
-
31
- def test_quit_as_input_should_cause_read_and_execute_to_return_false
32
- @shell.expects(:read_line).returns("quit")
33
- assert !@shell.read_and_execute
34
- end
35
-
36
- def test_exit_as_input_should_cause_read_and_execute_to_return_false
37
- @shell.expects(:read_line).returns("exit")
38
- assert !@shell.read_and_execute
39
- end
40
-
41
- def test_set_should_parse_flag_and_value_and_call_set_option
42
- @shell.expects(:read_line).returns("set -v 5")
43
- @shell.expects(:set_option).with("v", "5")
44
- assert @shell.read_and_execute
45
- end
46
-
47
- def test_set_with_colon_changes_setting
48
- @shell.expects(:read_line).returns("set :random_setting value")
49
- @shell.configuration.expects(:set).with(:random_setting, "value")
50
- assert @shell.read_and_execute
51
- end
52
-
53
- def test_text_without_with_or_on_gets_processed_verbatim
54
- @shell.expects(:read_line).returns("hello world")
55
- @shell.expects(:process_command).with(nil, nil, "hello world")
56
- assert @shell.read_and_execute
57
- end
58
-
59
- def test_text_with_with_gets_processed_with_with # lol
60
- @shell.expects(:read_line).returns("with app,db hello world")
61
- @shell.expects(:process_command).with("with", "app,db", "hello world")
62
- assert @shell.read_and_execute
63
- end
64
-
65
- def test_text_with_on_gets_processed_with_on
66
- @shell.expects(:read_line).returns("on app,db hello world")
67
- @shell.expects(:process_command).with("on", "app,db", "hello world")
68
- assert @shell.read_and_execute
69
- end
70
-
71
- def test_task_command_with_bang_gets_processed_by_exec_tasks
72
- while_testing_post_exec_commands do
73
- @shell.expects(:read_line).returns("!deploy")
74
- @shell.expects(:exec_tasks).with(["deploy"])
75
- assert @shell.read_and_execute
76
- end
77
- end
78
-
79
- def test_normal_command_gets_processed_by_exec_command
80
- while_testing_post_exec_commands do
81
- @shell.expects(:read_line).returns("uptime")
82
- @shell.expects(:exec_command).with("uptime",nil)
83
- @shell.expects(:connect)
84
- assert @shell.read_and_execute
85
- end
86
- end
87
-
88
-
89
- private
90
-
91
- def while_testing_post_exec_commands(&block)
92
- @shell.instance_variable_set(:@mutex,Mutex.new)
93
- yield
94
- end
95
-
96
- end