From f6aaa59e4e244eabb8a0d57df556e40a5798a380 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Wed, 28 May 2025 09:26:35 +0100 Subject: [PATCH 1/2] DEV: Patch `Net::BufferedIO` to help debug spec flakes Internal `/t/154170` --- spec/lib/completions/cancel_manager_spec.rb | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/spec/lib/completions/cancel_manager_spec.rb b/spec/lib/completions/cancel_manager_spec.rb index d57baa6bf..4f2d55263 100644 --- a/spec/lib/completions/cancel_manager_spec.rb +++ b/spec/lib/completions/cancel_manager_spec.rb @@ -1,5 +1,27 @@ # frozen_string_literal: true +# Debugging https://github.com/ruby/net-protocol/issues/32 +# which seems to be happening inconsistently in CI +Net::BufferedIO.prepend( + Module.new do + def initialize(*args, **kwargs) + puts "Initializing #{kwargs.inspect}" + if kwargs[:debug_output] && !kwargs[:debug_output].respond_to(:<<) + raise ArgumentError, "debug_output must support <<" + end + super + end + + def debug_output=(debug_output) + puts "SETTING DEBUG OUTPUT: #{debug_output.inspect}" + if debug_output && !debug_output.respond_to?(:<<) + raise ArgumentError, "debug_output must support <<" + end + super + end + end, +) + describe DiscourseAi::Completions::CancelManager do fab!(:model) { Fabricate(:anthropic_model, name: "test-model") } From 82f57a63fe755543aa22269ca783868137f5933a Mon Sep 17 00:00:00 2001 From: David Taylor Date: Wed, 28 May 2025 09:28:29 +0100 Subject: [PATCH 2/2] less noise --- spec/lib/completions/cancel_manager_spec.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/lib/completions/cancel_manager_spec.rb b/spec/lib/completions/cancel_manager_spec.rb index 4f2d55263..c5e2ec47e 100644 --- a/spec/lib/completions/cancel_manager_spec.rb +++ b/spec/lib/completions/cancel_manager_spec.rb @@ -5,7 +5,6 @@ Net::BufferedIO.prepend( Module.new do def initialize(*args, **kwargs) - puts "Initializing #{kwargs.inspect}" if kwargs[:debug_output] && !kwargs[:debug_output].respond_to(:<<) raise ArgumentError, "debug_output must support <<" end @@ -13,7 +12,6 @@ def initialize(*args, **kwargs) end def debug_output=(debug_output) - puts "SETTING DEBUG OUTPUT: #{debug_output.inspect}" if debug_output && !debug_output.respond_to?(:<<) raise ArgumentError, "debug_output must support <<" end