From 76d4154fdf7197a4be4c5e4de7b6bdd089398d68 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 30 Dec 2024 14:50:43 -0500 Subject: [PATCH] return empty string when redirecting logs to stderr --- lib/departure/command.rb | 6 +++++- spec/departure/command_spec.rb | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/lib/departure/command.rb b/lib/departure/command.rb index 384845bb..58800909 100644 --- a/lib/departure/command.rb +++ b/lib/departure/command.rb @@ -83,7 +83,11 @@ def validate_status! # # @return [String] def error_message - File.read(error_log_path) + if redirect_stderr + File.read(error_log_path) + else + '' + end end # Logs when the execution started diff --git a/spec/departure/command_spec.rb b/spec/departure/command_spec.rb index 2bd94f07..f9bb7224 100644 --- a/spec/departure/command_spec.rb +++ b/spec/departure/command_spec.rb @@ -1,7 +1,7 @@ require 'spec_helper' describe Departure::Command do - describe '#run' do + shared_examples_for '#run' do let(:command) { 'pt-online-schema-change command' } let(:error_log_path) { 'departure_error.log' } let(:logger) do @@ -9,7 +9,6 @@ Departure::Logger, write: true, say: true, write_no_newline: true ) end - let(:redirect_stderr) { true } let(:runner) { described_class.new(command, error_log_path, logger, redirect_stderr) } @@ -30,7 +29,6 @@ end let(:stdout) { temp_file.open } let(:wait_thread) { instance_double(Thread, value: status) } - let(:expected_command) { "#{command} 2> #{error_log_path}" } before do allow(Open3).to( @@ -87,7 +85,7 @@ it 'raises a Departure::Error' do expect { runner.run } - .to raise_exception(Departure::Error, "ROTO\n") + .to raise_exception(Departure::Error, redirect_stderr ? "ROTO\n" : "") end end @@ -112,4 +110,18 @@ end end end + + context 'redirect_stderr = true' do + let(:redirect_stderr) { true } + let(:expected_command) { "#{command} 2> #{error_log_path}" } + + it_should_behave_like '#run' + end + + context 'redirect_stderr = false' do + let(:redirect_stderr) { false } + let(:expected_command) { "#{command} 2>&1" } + + it_should_behave_like '#run' + end end