class TestBench::Output::Raw
Constants
- Error
Attributes
current_batch[RW]
detail_setting[W]
previous_byte_offset[W]
verbose[W]
Public Class Methods
assure_detail_setting(detail_setting)
click to toggle source
# File lib/test_bench/output/raw.rb, line 328 def self.assure_detail_setting(detail_setting) unless detail_settings.include?(detail_setting) raise Error, "Invalid detail setting #{detail_setting.inspect} (Valid values: #{detail_settings.map(&:inspect).join(', ')})" end end
build(verbose: nil, detail: nil, omit_backtrace_pattern: nil, reverse_backtraces: nil, writer: nil, device: nil, styling: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 57 def self.build(verbose: nil, detail: nil, omit_backtrace_pattern: nil, reverse_backtraces: nil, writer: nil, device: nil, styling: nil) instance = new instance.configure(verbose: verbose, detail: detail, omit_backtrace_pattern: omit_backtrace_pattern, reverse_backtraces: reverse_backtraces, writer: writer, device: device, styling: styling) instance end
configure(receiver, attr_name: nil, **args)
click to toggle source
# File lib/test_bench/output/raw.rb, line 63 def self.configure(receiver, attr_name: nil, **args) attr_name ||= :raw_output instance = build(**args) receiver.public_send(:"#{attr_name}=", instance) instance end
default_detail_setting()
click to toggle source
# File lib/test_bench/output/raw.rb, line 342 def self.default_detail_setting detail_settings.fetch(0) end
detail_settings()
click to toggle source
# File lib/test_bench/output/raw.rb, line 334 def self.detail_settings [ :failure, :on, :off ] end
Public Instance Methods
batch_finished(batch_data)
click to toggle source
# File lib/test_bench/output/raw.rb, line 32 def batch_finished(batch_data) if batch_data.depth.zero? self.current_batch = nil end end
batch_starting(batch_data)
click to toggle source
# File lib/test_bench/output/raw.rb, line 26 def batch_starting(batch_data) if batch_data.depth.zero? self.current_batch = batch_data end end
comment(text)
click to toggle source
# File lib/test_bench/output/raw.rb, line 280 def comment(text) writer .indent .text(text) .newline end
configure(verbose: nil, detail: nil, omit_backtrace_pattern: nil, reverse_backtraces: nil, writer: nil, device: nil, styling: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 43 def configure(verbose: nil, detail: nil, omit_backtrace_pattern: nil, reverse_backtraces: nil, writer: nil, device: nil, styling: nil) unless detail.nil? self.class.assure_detail_setting(detail) end self.detail_setting = detail unless detail.nil? self.verbose = verbose unless verbose.nil? self.omit_backtrace_pattern = omit_backtrace_pattern unless omit_backtrace_pattern.nil? self.reverse_backtraces = reverse_backtraces unless reverse_backtraces.nil? Writer.configure(self, writer: writer, styling: styling, device: device) end
default_test_title()
click to toggle source
# File lib/test_bench/output/raw.rb, line 324 def default_test_title 'Test' end
detail(text)
click to toggle source
# File lib/test_bench/output/raw.rb, line 287 def detail(text) return unless verbose? || detail? if verbose? && !detail? text = "(detail omitted: #{text})" end writer .indent .text(text) .newline end
detail?(result=nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 71 def detail?(result=nil) result ||= current_batch&.result case detail_setting when :failure result != true when :on true when :off false end end
detail_setting()
click to toggle source
# File lib/test_bench/output/raw.rb, line 19 def detail_setting @detail_setting ||= Defaults.detail end
enter_context(title, batch_data: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 84 def enter_context(title, batch_data: nil) batch_starting(batch_data) unless batch_data.nil? return if title.nil? writer .indent .escape_code(:green) .text(title) .escape_code(:reset_fg) .newline writer.increase_indentation end
enter_file(path)
click to toggle source
# File lib/test_bench/output/raw.rb, line 300 def enter_file(path) text = "Running #{path}" writer.text(text).newline self.previous_byte_offset = writer.byte_offset end
error(error)
click to toggle source
# File lib/test_bench/output/raw.rb, line 276 def error(error) print_error(error) end
exit_context(title, result, batch_data: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 99 def exit_context(title, result, batch_data: nil) return if title.nil? writer.decrease_indentation if verbose? text = "Finished context #{title.inspect} (Result: #{result_text(result)})" color = result ? :green : :red writer .indent .escape_code(:faint).escape_code(:italic).escape_code(color) .text(text) .escape_code(:reset_fg).escape_code(:reset_italic).escape_code(:reset_intensity) .newline end if writer.indentation_depth.zero? writer.newline end ensure batch_finished(batch_data) unless batch_data.nil? end
exit_file(path, result)
click to toggle source
# File lib/test_bench/output/raw.rb, line 308 def exit_file(path, result) unless writer.byte_offset > previous_byte_offset writer .escape_code(:faint) .text("(Nothing written)") .escape_code(:reset_intensity) .newline writer.newline end end
finish_fixture(fixture, result, batch_data: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 256 def finish_fixture(fixture, result, batch_data: nil) return unless verbose? fixture_class = fixture.class.inspect text = "Finished fixture (Fixture: #{fixture_class}, Result: #{result_text(result)})" writer.decrease_indentation writer .indent .escape_code(:magenta) .text(text) .escape_code(:reset_fg) .newline ensure batch_finished(batch_data) unless batch_data.nil? end
finish_test(title, result, batch_data: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 172 def finish_test(title, result, batch_data: nil) batch_data = nil if verbose? if batch_data&.passed? && title.nil? return end writer.decrease_indentation if batch_data.nil? print_test_result(title, result) end ensure batch_finished(batch_data) unless batch_data.nil? end
previous_byte_offset()
click to toggle source
# File lib/test_bench/output/raw.rb, line 38 def previous_byte_offset @previous_byte_offset ||= 0 end
print_test_result(title, result)
click to toggle source
# File lib/test_bench/output/raw.rb, line 189 def print_test_result(title, result) title ||= default_test_title if writer.styling? text = title elsif result text = title else text = "#{title} (failed)" end color = result ? :green : :red writer.indent if result writer.escape_code(:green) else writer.escape_code(:bold).escape_code(:red) end writer.text(text) writer.escape_code(:reset_fg) unless result writer.escape_code(:reset_intensity) end writer.newline end
result_text(result)
click to toggle source
# File lib/test_bench/output/raw.rb, line 320 def result_text(result) result ? 'pass' : 'failure' end
skip_context(title)
click to toggle source
# File lib/test_bench/output/raw.rb, line 125 def skip_context(title) return if title.nil? writer .indent .escape_code(:yellow) .text(title) .escape_code(:reset_fg) .newline end
skip_test(title)
click to toggle source
# File lib/test_bench/output/raw.rb, line 220 def skip_test(title) title ||= default_test_title if writer.styling? text = title else text = "#{title} (skipped)" end writer .indent .escape_code(:yellow) .text(text) .escape_code(:reset_fg) .newline end
start_fixture(fixture, batch_data: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 237 def start_fixture(fixture, batch_data: nil) batch_starting(batch_data) unless batch_data.nil? return unless verbose? fixture_class = fixture.class.inspect text = "Starting fixture (Fixture: #{fixture_class})" writer .indent .escape_code(:blue) .text(text) .escape_code(:reset_fg) .newline writer.increase_indentation end
start_test(title, batch_data: nil)
click to toggle source
# File lib/test_bench/output/raw.rb, line 136 def start_test(title, batch_data: nil) batch_starting(batch_data) unless batch_data.nil? batch_data = nil if verbose if batch_data&.passed? && title.nil? return end if batch_data.nil? if title.nil? text = "Starting test" else text = "Starting test #{title.inspect}" end writer .indent .escape_code(:faint) .escape_code(:italic) .escape_code(:blue) .text(text) .escape_code(:reset_fg) .escape_code(:reset_italic) .escape_code(:reset_intensity) .newline else result = batch_data.result print_test_result(title, result) end writer.increase_indentation end
verbose()
click to toggle source
# File lib/test_bench/output/raw.rb, line 11 def verbose instance_variable_defined?(:@verbose) ? @verbose : @verbose = Defaults.verbose end
Also aliased as: verbose?