File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -704,8 +704,18 @@ class << self
704
704
alias default_imap_port default_port
705
705
alias default_imaps_port default_tls_port
706
706
alias default_ssl_port default_tls_port
707
+
708
+ # Set to true to silence deprecation warnings, e.g. from #responses.
709
+ # Defaults to false.
710
+ #
711
+ # These warnings are concerning thread-safety issues, so it is recommended
712
+ # to update other code and leave this value. Deprecated usage will
713
+ # become errors regardless of this setting, so use this only temporarily.
714
+ attr_accessor :silence_thread_safety_deprecation_warnings
707
715
end
708
716
717
+ self . silence_thread_safety_deprecation_warnings = false
718
+
709
719
# Returns the initial greeting the server, an UntaggedResponse.
710
720
attr_reader :greeting
711
721
@@ -2311,7 +2321,9 @@ def responses(type = nil)
2311
2321
elsif type
2312
2322
raise ArgumentError , "Pass a block or use #clear_responses"
2313
2323
else
2314
- warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2324
+ unless IMAP . silence_thread_safety_deprecation_warnings
2325
+ warn ( "DEPRECATED: pass a block or use #clear_responses" , uplevel : 1 )
2326
+ end
2315
2327
@responses
2316
2328
end
2317
2329
end
Original file line number Diff line number Diff line change @@ -1073,6 +1073,8 @@ def test_enable
1073
1073
1074
1074
def test_responses
1075
1075
with_fake_server do |server , imap |
1076
+ original_silence = Net ::IMAP . silence_thread_safety_deprecation_warnings
1077
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = false
1076
1078
# responses available before SELECT/EXAMINE
1077
1079
assert_equal ( %w[ IMAP4REV1 NAMESPACE MOVE IDLE UTF8=ACCEPT ] ,
1078
1080
imap . responses ( "CAPABILITY" , &:last ) )
@@ -1090,6 +1092,15 @@ def test_responses
1090
1092
assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
1091
1093
imap . responses [ "FLAGS" ] &.last )
1092
1094
end
1095
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = true
1096
+ # TODO: assert_no_warn?
1097
+ stderr = EnvUtil . verbose_warning {
1098
+ assert_equal ( %i[ Answered Flagged Deleted Seen Draft ] ,
1099
+ imap . responses [ "FLAGS" ] &.last )
1100
+ }
1101
+ assert_empty stderr
1102
+ ensure
1103
+ Net ::IMAP . silence_thread_safety_deprecation_warnings = original_silence
1093
1104
end
1094
1105
end
1095
1106
You can’t perform that action at this time.
0 commit comments