public
Rubygem
Description: Suppresses the noise in your Test::Unit backtraces
Homepage: http://www.thoughtbot.com/projects/quietbacktrace
Clone URL: git://github.com/thoughtbot/quietbacktrace.git
Search Repo:
fixed most test failures

git-svn-id: https://svn.thoughtbot.com/gems/quiet_backtrace/trunk@14 
09e380d5-dfe7-4e7f-bb75-86e4d9cf726d
dcroak (author)
Thu Nov 29 18:00:34 -0800 2007
commit  93f93a84e8c4d7756f11d4a720a711d0a386bf36
tree    106bb9042e146de96131ef02e2f5c61f05893530
parent  902995b05088becfaffe0ec1bc1a82084216209e
...
24
25
26
27
 
28
29
30
31
32
33
 
34
35
36
...
24
25
26
 
27
28
29
30
31
32
 
33
34
35
36
0
@@ -24,13 +24,13 @@
0
       if Test::Unit::TestCase.quiet_backtrace
0
         backtrace.reject! do |line|
0
           [*Test::Unit::TestCase.backtrace_silencers].any? do |silencer_name|
0
- QuietBacktrace::BacktraceFilter.silencers[silencer_name].call(line)
0
+ QuietBacktrace::BacktraceFilter.silencers[silencer_name].call(line) if silencer_name
0
           end
0
         end
0
 
0
         backtrace.each do |line|
0
           [*Test::Unit::TestCase.backtrace_filters].each do |filter_name|
0
- QuietBacktrace::BacktraceFilter.filters[filter_name].call(line)
0
+ QuietBacktrace::BacktraceFilter.filters[filter_name].call(line) if filter_name
0
           end
0
         end
0
       end
...
32
33
34
 
35
36
37
...
48
49
50
51
52
 
 
53
54
55
56
57
...
57
58
59
60
61
62
 
 
 
 
63
64
65
66
67
68
 
 
69
70
71
72
 
73
74
75
...
77
78
79
80
 
 
81
82
83
84
...
88
89
90
91
 
92
93
94
 
 
95
96
97
...
101
102
103
 
 
 
 
 
 
 
 
 
104
...
32
33
34
35
36
37
38
...
49
50
51
 
 
52
53
54
55
56
57
58
...
58
59
60
 
 
 
61
62
63
64
65
66
67
68
 
 
69
70
71
72
73
 
74
75
76
77
...
79
80
81
 
82
83
84
85
86
87
...
91
92
93
 
94
95
96
 
97
98
99
100
101
...
105
106
107
108
109
110
111
112
113
114
115
116
117
0
@@ -32,6 +32,7 @@
0
   context "The default quiet backtrace" do
0
     
0
     setup do
0
+ reset_filter!
0
       @mock = MockTestUnit.new
0
       @default_quiet_backtrace = @mock.filter_backtrace(@backtrace.dup)
0
     end
0
@@ -48,8 +49,8 @@
0
       assert !@default_quiet_backtrace.any? { |line| line =~ /\:in / }, "Method name was not removed from one or more lines: #{@default_quiet_backtrace}"
0
     end
0
 
0
- should "remove rails root from the beginning of lines" do
0
- assert @default_quiet_backtrace.any? { |line| line == 'app/controllers/photos_controller.rb:315' }, "Rails root is not being filtered: #{@default_quiet_backtrace}"
0
+ should "not silence or filter a legitimate line" do
0
+ assert @default_quiet_backtrace.any? { |line| line == '/Users/james/Documents/railsApps/generating_station/app/controllers/photos_controller.rb:315' }, "Rails root is not being filtered: #{@default_quiet_backtrace}"
0
     end
0
     
0
   end
0
0
0
@@ -57,19 +58,20 @@
0
   context "The quiet backtrace with complementary Rails silencers and filters" do
0
     
0
     setup do
0
- RAILS_ROOT = '/Users/james/Documents/railsApps/generating_station'
0
- Test::Unit::TestCase.backtrace_silencers << [:rails_vendor]
0
- Test::Unit::TestCase.backtrace_filters << [:rails_root]
0
+ reset_filter!
0
+ @rails_root = '/Users/james/Documents/railsApps/generating_station'
0
+ self.backtrace_silencers << :rails_vendor
0
+ self.backtrace_filters << :rails_root
0
       @mock = MockTestUnit.new
0
       @rails_quiet_backtrace = @mock.filter_backtrace(@backtrace.dup)
0
     end
0
     
0
- should "from RAILS_ROOT/vendor directory" do
0
- assert !@rails_quiet_backtrace.any? { |line| line.include?("#{RAILS_ROOT}/vendor") }, "One or more lines from RAILS_ROOT/vendor directory are not being silenced: #{@rails_quiet_backtrace}"
0
+ should "silence any line from the RAILS_ROOT/vendor directory" do
0
+ assert !@rails_quiet_backtrace.any? { |line| line.include?("#{@rails_root}/vendor") }, "One or more lines from RAILS_ROOT/vendor directory are not being silenced: #{@rails_quiet_backtrace}"
0
     end
0
     
0
     should "remove RAILS_ROOT text from the beginning of lines" do
0
- assert !@rails_quiet_backtrace.any? { |line| line.include?("#{RAILS_ROOT}") }, "One or more lines that include RAILS_ROOT text are not being filtered: #{@rails_quiet_backtrace}"
0
+ assert !@rails_quiet_backtrace.any? { |line| line.include?("#{@rails_root}") }, "One or more lines that include RAILS_ROOT text are not being filtered: #{@rails_quiet_backtrace}"
0
     end
0
     
0
   end
0
@@ -77,7 +79,8 @@
0
   context "Setting quiet backtrace to false" do
0
     
0
     setup do
0
- Test::Unit::TestCase.quiet_backtrace = false
0
+ reset_filter!
0
+ self.quiet_backtrace = false
0
       @mock = MockTestUnit.new
0
       @unfiltered_backtrace = @mock.filter_backtrace(@backtrace.dup)
0
     end
0
0
@@ -88,10 +91,11 @@
0
     
0
   end
0
   
0
- context "Overriding the defaults" do
0
+ context "Overriding the defaults" do
0
     
0
     setup do
0
- Test::Unit::TestCase.backtrace_silencers = [:test_unit, :rails_vendor]
0
+ reset_filter!
0
+ self.backtrace_silencers = [:test_unit, :rails_vendor]
0
       @mock = MockTestUnit.new
0
       @not_filtering_gem_root = @mock.filter_backtrace(@backtrace.dup)
0
     end
0
@@ -101,5 +105,14 @@
0
     end
0
     
0
   end
0
+
0
+ private
0
+
0
+ def reset_filter!
0
+ self.quiet_backtrace = true
0
+ self.backtrace_silencers = [:test_unit, :gem_root]
0
+ self.backtrace_filters = [:method_name]
0
+ end
0
+
0
 end

Comments

    No one has commented yet.