Browse files

Move deprecation assertions so TestCase (and Mocha) needn't load on s…

…tartup
  • Loading branch information...
1 parent 2db8571 commit 9d4ae40bb40b2354c4061a23ae4db9a28e3174e6 @jeremy jeremy committed Nov 23, 2008
View
59 activesupport/lib/active_support/deprecation.rb
@@ -113,37 +113,6 @@ def deprecation_horizon
end
end
- module Assertions #:nodoc:
- def assert_deprecated(match = nil, &block)
- result, warnings = collect_deprecations(&block)
- assert !warnings.empty?, "Expected a deprecation warning within the block but received none"
- if match
- match = Regexp.new(Regexp.escape(match)) unless match.is_a?(Regexp)
- assert warnings.any? { |w| w =~ match }, "No deprecation warning matched #{match}: #{warnings.join(', ')}"
- end
- result
- end
-
- def assert_not_deprecated(&block)
- result, deprecations = collect_deprecations(&block)
- assert deprecations.empty?, "Expected no deprecation warning within the block but received #{deprecations.size}: \n #{deprecations * "\n "}"
- result
- end
-
- private
- def collect_deprecations
- old_behavior = ActiveSupport::Deprecation.behavior
- deprecations = []
- ActiveSupport::Deprecation.behavior = Proc.new do |message, callstack|
- deprecations << message
- end
- result = yield
- [result, deprecations]
- ensure
- ActiveSupport::Deprecation.behavior = old_behavior
- end
- end
-
class DeprecationProxy #:nodoc:
silence_warnings do
instance_methods.each { |m| undef_method m unless m =~ /^__/ }
@@ -220,31 +189,3 @@ def warn(callstack, called, args)
class Module
include ActiveSupport::Deprecation::ClassMethods
end
-
-
-require 'active_support/test_case'
-
-class ActiveSupport::TestCase
- include ActiveSupport::Deprecation::Assertions
-end
-
-begin
- require 'test/unit/error'
-
- module Test
- module Unit
- class Error # :nodoc:
- # Silence warnings when reporting test errors.
- def message_with_silenced_deprecation
- ActiveSupport::Deprecation.silence do
- message_without_silenced_deprecation
- end
- end
-
- alias_method_chain :message, :silenced_deprecation
- end
- end
- end
-rescue LoadError
- # Using miniunit, ignore.
-end
View
2 activesupport/lib/active_support/test_case.rb
@@ -1,6 +1,7 @@
require 'test/unit/testcase'
require 'active_support/testing/setup_and_teardown'
require 'active_support/testing/assertions'
+require 'active_support/testing/deprecation'
require 'active_support/testing/declarative'
begin
@@ -35,6 +36,7 @@ class TestCase < ::Test::Unit::TestCase
include ActiveSupport::Testing::SetupAndTeardown
include ActiveSupport::Testing::Assertions
+ include ActiveSupport::Testing::Deprecation
extend ActiveSupport::Testing::Declarative
end
end
View
55 activesupport/lib/active_support/testing/deprecation.rb
@@ -0,0 +1,55 @@
+module ActiveSupport
+ module Testing
+ module Deprecation #:nodoc:
+ def assert_deprecated(match = nil, &block)
+ result, warnings = collect_deprecations(&block)
+ assert !warnings.empty?, "Expected a deprecation warning within the block but received none"
+ if match
+ match = Regexp.new(Regexp.escape(match)) unless match.is_a?(Regexp)
+ assert warnings.any? { |w| w =~ match }, "No deprecation warning matched #{match}: #{warnings.join(', ')}"
+ end
+ result
+ end
+
+ def assert_not_deprecated(&block)
+ result, deprecations = collect_deprecations(&block)
+ assert deprecations.empty?, "Expected no deprecation warning within the block but received #{deprecations.size}: \n #{deprecations * "\n "}"
+ result
+ end
+
+ private
+ def collect_deprecations
+ old_behavior = ActiveSupport::Deprecation.behavior
+ deprecations = []
+ ActiveSupport::Deprecation.behavior = Proc.new do |message, callstack|
+ deprecations << message
+ end
+ result = yield
+ [result, deprecations]
+ ensure
+ ActiveSupport::Deprecation.behavior = old_behavior
+ end
+ end
+ end
+end
+
+begin
+ require 'test/unit/error'
+
+ module Test
+ module Unit
+ class Error # :nodoc:
+ # Silence warnings when reporting test errors.
+ def message_with_silenced_deprecation
+ ActiveSupport::Deprecation.silence do
+ message_without_silenced_deprecation
+ end
+ end
+
+ alias_method_chain :message, :silenced_deprecation
+ end
+ end
+ end
+rescue LoadError
+ # Using miniunit, ignore.
+end

0 comments on commit 9d4ae40

Please sign in to comment.