Skip to content

Commit 1f48c09

Browse files
ManfredDavid Heinemeier Hansson
authored andcommitted
Accept a prefix argument to filter_backtrace_with_cleaning [#1456 state:committed]
Add a prefix argument to filter_backtrace_with_cleaning so it has the same arity as test/unit's filter_backtrace. Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
1 parent f3f67ce commit 1f48c09

File tree

3 files changed

+34
-7
lines changed

3 files changed

+34
-7
lines changed

railties/lib/rails/backtrace_cleaner.rb

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
module Rails
22
class BacktraceCleaner < ActiveSupport::BacktraceCleaner
33
ERB_METHOD_SIG = /:in `_run_erb_.*/
4-
4+
55
VENDOR_DIRS = %w( vendor/plugins vendor/gems vendor/rails )
66
MONGREL_DIRS = %w( lib/mongrel bin/mongrel )
77
RAILS_NOISE = %w( script/server )
88
RUBY_NOISE = %w( rubygems/custom_require benchmark.rb )
99

1010
ALL_NOISE = VENDOR_DIRS + MONGREL_DIRS + RAILS_NOISE + RUBY_NOISE
11-
1211

1312
def initialize
1413
super
@@ -18,15 +17,14 @@ def initialize
1817
end
1918
end
2019

21-
2220
# For installing the BacktraceCleaner in the test/unit
2321
module BacktraceFilterForTestUnit #:nodoc:
2422
def self.included(klass)
2523
klass.send :alias_method_chain, :filter_backtrace, :cleaning
2624
end
27-
28-
def filter_backtrace_with_cleaning(backtrace)
29-
backtrace = filter_backtrace_without_cleaning(backtrace)
25+
26+
def filter_backtrace_with_cleaning(backtrace, prefix=nil)
27+
backtrace = filter_backtrace_without_cleaning(backtrace, prefix)
3028
backtrace = backtrace.first.split("\n") if backtrace.size == 1
3129
Rails.backtrace_cleaner.clean(backtrace)
3230
end

railties/test/abstract_unit.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
require 'mocha'
1010
require 'stringio'
1111
require 'active_support'
12+
require 'active_support/test_case'
1213

1314
def uses_mocha(test_name)
1415
yield
@@ -18,4 +19,4 @@ def uses_mocha(test_name)
1819
RAILS_ROOT.replace File.dirname(__FILE__)
1920
else
2021
RAILS_ROOT = File.dirname(__FILE__)
21-
end
22+
end
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
require 'abstract_unit'
2+
3+
require 'initializer'
4+
require 'rails/backtrace_cleaner'
5+
6+
class TestWithBacktrace
7+
include Test::Unit::Util::BacktraceFilter
8+
include Rails::BacktraceFilterForTestUnit
9+
end
10+
11+
class BacktraceCleanerFilterTest < ActiveSupport::TestCase
12+
def setup
13+
@test = TestWithBacktrace.new
14+
@backtrace = [ './test/rails/benchmark_test.rb', './test/rails/dependencies.rb', '/opt/local/lib/ruby/kernel.rb' ]
15+
end
16+
17+
test "test with backtrace should use the rails backtrace cleaner to clean" do
18+
Rails.stubs(:backtrace_cleaner).returns(stub(:clean))
19+
Rails.backtrace_cleaner.expects(:clean).with(@backtrace, nil)
20+
@test.filter_backtrace(@backtrace)
21+
end
22+
23+
test "filter backtrace should have the same arity as Test::Unit::Util::BacktraceFilter" do
24+
assert_nothing_raised do
25+
@test.filter_backtrace(@backtrace, '/opt/local/lib')
26+
end
27+
end
28+
end

0 commit comments

Comments
 (0)