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
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 @@ module QuietBacktrace
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
...
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
...
88
89
90
91
 
92
93
94
 
 
95
96
97
...
101
102
103
 
 
 
 
 
 
 
 
 
104
105
...
32
33
34
35
36
37
38
...
49
50
51
 
 
52
53
54
55
56
...
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
...
91
92
93
 
94
95
96
 
97
98
99
100
101
...
105
106
107
108
109
110
111
112
113
114
115
116
117
118
0
@@ -32,6 +32,7 @@ class QuietBacktraceTest < Test::Unit::TestCase
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 @@ class QuietBacktraceTest < Test::Unit::TestCase
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
@@ -57,19 +58,20 @@ class QuietBacktraceTest < Test::Unit::TestCase
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 @@ class QuietBacktraceTest < Test::Unit::TestCase
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
@@ -88,10 +91,11 @@ class QuietBacktraceTest < Test::Unit::TestCase
0
     
0
   end
0
   
0
-  context "Overiding 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,4 +105,13 @@ class QuietBacktraceTest < Test::Unit::TestCase
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
0
\ No newline at end of file

Comments