rb: Ensure the specs that expect deprecation warnings actually get them [THRIFT-56]
Author: Kevin Ballard <kevin@rapleaf.com>
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671985 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/rb/lib/thrift/deprecation.rb b/lib/rb/lib/thrift/deprecation.rb
index 6a422a8..175f0ce 100644
--- a/lib/rb/lib/thrift/deprecation.rb
+++ b/lib/rb/lib/thrift/deprecation.rb
@@ -123,6 +123,10 @@
dir = File.dirname(__FILE__)
stack.find { |frame| frame[0,dir.size] != dir }
end
+ def self.reset_deprecation_warnings
+ CLASS_MAPPING.each { |k,v| v[2] = false }
+ MODULE_MAPPING.each { |k,v| v[2] = false }
+ end
end
module Kernel
diff --git a/lib/rb/spec/backwards_compatibility_spec.rb b/lib/rb/spec/backwards_compatibility_spec.rb
index eb35a95..6c9d835 100644
--- a/lib/rb/spec/backwards_compatibility_spec.rb
+++ b/lib/rb/spec/backwards_compatibility_spec.rb
@@ -5,6 +5,7 @@
context "Backwards compatibility" do
specify "old class names should map to new classes" do
+ Thrift::DeprecationProxy.reset_deprecation_warnings
# use an Array because a Hash will call #hash and trigger deprecation warnings
klasses = [
[:module, :ThriftClient, Thrift::Client],
diff --git a/lib/rb/spec/deprecation_spec.rb b/lib/rb/spec/deprecation_spec.rb
index 4ca4ee3..77786d8 100644
--- a/lib/rb/spec/deprecation_spec.rb
+++ b/lib/rb/spec/deprecation_spec.rb
@@ -14,6 +14,10 @@
Thrift.const_set :DEPRECATION, false
end
+ before(:each) do
+ Thrift::DeprecationProxy.reset_deprecation_warnings
+ end
+
def ensure_const_removed(name, &block)
begin
block.call