mocha 0.12.0 → 0.12.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,10 @@
1
+ = 0.12.1
2
+ * Deprecation warning (instead of fail fast) if neither Test::Unit nor MiniTest is loaded. Fixes #88.
3
+ * Remove deprecated access to `Mocha::Standalone`.
4
+ * Remove the deprecated file `stubba.rb`.
5
+ * Officially support test-unit v2.5.1 (still monkey-patching).
6
+ * Improve the API acceptance test.
7
+
1
8
  = 0.12.0
2
9
  * Fail fast if neither Test::Unit nor MiniTest is loaded. Fixes #40.
3
10
  * Officially support MiniTest up to v3.2.0 (still monkey-patching).
data/Rakefile CHANGED
@@ -114,8 +114,8 @@ end
114
114
  desc "Generate documentation"
115
115
  task 'generate_docs' => ['clobber_yardoc', 'yardoc']
116
116
 
117
- desc "Publish docs to Github (relies on running 'generate_docs' task and committing changes to master branch)"
118
- task 'publish_docs' do
117
+ desc "Publish docs to gofreerange.com/docs/mocha"
118
+ task 'publish_docs' => 'generate_docs' do
119
119
  path = "/home/freerange/docs/mocha"
120
120
  system %{ssh gofreerange.com "sudo rm -fr #{path} && mkdir -p #{path}" && scp -r doc/* gofreerange.com:#{path}}
121
121
  end
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def execute(*commands)
4
+ commands.each do |command|
5
+ system(command)
6
+ unless $?.success?
7
+ message = [
8
+ "Executing shell command failed.",
9
+ " Command: #{command}",
10
+ " Status: #{$?.exitstatus}"
11
+ ].join("\n")
12
+ raise message
13
+ end
14
+ end
15
+ end
16
+
17
+ def reset_bundle
18
+ execute(
19
+ "rm -rf .bundle/gems",
20
+ "rm -rf gemfiles/.bundle/gems",
21
+ "rm -f *.lock",
22
+ "rm -f gemfiles/*.lock"
23
+ )
24
+ end
25
+
26
+ def with_rbenv(command)
27
+ %{export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; #{command}}
28
+ end
29
+
30
+ def run(gemfile)
31
+ ENV["BUNDLE_GEMFILE"] = gemfile
32
+ ENV["MOCHA_OPTIONS"] = "debug"
33
+ reset_bundle
34
+ execute(
35
+ with_rbenv("bundle install --gemfile=#{gemfile}"),
36
+ with_rbenv("bundle exec rake test")
37
+ )
38
+ end
39
+
40
+ EXCLUDED_RUBY_193_GEMFILES = [
41
+ "gemfiles/Gemfile.minitest.1.3.0",
42
+ "gemfiles/Gemfile.minitest.1.4.0",
43
+ "gemfiles/Gemfile.minitest.1.4.1",
44
+ "gemfiles/Gemfile.minitest.1.4.2"
45
+ ]
46
+
47
+ ["1.8.7-p352", "1.9.3-p125-perf"].each do |ruby_version|
48
+ execute("rbenv local #{ruby_version}")
49
+ ["test-unit", "minitest"].each do |test_library|
50
+ reset_bundle
51
+ Dir["gemfiles/Gemfile.#{test_library}.*"].each do |gemfile|
52
+ ruby_version_without_patch = ruby_version.split("-")[0]
53
+ next if (ruby_version_without_patch == "1.9.3") && EXCLUDED_RUBY_193_GEMFILES.include?(gemfile)
54
+ p [ruby_version_without_patch, test_library, gemfile]
55
+ run(gemfile)
56
+ end
57
+ end
58
+ execute("rbenv local --unset")
59
+ end
@@ -4,5 +4,4 @@ gemspec :path=>"../"
4
4
 
5
5
  group :development do
6
6
  gem "test-unit", "2.0.0"
7
- gem "hoe", "2.8.0" # later versions of hoe depend on Rubygems >= 1.4 which in turn depends on Ruby >= 1.8.7
8
7
  end
@@ -176,12 +176,4 @@ module Mocha
176
176
 
177
177
  end
178
178
 
179
- # @private
180
- def self.const_missing(name)
181
- return super unless name == :Standalone
182
- require 'mocha/deprecation'
183
- Deprecation.warning "Mocha::Standalone has been renamed to Mocha::API"
184
- return API
185
- end
186
-
187
179
  end
@@ -1,4 +1,5 @@
1
1
  require 'mocha/options'
2
+ require 'mocha/deprecation'
2
3
 
3
4
  module Mocha
4
5
 
@@ -35,8 +36,9 @@ module Mocha
35
36
 
36
37
  end
37
38
 
38
- unless Mocha::Integration.monkey_patches.any? || $mocha_options["skip_integration"]
39
- raise "Test::Unit or MiniTest must be loaded *before* Mocha (use MOCHA_OPTIONS=skip_integration if you know what you are doing)."
39
+ unless Mocha::Integration.monkey_patches.any?
40
+ Mocha::Deprecation.warning("Test::Unit or MiniTest must be loaded *before* Mocha.")
41
+ Mocha::Deprecation.warning("If you're integrating with another test library, you should probably require 'mocha_standalone' instead of 'mocha'")
40
42
  end
41
43
 
42
44
  Mocha::Integration.monkey_patches.each do |patch|
@@ -6,7 +6,7 @@ if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
6
6
  require 'mocha/integration/test_unit/gem_version_200'
7
7
  require 'mocha/integration/test_unit/gem_version_201_to_202'
8
8
  require 'mocha/integration/test_unit/gem_version_203_to_220'
9
- require 'mocha/integration/test_unit/gem_version_230_to_250'
9
+ require 'mocha/integration/test_unit/gem_version_230_to_251'
10
10
  require 'mocha/integration/test_unit/ruby_version_185_and_below'
11
11
  require 'mocha/integration/test_unit/ruby_version_186_and_above'
12
12
 
@@ -43,8 +43,8 @@ if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
43
43
  include Mocha::Integration::TestUnit::GemVersion201To202
44
44
  elsif Gem::Requirement.new('>= 2.0.3', '<= 2.2.0').satisfied_by?(test_unit_version)
45
45
  include Mocha::Integration::TestUnit::GemVersion203To220
46
- elsif Gem::Requirement.new('>= 2.3.0', '<= 2.5.0').satisfied_by?(test_unit_version)
47
- include Mocha::Integration::TestUnit::GemVersion230To250
46
+ elsif Gem::Requirement.new('>= 2.3.0', '<= 2.5.1').satisfied_by?(test_unit_version)
47
+ include Mocha::Integration::TestUnit::GemVersion230To251
48
48
  else
49
49
  $stderr.puts "*** No Mocha integration for Test::Unit version ***" if $mocha_options['debug']
50
50
  end
@@ -8,9 +8,9 @@ module Mocha
8
8
 
9
9
  module TestUnit
10
10
 
11
- module GemVersion230To250
11
+ module GemVersion230To251
12
12
  def self.included(mod)
13
- $stderr.puts "Monkey patching Test::Unit gem >= v2.3.0 and <= v2.5.0" if $mocha_options['debug']
13
+ $stderr.puts "Monkey patching Test::Unit gem >= v2.3.0 and <= v2.5.1" if $mocha_options['debug']
14
14
  end
15
15
  def run(result)
16
16
  assertion_counter = AssertionCounter.new(result)
@@ -1,3 +1,3 @@
1
1
  module Mocha
2
- VERSION = "0.12.0"
2
+ VERSION = "0.12.1"
3
3
  end
@@ -44,40 +44,40 @@ end
44
44
 
45
45
  class SampleTest < NotATestUnitTestCase
46
46
 
47
- def mocha_with_fulfilled_expectation
47
+ def mock_object_with_fulfilled_expectation
48
48
  mockee = mock()
49
49
  mockee.expects(:blah)
50
50
  mockee.blah
51
51
  end
52
52
 
53
- def mocha_with_unfulfilled_expectation
53
+ def mock_object_with_unfulfilled_expectation
54
54
  mockee = mock()
55
55
  mockee.expects(:blah)
56
56
  end
57
57
 
58
- def mocha_with_unexpected_invocation
58
+ def mock_object_with_unexpected_invocation
59
59
  mockee = mock()
60
60
  mockee.blah
61
61
  end
62
62
 
63
- def stubba_with_fulfilled_expectation
63
+ def real_object_with_fulfilled_expectation
64
64
  stubbee = Class.new { define_method(:blah) {} }.new
65
65
  stubbee.expects(:blah)
66
66
  stubbee.blah
67
67
  end
68
68
 
69
- def stubba_with_unfulfilled_expectation
69
+ def real_object_with_unfulfilled_expectation
70
70
  stubbee = Class.new { define_method(:blah) {} }.new
71
71
  stubbee.expects(:blah)
72
72
  end
73
73
 
74
- def mocha_with_matching_parameter
74
+ def mock_object_with_matching_parameter
75
75
  mockee = mock()
76
76
  mockee.expects(:blah).with(has_key(:wibble))
77
77
  mockee.blah(:wibble => 1)
78
78
  end
79
79
 
80
- def mocha_with_non_matching_parameter
80
+ def mock_object_with_non_matching_parameter
81
81
  mockee = mock()
82
82
  mockee.expects(:blah).with(has_key(:wibble))
83
83
  mockee.blah(:wobble => 2)
@@ -102,38 +102,38 @@ class APITest < Test::Unit::TestCase
102
102
  teardown_acceptance_test
103
103
  end
104
104
 
105
- def test_should_pass_mocha_test
106
- assert_nothing_raised { sample_test.run(:mocha_with_fulfilled_expectation) }
105
+ def test_should_pass_mock_object_test
106
+ assert_nothing_raised { sample_test.run(:mock_object_with_fulfilled_expectation) }
107
107
  assert_equal 1, sample_test.assertion_counter.count
108
108
  end
109
109
 
110
- def test_should_fail_mocha_test_due_to_unfulfilled_exception
111
- assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:mocha_with_unfulfilled_expectation) }
110
+ def test_should_fail_mock_object_test_due_to_unfulfilled_exception
111
+ assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:mock_object_with_unfulfilled_expectation) }
112
112
  assert_equal 1, sample_test.assertion_counter.count
113
113
  end
114
114
 
115
- def test_should_fail_mocha_test_due_to_unexpected_invocation
116
- assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:mocha_with_unexpected_invocation) }
115
+ def test_should_fail_mock_object_test_due_to_unexpected_invocation
116
+ assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:mock_object_with_unexpected_invocation) }
117
117
  assert_equal 0, sample_test.assertion_counter.count
118
118
  end
119
119
 
120
- def test_should_pass_stubba_test
121
- assert_nothing_raised { sample_test.run(:stubba_with_fulfilled_expectation) }
120
+ def test_should_pass_real_object_test
121
+ assert_nothing_raised { sample_test.run(:real_object_with_fulfilled_expectation) }
122
122
  assert_equal 1, sample_test.assertion_counter.count
123
123
  end
124
124
 
125
- def test_should_fail_stubba_test
126
- assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:stubba_with_unfulfilled_expectation) }
125
+ def test_should_fail_real_object_test
126
+ assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:real_object_with_unfulfilled_expectation) }
127
127
  assert_equal 1, sample_test.assertion_counter.count
128
128
  end
129
129
 
130
- def test_should_pass_mocha_test_with_matching_parameter
131
- assert_nothing_raised { sample_test.run(:mocha_with_matching_parameter) }
130
+ def test_should_pass_mock_object_test_with_matching_parameter
131
+ assert_nothing_raised { sample_test.run(:mock_object_with_matching_parameter) }
132
132
  assert_equal 1, sample_test.assertion_counter.count
133
133
  end
134
134
 
135
- def test_should_fail_mocha_test_with_non_matching_parameter
136
- assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:mocha_with_non_matching_parameter) }
135
+ def test_should_fail_mock_object_test_with_non_matching_parameter
136
+ assert_raises(NotATestUnitAssertionFailedError) { sample_test.run(:mock_object_with_non_matching_parameter) }
137
137
  end
138
138
 
139
139
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mocha
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-04 00:00:00.000000000 Z
12
+ date: 2012-07-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: metaclass
16
- requirement: &70238404164500 !ruby/object:Gem::Requirement
16
+ requirement: &70237796907960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70238404164500
24
+ version_requirements: *70237796907960
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70238404163180 !ruby/object:Gem::Requirement
27
+ requirement: &70237796906640 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70238404163180
35
+ version_requirements: *70237796906640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: introspection
38
- requirement: &70238404162720 !ruby/object:Gem::Requirement
38
+ requirement: &70237796906180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.0.1
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70238404162720
46
+ version_requirements: *70237796906180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &70238404162340 !ruby/object:Gem::Requirement
49
+ requirement: &70237796905800 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70238404162340
57
+ version_requirements: *70237796905800
58
58
  description: Mocking and stubbing library with JMock/SchMock syntax, which allows
59
59
  mocking and stubbing of methods on real (non-mock) classes.
60
60
  email: mocha-developer@googlegroups.com
@@ -71,6 +71,7 @@ files:
71
71
  - README.rdoc
72
72
  - RELEASE.rdoc
73
73
  - Rakefile
74
+ - build-matrix.rb
74
75
  - examples/misc.rb
75
76
  - examples/mocha.rb
76
77
  - examples/stubba.rb
@@ -125,7 +126,7 @@ files:
125
126
  - lib/mocha/integration/test_unit/gem_version_200.rb
126
127
  - lib/mocha/integration/test_unit/gem_version_201_to_202.rb
127
128
  - lib/mocha/integration/test_unit/gem_version_203_to_220.rb
128
- - lib/mocha/integration/test_unit/gem_version_230_to_250.rb
129
+ - lib/mocha/integration/test_unit/gem_version_230_to_251.rb
129
130
  - lib/mocha/integration/test_unit/ruby_version_185_and_below.rb
130
131
  - lib/mocha/integration/test_unit/ruby_version_186_and_above.rb
131
132
  - lib/mocha/is_a.rb
@@ -175,7 +176,6 @@ files:
175
176
  - lib/mocha/version.rb
176
177
  - lib/mocha/yield_parameters.rb
177
178
  - lib/mocha_standalone.rb
178
- - lib/stubba.rb
179
179
  - mocha.gemspec
180
180
  - test/acceptance/acceptance_test_helper.rb
181
181
  - test/acceptance/api_test.rb
@@ -219,7 +219,6 @@ files:
219
219
  - test/acceptance/stub_module_method_test.rb
220
220
  - test/acceptance/stub_test.rb
221
221
  - test/acceptance/stubba_example_test.rb
222
- - test/acceptance/stubba_test.rb
223
222
  - test/acceptance/stubba_test_result_test.rb
224
223
  - test/acceptance/stubbing_error_backtrace_test.rb
225
224
  - test/acceptance/stubbing_frozen_object_test.rb
@@ -310,7 +309,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
310
309
  version: '0'
311
310
  segments:
312
311
  - 0
313
- hash: -586468752341133139
312
+ hash: 512632440970329998
314
313
  required_rubygems_version: !ruby/object:Gem::Requirement
315
314
  none: false
316
315
  requirements:
@@ -1,4 +0,0 @@
1
- # for backwards compatibility
2
- require 'mocha'
3
- require 'mocha/deprecation'
4
- Mocha::Deprecation.warning "require 'stubba' is no longer needed and stubba.rb will soon be removed"
@@ -1,15 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
- require 'deprecation_disabler'
3
-
4
- class StubbaTest < Test::Unit::TestCase
5
-
6
- include DeprecationDisabler
7
-
8
- def test_should_report_deprecation_of_stubba_which_will_be_removed_in_a_future_release
9
- disable_deprecations do
10
- load 'stubba.rb'
11
- end
12
- assert Mocha::Deprecation.messages.include?("require 'stubba' is no longer needed and stubba.rb will soon be removed")
13
- end
14
-
15
- end