mocha 1.12.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -13
- data/.yardopts +0 -1
- data/CONTRIBUTING.md +1 -1
- data/COPYING.md +2 -2
- data/Gemfile +27 -0
- data/MIT-LICENSE.md +1 -1
- data/README.md +12 -8
- data/RELEASE.md +169 -0
- data/Rakefile +22 -29
- data/gemfiles/Gemfile.minitest.latest +1 -0
- data/gemfiles/Gemfile.test-unit.latest +2 -5
- data/lib/mocha/any_instance_method.rb +0 -5
- data/lib/mocha/api.rb +29 -78
- data/lib/mocha/backtrace_filter.rb +2 -2
- data/lib/mocha/class_methods.rb +2 -2
- data/lib/mocha/configuration.rb +36 -114
- data/lib/mocha/debug.rb +2 -5
- data/lib/mocha/expectation.rb +63 -8
- data/lib/mocha/inspect.rb +6 -4
- data/lib/mocha/instance_method.rb +0 -4
- data/lib/mocha/integration/mini_test/adapter.rb +1 -1
- data/lib/mocha/integration/mini_test.rb +10 -38
- data/lib/mocha/integration/test_unit/adapter.rb +4 -4
- data/lib/mocha/integration/test_unit.rb +10 -33
- data/lib/mocha/invocation.rb +12 -16
- data/lib/mocha/minitest.rb +2 -4
- data/lib/mocha/mock.rb +32 -32
- data/lib/mocha/mockery.rb +1 -3
- data/lib/mocha/names.rb +1 -1
- data/lib/mocha/parameter_matchers/base.rb +1 -1
- data/lib/mocha/parameter_matchers/equivalent_uri.rb +1 -2
- data/lib/mocha/parameter_matchers/has_entry.rb +22 -13
- data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
- data/lib/mocha/parameter_matchers/instance_methods.rb +10 -1
- data/lib/mocha/parameter_matchers/positional_or_keyword_hash.rb +64 -0
- data/lib/mocha/parameter_matchers.rb +1 -0
- data/lib/mocha/parameters_matcher.rb +3 -3
- data/lib/mocha/ruby_version.rb +1 -2
- data/lib/mocha/stubbed_method.rb +5 -42
- data/lib/mocha/test_unit.rb +2 -4
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha.rb +0 -8
- data/mocha.gemspec +4 -29
- metadata +10 -87
- data/bin/build-matrix +0 -82
- data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
- data/gemfiles/Gemfile.minitest.5.11.3 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
- data/init.rb +0 -1
- data/lib/mocha/integration/mini_test/nothing.rb +0 -19
- data/lib/mocha/integration/mini_test/version_13.rb +0 -54
- data/lib/mocha/integration/mini_test/version_140.rb +0 -54
- data/lib/mocha/integration/mini_test/version_141.rb +0 -65
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +0 -65
- data/lib/mocha/integration/mini_test/version_200.rb +0 -66
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +0 -66
- data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +0 -70
- data/lib/mocha/integration/mini_test/version_2112_to_320.rb +0 -73
- data/lib/mocha/integration/mini_test/version_230_to_2101.rb +0 -68
- data/lib/mocha/integration/test_unit/gem_version_200.rb +0 -62
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +0 -62
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +0 -62
- data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +0 -68
- data/lib/mocha/integration/test_unit/nothing.rb +0 -19
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +0 -61
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +0 -63
- data/lib/mocha/integration.rb +0 -11
- data/lib/mocha/setup.rb +0 -14
- data/lib/mocha/singleton_class.rb +0 -9
- data/yard-templates/default/layout/html/google_analytics.erb +0 -8
- data/yard-templates/default/layout/html/setup.rb +0 -5
data/lib/mocha/stubbed_method.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
+
require 'ruby2_keywords'
|
1
2
|
require 'mocha/ruby_version'
|
2
|
-
require 'mocha/singleton_class'
|
3
3
|
|
4
4
|
module Mocha
|
5
5
|
class StubbedMethod
|
@@ -11,7 +11,7 @@ module Mocha
|
|
11
11
|
@stubbee = stubbee
|
12
12
|
@original_method = nil
|
13
13
|
@original_visibility = nil
|
14
|
-
@method_name =
|
14
|
+
@method_name = method_name.to_sym
|
15
15
|
end
|
16
16
|
|
17
17
|
def stub
|
@@ -21,7 +21,6 @@ module Mocha
|
|
21
21
|
|
22
22
|
def unstub
|
23
23
|
remove_new_method
|
24
|
-
restore_original_method
|
25
24
|
mock.unstub(method_name.to_sym)
|
26
25
|
return if mock.any_expectations?
|
27
26
|
reset_mocha
|
@@ -38,28 +37,16 @@ module Mocha
|
|
38
37
|
def hide_original_method
|
39
38
|
return unless original_method_owner.__method_exists__?(method_name)
|
40
39
|
store_original_method_visibility
|
41
|
-
|
42
|
-
use_prepended_module_for_stub_method
|
43
|
-
else
|
44
|
-
begin
|
45
|
-
store_original_method
|
46
|
-
# rubocop:disable Lint/HandleExceptions
|
47
|
-
rescue NameError
|
48
|
-
# deal with nasties like ActiveRecord::Associations::AssociationProxy
|
49
|
-
end
|
50
|
-
# rubocop:enable Lint/HandleExceptions
|
51
|
-
if stub_method_overwrites_original_method?
|
52
|
-
remove_original_method_from_stubbee
|
53
|
-
end
|
54
|
-
end
|
40
|
+
use_prepended_module_for_stub_method
|
55
41
|
end
|
56
42
|
|
57
43
|
def define_new_method
|
58
44
|
self_in_scope = self
|
59
45
|
method_name_in_scope = method_name
|
60
46
|
stub_method_owner.send(:define_method, method_name) do |*args, &block|
|
61
|
-
self_in_scope.mock.
|
47
|
+
self_in_scope.mock.handle_method_call(method_name_in_scope, args, block)
|
62
48
|
end
|
49
|
+
stub_method_owner.send(:ruby2_keywords, method_name)
|
63
50
|
retain_original_visibility(stub_method_owner)
|
64
51
|
end
|
65
52
|
|
@@ -67,18 +54,6 @@ module Mocha
|
|
67
54
|
stub_method_owner.send(:remove_method, method_name)
|
68
55
|
end
|
69
56
|
|
70
|
-
def store_original_method
|
71
|
-
@original_method = stubbee_method(method_name)
|
72
|
-
end
|
73
|
-
|
74
|
-
def restore_original_method
|
75
|
-
return if use_prepended_module_for_stub_method?
|
76
|
-
if stub_method_overwrites_original_method?
|
77
|
-
original_method_owner.send(:define_method, method_name, method_body(@original_method))
|
78
|
-
end
|
79
|
-
retain_original_visibility(original_method_owner)
|
80
|
-
end
|
81
|
-
|
82
57
|
def matches?(other)
|
83
58
|
return false unless other.class == self.class
|
84
59
|
(stubbee.object_id == other.stubbee.object_id) && (method_name == other.method_name)
|
@@ -101,18 +76,6 @@ module Mocha
|
|
101
76
|
@original_visibility = original_method_owner.__method_visibility__(method_name)
|
102
77
|
end
|
103
78
|
|
104
|
-
def stub_method_overwrites_original_method?
|
105
|
-
@original_method && @original_method.owner == original_method_owner
|
106
|
-
end
|
107
|
-
|
108
|
-
def remove_original_method_from_stubbee
|
109
|
-
original_method_owner.send(:remove_method, method_name)
|
110
|
-
end
|
111
|
-
|
112
|
-
def use_prepended_module_for_stub_method?
|
113
|
-
RUBY_V2_PLUS
|
114
|
-
end
|
115
|
-
|
116
79
|
def use_prepended_module_for_stub_method
|
117
80
|
@stub_method_owner = PrependedModule.new
|
118
81
|
original_method_owner.__send__ :prepend, @stub_method_owner
|
data/lib/mocha/test_unit.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
+
require 'mocha/ruby_version'
|
1
2
|
require 'mocha/integration/test_unit'
|
2
|
-
require 'mocha/deprecation'
|
3
3
|
|
4
4
|
unless Mocha::Integration::TestUnit.activate
|
5
|
-
|
6
|
-
"Test::Unit must be loaded *before* `require 'mocha/test_unit'`."
|
7
|
-
)
|
5
|
+
raise "Test::Unit must be loaded *before* `require 'mocha/test_unit'`."
|
8
6
|
end
|
data/lib/mocha/version.rb
CHANGED
data/lib/mocha.rb
CHANGED
data/mocha.gemspec
CHANGED
@@ -2,11 +2,11 @@ lib = File.expand_path('../lib/', __FILE__)
|
|
2
2
|
$LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
|
3
3
|
require 'mocha/version'
|
4
4
|
|
5
|
-
Gem::Specification.new do |s|
|
5
|
+
Gem::Specification.new do |s|
|
6
6
|
s.name = 'mocha'
|
7
7
|
s.version = Mocha::VERSION
|
8
8
|
s.licenses = ['MIT', 'BSD-2-Clause']
|
9
|
-
s.required_ruby_version = '>=
|
9
|
+
s.required_ruby_version = '>= 2.0'
|
10
10
|
|
11
11
|
s.authors = ['James Mead']
|
12
12
|
s.description = 'Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.'
|
@@ -15,37 +15,12 @@ Gem::Specification.new do |s| # rubocop:disable Metrics/BlockLength
|
|
15
15
|
s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
16
16
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(docs|test)/}) }
|
17
17
|
end
|
18
|
-
s.files.delete('.
|
18
|
+
s.files.delete('.circleci/config.yml')
|
19
19
|
s.files.delete('.gitignore')
|
20
20
|
|
21
21
|
s.homepage = 'https://mocha.jamesmead.org'
|
22
22
|
s.require_paths = ['lib']
|
23
23
|
s.summary = 'Mocking and stubbing library'
|
24
24
|
|
25
|
-
|
26
|
-
class << s
|
27
|
-
def add_development_dependency(*args)
|
28
|
-
add_dependency(*args)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
if RUBY_VERSION >= '1.9.3'
|
34
|
-
s.add_development_dependency('rake')
|
35
|
-
else
|
36
|
-
# Rake >= v11 does not support Ruby < v1.9.3 so use
|
37
|
-
s.add_development_dependency('rake', '~> 10.0')
|
38
|
-
end
|
39
|
-
s.add_development_dependency('introspection', '~> 0.0.1')
|
40
|
-
if RUBY_VERSION >= '2.2.0'
|
41
|
-
# No test libraries in standard library
|
42
|
-
s.add_development_dependency('minitest')
|
43
|
-
end
|
44
|
-
if RUBY_VERSION >= '1.9.2'
|
45
|
-
s.add_development_dependency('rubocop', '<= 0.58.2')
|
46
|
-
end
|
47
|
-
if ENV['MOCHA_GENERATE_DOCS']
|
48
|
-
s.add_development_dependency('redcarpet')
|
49
|
-
s.add_development_dependency('yard')
|
50
|
-
end
|
25
|
+
s.add_runtime_dependency 'ruby2_keywords', '>= 0.0.5'
|
51
26
|
end
|
metadata
CHANGED
@@ -1,71 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mocha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Mead
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: ruby2_keywords
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
type: :
|
19
|
+
version: 0.0.5
|
20
|
+
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: introspection
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.1
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.1
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: minitest
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rubocop
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "<="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.58.2
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "<="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 0.58.2
|
26
|
+
version: 0.0.5
|
69
27
|
description: Mocking and stubbing library with JMock/SchMock syntax, which allows
|
70
28
|
mocking and stubbing of methods on real (non-mock) classes.
|
71
29
|
email: mocha-developer@googlegroups.com
|
@@ -85,23 +43,8 @@ files:
|
|
85
43
|
- README.md
|
86
44
|
- RELEASE.md
|
87
45
|
- Rakefile
|
88
|
-
- bin/build-matrix
|
89
|
-
- gemfiles/Gemfile.minitest.1.3.0
|
90
|
-
- gemfiles/Gemfile.minitest.1.4.0
|
91
|
-
- gemfiles/Gemfile.minitest.1.4.1
|
92
|
-
- gemfiles/Gemfile.minitest.1.4.2
|
93
|
-
- gemfiles/Gemfile.minitest.2.0.0
|
94
|
-
- gemfiles/Gemfile.minitest.2.0.1
|
95
|
-
- gemfiles/Gemfile.minitest.2.11.0
|
96
|
-
- gemfiles/Gemfile.minitest.2.11.2
|
97
|
-
- gemfiles/Gemfile.minitest.2.3.0
|
98
|
-
- gemfiles/Gemfile.minitest.5.11.3
|
99
46
|
- gemfiles/Gemfile.minitest.latest
|
100
|
-
- gemfiles/Gemfile.test-unit.2.0.0
|
101
|
-
- gemfiles/Gemfile.test-unit.2.0.1
|
102
|
-
- gemfiles/Gemfile.test-unit.2.0.3
|
103
47
|
- gemfiles/Gemfile.test-unit.latest
|
104
|
-
- init.rb
|
105
48
|
- lib/mocha.rb
|
106
49
|
- lib/mocha/any_instance_method.rb
|
107
50
|
- lib/mocha/api.rb
|
@@ -127,31 +70,13 @@ files:
|
|
127
70
|
- lib/mocha/in_state_ordering_constraint.rb
|
128
71
|
- lib/mocha/inspect.rb
|
129
72
|
- lib/mocha/instance_method.rb
|
130
|
-
- lib/mocha/integration.rb
|
131
73
|
- lib/mocha/integration/assertion_counter.rb
|
132
74
|
- lib/mocha/integration/mini_test.rb
|
133
75
|
- lib/mocha/integration/mini_test/adapter.rb
|
134
76
|
- lib/mocha/integration/mini_test/exception_translation.rb
|
135
|
-
- lib/mocha/integration/mini_test/nothing.rb
|
136
|
-
- lib/mocha/integration/mini_test/version_13.rb
|
137
|
-
- lib/mocha/integration/mini_test/version_140.rb
|
138
|
-
- lib/mocha/integration/mini_test/version_141.rb
|
139
|
-
- lib/mocha/integration/mini_test/version_142_to_172.rb
|
140
|
-
- lib/mocha/integration/mini_test/version_200.rb
|
141
|
-
- lib/mocha/integration/mini_test/version_201_to_222.rb
|
142
|
-
- lib/mocha/integration/mini_test/version_2110_to_2111.rb
|
143
|
-
- lib/mocha/integration/mini_test/version_2112_to_320.rb
|
144
|
-
- lib/mocha/integration/mini_test/version_230_to_2101.rb
|
145
77
|
- lib/mocha/integration/monkey_patcher.rb
|
146
78
|
- lib/mocha/integration/test_unit.rb
|
147
79
|
- lib/mocha/integration/test_unit/adapter.rb
|
148
|
-
- lib/mocha/integration/test_unit/gem_version_200.rb
|
149
|
-
- lib/mocha/integration/test_unit/gem_version_201_to_202.rb
|
150
|
-
- lib/mocha/integration/test_unit/gem_version_203_to_220.rb
|
151
|
-
- lib/mocha/integration/test_unit/gem_version_230_to_250.rb
|
152
|
-
- lib/mocha/integration/test_unit/nothing.rb
|
153
|
-
- lib/mocha/integration/test_unit/ruby_version_185_and_below.rb
|
154
|
-
- lib/mocha/integration/test_unit/ruby_version_186_and_above.rb
|
155
80
|
- lib/mocha/invocation.rb
|
156
81
|
- lib/mocha/is_a.rb
|
157
82
|
- lib/mocha/logger.rb
|
@@ -174,6 +99,7 @@ files:
|
|
174
99
|
- lib/mocha/parameter_matchers/has_entries.rb
|
175
100
|
- lib/mocha/parameter_matchers/has_entry.rb
|
176
101
|
- lib/mocha/parameter_matchers/has_key.rb
|
102
|
+
- lib/mocha/parameter_matchers/has_keys.rb
|
177
103
|
- lib/mocha/parameter_matchers/has_value.rb
|
178
104
|
- lib/mocha/parameter_matchers/includes.rb
|
179
105
|
- lib/mocha/parameter_matchers/instance_methods.rb
|
@@ -182,6 +108,7 @@ files:
|
|
182
108
|
- lib/mocha/parameter_matchers/kind_of.rb
|
183
109
|
- lib/mocha/parameter_matchers/not.rb
|
184
110
|
- lib/mocha/parameter_matchers/optionally.rb
|
111
|
+
- lib/mocha/parameter_matchers/positional_or_keyword_hash.rb
|
185
112
|
- lib/mocha/parameter_matchers/regexp_matches.rb
|
186
113
|
- lib/mocha/parameter_matchers/responds_with.rb
|
187
114
|
- lib/mocha/parameter_matchers/yaml_equivalent.rb
|
@@ -191,9 +118,7 @@ files:
|
|
191
118
|
- lib/mocha/return_values.rb
|
192
119
|
- lib/mocha/ruby_version.rb
|
193
120
|
- lib/mocha/sequence.rb
|
194
|
-
- lib/mocha/setup.rb
|
195
121
|
- lib/mocha/single_return_value.rb
|
196
|
-
- lib/mocha/singleton_class.rb
|
197
122
|
- lib/mocha/state_machine.rb
|
198
123
|
- lib/mocha/stubbed_method.rb
|
199
124
|
- lib/mocha/stubbing_error.rb
|
@@ -203,8 +128,6 @@ files:
|
|
203
128
|
- lib/mocha/version.rb
|
204
129
|
- lib/mocha/yield_parameters.rb
|
205
130
|
- mocha.gemspec
|
206
|
-
- yard-templates/default/layout/html/google_analytics.erb
|
207
|
-
- yard-templates/default/layout/html/setup.rb
|
208
131
|
homepage: https://mocha.jamesmead.org
|
209
132
|
licenses:
|
210
133
|
- MIT
|
@@ -218,14 +141,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
141
|
requirements:
|
219
142
|
- - ">="
|
220
143
|
- !ruby/object:Gem::Version
|
221
|
-
version:
|
144
|
+
version: '2.0'
|
222
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
146
|
requirements:
|
224
147
|
- - ">="
|
225
148
|
- !ruby/object:Gem::Version
|
226
149
|
version: '0'
|
227
150
|
requirements: []
|
228
|
-
rubygems_version: 3.
|
151
|
+
rubygems_version: 3.4.1
|
229
152
|
signing_key:
|
230
153
|
specification_version: 4
|
231
154
|
summary: Mocking and stubbing library
|
data/bin/build-matrix
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'yaml'
|
4
|
-
require 'set'
|
5
|
-
require 'English'
|
6
|
-
|
7
|
-
def execute(*commands)
|
8
|
-
commands.each do |command|
|
9
|
-
system(command)
|
10
|
-
next if $CHILD_STATUS.success?
|
11
|
-
message = [
|
12
|
-
'Executing shell command failed.',
|
13
|
-
" Command: #{command}",
|
14
|
-
" Status: #{$CHILD_STATUS.exitstatus}"
|
15
|
-
].join("\n")
|
16
|
-
raise message
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def reset_bundle
|
21
|
-
execute(
|
22
|
-
'rm -rf .bundle/gems',
|
23
|
-
'rm -rf gemfiles/.bundle/gems',
|
24
|
-
'rm -f *.lock',
|
25
|
-
'rm -f gemfiles/*.lock'
|
26
|
-
)
|
27
|
-
end
|
28
|
-
|
29
|
-
def with_rbenv(command)
|
30
|
-
%{export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; #{command}}
|
31
|
-
end
|
32
|
-
|
33
|
-
def run(ruby_version, gemfile, task = 'test')
|
34
|
-
ENV['RBENV_VERSION'] = ruby_version
|
35
|
-
ENV['BUNDLE_GEMFILE'] = gemfile
|
36
|
-
ENV['MOCHA_OPTIONS'] = 'debug'
|
37
|
-
reset_bundle
|
38
|
-
execute(
|
39
|
-
with_rbenv("bundle install --gemfile=#{gemfile}"),
|
40
|
-
with_rbenv("bundle exec rake #{task}")
|
41
|
-
)
|
42
|
-
end
|
43
|
-
|
44
|
-
AVAILABLE_RUBY_VERSIONS = `rbenv versions --bare`.split("\n")
|
45
|
-
|
46
|
-
travis_config = YAML.safe_load(File.read('.travis.yml'))
|
47
|
-
build_configs = travis_config['matrix']['include']
|
48
|
-
travis_config['rvm'].each do |ruby_version|
|
49
|
-
travis_config['gemfile'].each do |gemfile|
|
50
|
-
travis_config['env'].each do |env|
|
51
|
-
build_configs << { 'rvm' => ruby_version, 'gemfile' => gemfile, 'env' => env }
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
missing_ruby_versions = Set.new
|
57
|
-
|
58
|
-
build_configs.each do |config|
|
59
|
-
ruby_version = config['rvm']
|
60
|
-
gemfile = config['gemfile']
|
61
|
-
environment_variables = Hash[*config['env'].split.flat_map { |e| e.split('=') }]
|
62
|
-
original_environment_variables = {}
|
63
|
-
begin
|
64
|
-
environment_variables.each do |k, v|
|
65
|
-
original_environment_variables[k] = ENV[k]
|
66
|
-
ENV[k] = v
|
67
|
-
end
|
68
|
-
if AVAILABLE_RUBY_VERSIONS.include?(ruby_version)
|
69
|
-
puts
|
70
|
-
puts "Ruby v#{ruby_version}; Gemfile path: #{gemfile}; Environment: #{environment_variables}"
|
71
|
-
run(ruby_version, gemfile)
|
72
|
-
else
|
73
|
-
missing_ruby_versions << ruby_version
|
74
|
-
end
|
75
|
-
ensure
|
76
|
-
original_environment_variables.each do |k, v|
|
77
|
-
ENV[k] = v
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
puts "Missing Ruby versions: #{missing_ruby_versions.to_a.join(', ')}"
|
data/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
warn 'Mocha deprecation warning: The old-style Rails plugin will not be supported in future versions of Mocha.'
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Mocha
|
2
|
-
module Integration
|
3
|
-
module MiniTest
|
4
|
-
module Nothing
|
5
|
-
def self.applicable_to?(_test_unit_version, _ruby_version = nil)
|
6
|
-
true
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.description
|
10
|
-
'nothing (no MiniTest integration available)'
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.included(_mod)
|
14
|
-
raise 'No MiniTest integration available'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'mocha/integration/assertion_counter'
|
2
|
-
require 'mocha/integration/monkey_patcher'
|
3
|
-
require 'mocha/integration/mini_test/exception_translation'
|
4
|
-
|
5
|
-
module Mocha
|
6
|
-
module Integration
|
7
|
-
module MiniTest
|
8
|
-
module Version13
|
9
|
-
def self.applicable_to?(mini_test_version)
|
10
|
-
Gem::Requirement.new('>= 1.3.0', '<= 1.3.1').satisfied_by?(mini_test_version)
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.description
|
14
|
-
'monkey patch for MiniTest gem v1.3'
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.included(mod)
|
18
|
-
MonkeyPatcher.apply(mod, RunMethodPatch)
|
19
|
-
end
|
20
|
-
|
21
|
-
module RunMethodPatch
|
22
|
-
# rubocop:disable all
|
23
|
-
def run runner
|
24
|
-
assertion_counter = AssertionCounter.new(self)
|
25
|
-
result = '.'
|
26
|
-
begin
|
27
|
-
begin
|
28
|
-
@passed = nil
|
29
|
-
mocha_setup
|
30
|
-
self.setup
|
31
|
-
self.__send__ self.name
|
32
|
-
mocha_verify(assertion_counter)
|
33
|
-
@passed = true
|
34
|
-
rescue Exception => e
|
35
|
-
@passed = false
|
36
|
-
result = runner.puke(self.class, self.name, Mocha::Integration::MiniTest.translate(e))
|
37
|
-
ensure
|
38
|
-
begin
|
39
|
-
self.teardown
|
40
|
-
rescue Exception => e
|
41
|
-
result = runner.puke(self.class, self.name, Mocha::Integration::MiniTest.translate(e))
|
42
|
-
end
|
43
|
-
end
|
44
|
-
ensure
|
45
|
-
mocha_teardown
|
46
|
-
end
|
47
|
-
result
|
48
|
-
end
|
49
|
-
# rubocop:enable all
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|