schmurfy-bacon 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/examples/focus_spec.rb +53 -0
- data/lib/bacon.rb +31 -6
- data/lib/bacon/ext/mocha.rb +9 -6
- data/lib/bacon/version.rb +1 -1
- metadata +6 -5
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift << File.expand_path('../../lib/', __FILE__)
|
4
|
+
|
5
|
+
require 'bacon'
|
6
|
+
|
7
|
+
Bacon.summary_on_exit
|
8
|
+
|
9
|
+
# define this if you want to be sure you are
|
10
|
+
# executing every tests.
|
11
|
+
# (I use this in my "rake test" task)
|
12
|
+
#
|
13
|
+
# Bacon.allow_focused_run = false
|
14
|
+
|
15
|
+
describe 'FocusSpec' do
|
16
|
+
focus "could do something"
|
17
|
+
|
18
|
+
it 'does nothing' do
|
19
|
+
1.should == 1
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'also does nothing' do
|
23
|
+
1.should == 1
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'could do something' do
|
27
|
+
1.should == 1
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
describe 'FocusContextSpec' do
|
33
|
+
focus_context "sub context"
|
34
|
+
|
35
|
+
it 'does nothing' do
|
36
|
+
1.should == 1
|
37
|
+
end
|
38
|
+
|
39
|
+
describe 'sub context' do
|
40
|
+
it 'also does nothing' do
|
41
|
+
2.should == 1
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'does nothing once more but pass' do
|
45
|
+
1.should == 1
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'could do something' do
|
50
|
+
1.should == 1
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/lib/bacon.rb
CHANGED
@@ -14,9 +14,6 @@ module Bacon
|
|
14
14
|
raise NameError, "no such context: #{name.inspect}"
|
15
15
|
}
|
16
16
|
|
17
|
-
RestrictName = // unless defined? RestrictName
|
18
|
-
RestrictContext = // unless defined? RestrictContext
|
19
|
-
|
20
17
|
Backtraces = true unless defined? Backtraces
|
21
18
|
|
22
19
|
|
@@ -31,6 +28,18 @@ module Bacon
|
|
31
28
|
extend SpecDoxOutput
|
32
29
|
end
|
33
30
|
|
31
|
+
# focus ----
|
32
|
+
@allow_focused_run = true
|
33
|
+
|
34
|
+
class <<self
|
35
|
+
attr_accessor :allow_focused_run
|
36
|
+
alias_method :allow_focused_run?, :allow_focused_run
|
37
|
+
|
38
|
+
attr_accessor :focus_name_regexp, :focus_context_regexp
|
39
|
+
end
|
40
|
+
|
41
|
+
# ------
|
42
|
+
|
34
43
|
@backtrace_size = nil
|
35
44
|
|
36
45
|
def self.backtrace_size=(n)
|
@@ -100,7 +109,6 @@ module Bacon
|
|
100
109
|
end
|
101
110
|
|
102
111
|
def run
|
103
|
-
return unless name =~ RestrictContext
|
104
112
|
Counter[:context_depth] += 1
|
105
113
|
Bacon.handle_specification(name) { instance_eval(&block) }
|
106
114
|
Counter[:context_depth] -= 1
|
@@ -122,8 +130,20 @@ module Bacon
|
|
122
130
|
end
|
123
131
|
end
|
124
132
|
|
133
|
+
|
134
|
+
def focus(spec_str)
|
135
|
+
raise "focused test forbidden" unless Bacon::allow_focused_run?
|
136
|
+
Bacon::focus_name_regexp = %r{#{spec_str}}
|
137
|
+
end
|
138
|
+
|
139
|
+
def focus_context(context_str)
|
140
|
+
raise "focused test forbidden" unless Bacon::allow_focused_run?
|
141
|
+
Bacon::focus_context_regexp = %r{#{context_str}}
|
142
|
+
end
|
143
|
+
|
125
144
|
def it(description, &block)
|
126
|
-
return
|
145
|
+
return unless name =~ Bacon::focus_context_regexp
|
146
|
+
return unless description =~ Bacon::focus_name_regexp
|
127
147
|
block ||= lambda { should.flunk "not implemented" }
|
128
148
|
Counter[:specifications] += 1
|
129
149
|
run_requirement description, block
|
@@ -242,7 +262,12 @@ end
|
|
242
262
|
|
243
263
|
module Kernel
|
244
264
|
private
|
245
|
-
def describe(*args, &block)
|
265
|
+
def describe(*args, &block)
|
266
|
+
Bacon::focus_name_regexp = //
|
267
|
+
Bacon::focus_context_regexp = //
|
268
|
+
Bacon::Context.new(args.join(' '), &block).run
|
269
|
+
end
|
270
|
+
|
246
271
|
def shared(name, &block) Bacon::Shared[name] = block end
|
247
272
|
end
|
248
273
|
|
data/lib/bacon/ext/mocha.rb
CHANGED
@@ -13,13 +13,13 @@ module Bacon
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
module MochaSpec
|
17
|
+
def self.included(base)
|
18
|
+
base.send(:include, Mocha::API)
|
19
|
+
end
|
20
20
|
|
21
|
-
def
|
22
|
-
|
21
|
+
def execute_spec(&block)
|
22
|
+
super do
|
23
23
|
begin
|
24
24
|
mocha_setup
|
25
25
|
block.call
|
@@ -31,5 +31,8 @@ module Bacon
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
|
+
|
34
35
|
end
|
36
|
+
|
37
|
+
Context.send(:include, MochaSpec)
|
35
38
|
end
|
data/lib/bacon/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schmurfy-bacon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-04-02 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: term-ansicolor
|
16
|
-
requirement: &
|
16
|
+
requirement: &70177919026240 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70177919026240
|
25
25
|
description: ! 'Bacon is a small RSpec clone weighing less than 350 LoC but
|
26
26
|
|
27
27
|
nevertheless providing all essential features.
|
@@ -45,6 +45,7 @@ files:
|
|
45
45
|
- bacon.gemspec
|
46
46
|
- bin/bacon
|
47
47
|
- examples/em_spec.rb
|
48
|
+
- examples/focus_spec.rb
|
48
49
|
- examples/mocha_spec.rb
|
49
50
|
- lib/autotest/bacon.rb
|
50
51
|
- lib/autotest/bacon_rspec.rb
|
@@ -75,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
75
76
|
version: '0'
|
76
77
|
segments:
|
77
78
|
- 0
|
78
|
-
hash:
|
79
|
+
hash: -3207212041725113050
|
79
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
81
|
none: false
|
81
82
|
requirements:
|
@@ -84,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
85
|
version: '0'
|
85
86
|
segments:
|
86
87
|
- 0
|
87
|
-
hash:
|
88
|
+
hash: -3207212041725113050
|
88
89
|
requirements: []
|
89
90
|
rubyforge_project:
|
90
91
|
rubygems_version: 1.8.11
|