File tree 2 files changed +23
-1
lines changed 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -763,8 +763,18 @@ class << self
763
763
alias default_imap_port default_port
764
764
alias default_imaps_port default_tls_port
765
765
alias default_ssl_port default_tls_port
766
+
767
+ # Set to true to silence deprecation warnings, e.g. from #responses.
768
+ # Defaults to false.
769
+ #
770
+ # These warnings are concerning thread-safety issues, so it is recommended
771
+ # to update other code and leave this value. Deprecated usage will
772
+ # become errors regardless of this setting, so use this only temporarily.
773
+ attr_accessor :silence_thread_safety_deprecation_warnings
766
774
end
767
775
776
+ self . silence_thread_safety_deprecation_warnings = false
777
+
768
778
def client_thread # :nodoc:
769
779
warn "Net::IMAP#client_thread is deprecated and will be removed soon."
770
780
@client_thread
@@ -2091,7 +2101,9 @@ def responses(type = nil)
2091
2101
elsif type
2092
2102
raise ArgumentError , "Pass a block or use #clear_responses"
2093
2103
else
2094
- warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2104
+ unless IMAP . silence_thread_safety_deprecation_warnings
2105
+ warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2106
+ end
2095
2107
@responses
2096
2108
end
2097
2109
end
Original file line number Diff line number Diff line change @@ -959,6 +959,8 @@ def test_responses
959
959
end
960
960
sock . getcmd # waits for logout command
961
961
end
962
+ original_silence = Net ::IMAP . silence_thread_safety_deprecation_warnings
963
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = false
962
964
begin
963
965
imap = Net ::IMAP . new ( server_addr , port : port )
964
966
# responses available before SELECT/EXAMINE
@@ -978,8 +980,16 @@ def test_responses
978
980
assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
979
981
imap . responses [ "FLAGS" ] &.last )
980
982
end
983
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = true
984
+ # TODO: assert_no_warn?
985
+ stderr = EnvUtil . verbose_warning {
986
+ assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
987
+ imap . responses [ "FLAGS" ] &.last )
988
+ }
989
+ assert_empty stderr
981
990
imap . logout
982
991
ensure
992
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = original_silence
983
993
imap . disconnect if imap
984
994
end
985
995
end
You can’t perform that action at this time.
0 commit comments