File tree 2 files changed +24
-1
lines changed 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -716,8 +716,18 @@ class << self
716
716
alias default_imap_port default_port
717
717
alias default_imaps_port default_tls_port
718
718
alias default_ssl_port default_tls_port
719
+
720
+ # Set to true to silence deprecation warnings, e.g. from #responses.
721
+ # Defaults to false.
722
+ #
723
+ # These warnings are concerning thread-safety issues, so it is recommended
724
+ # to update other code and leave this value. Deprecated usage will
725
+ # become errors regardless of this setting, so use this only temporarily.
726
+ attr_accessor :silence_thread_safety_deprecation_warnings
719
727
end
720
728
729
+ self . silence_thread_safety_deprecation_warnings = false
730
+
721
731
def client_thread # :nodoc:
722
732
warn "Net::IMAP#client_thread is deprecated and will be removed soon."
723
733
@client_thread
@@ -2107,7 +2117,9 @@ def responses(type = nil)
2107
2117
elsif type
2108
2118
raise ArgumentError , "Pass a block or use #clear_responses"
2109
2119
else
2110
- warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2120
+ unless IMAP . silence_thread_safety_deprecation_warnings
2121
+ warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2122
+ end
2111
2123
@responses
2112
2124
end
2113
2125
end
Original file line number Diff line number Diff line change @@ -873,6 +873,8 @@ def test_enable
873
873
end
874
874
875
875
def test_responses
876
+ original_silence = Net ::IMAP . silence_thread_safety_deprecation_warnings
877
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = false
876
878
with_fake_server do |server , imap |
877
879
# responses available before SELECT/EXAMINE
878
880
assert_equal ( %w[ IMAP4REV1 NAMESPACE MOVE IDLE UTF8=ACCEPT ] ,
@@ -891,7 +893,16 @@ def test_responses
891
893
assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
892
894
imap . responses [ "FLAGS" ] &.last )
893
895
end
896
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = true
897
+ # TODO: assert_no_warn?
898
+ stderr = EnvUtil . verbose_warning {
899
+ assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
900
+ imap . responses [ "FLAGS" ] &.last )
901
+ }
902
+ assert_empty stderr
894
903
end
904
+ ensure
905
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = original_silence
895
906
end
896
907
897
908
def test_clear_responses
You can’t perform that action at this time.
0 commit comments