Sha256: 05982fba58b5d367c3ba64a4d6250dbdf3e98486b388772806a5a90311e2808f
Contents?: true
Size: 1.36 KB
Versions: 48
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true require "active_support/deprecation" require "active_support/core_ext/regexp" module ActiveSupport module Testing module Deprecation #:nodoc: def assert_deprecated(match = nil, deprecator = nil, &block) result, warnings = collect_deprecations(deprecator, &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| match.match?(w) }, "No deprecation warning matched #{match}: #{warnings.join(', ')}" end result end def assert_not_deprecated(deprecator = nil, &block) result, deprecations = collect_deprecations(deprecator, &block) assert deprecations.empty?, "Expected no deprecation warning within the block but received #{deprecations.size}: \n #{deprecations * "\n "}" result end def collect_deprecations(deprecator = nil) deprecator ||= ActiveSupport::Deprecation old_behavior = deprecator.behavior deprecations = [] deprecator.behavior = Proc.new do |message, callstack| deprecations << message end result = yield [result, deprecations] ensure deprecator.behavior = old_behavior end end end end
Version data entries
48 entries across 48 versions & 7 rubygems