test/test_helper.rb in macroape-3.3.3 vs test/test_helper.rb in macroape-3.3.4

- old
+ new

@@ -1,12 +1,71 @@ $lib_folder = File.dirname(__FILE__) + '/../lib' $LOAD_PATH.unshift $lib_folder require 'test/unit' +require 'stringio' + +require 'macroape/cli/find_threshold' +require 'macroape/cli/find_pvalue' +require 'macroape/cli/eval_similarity' +require 'macroape/cli/eval_alignment' +require 'macroape/cli/preprocess_collection' +require 'macroape/cli/scan_collection' +require 'macroape/cli/align_motifs' module Helpers + # from minitest + def self.capture_io(&block) + orig_stdout, orig_stderr = $stdout, $stderr + captured_stdout, captured_stderr = StringIO.new, StringIO.new + $stdout, $stderr = captured_stdout, captured_stderr + yield + return {stdout: captured_stdout.string, stderr: captured_stderr.string} + ensure + $stdout = orig_stdout + $stderr = orig_stderr + end + + # Method stubs $stdin not STDIN ! + def self.provide_stdin(input, &block) + orig_stdin = $stdin + $stdin = StringIO.new(input) + yield + ensure + $stdin = orig_stdin + end + + def self.capture_output(&block) + capture_io(&block)[:stdout] + end + def self.capture_stderr(&block) + capture_io(&block)[:stderr] + end + def self.obtain_pvalue_by_threshold(args) - IO.popen("ruby -I #{$lib_folder} #{$lib_folder}/macroape/exec/find_pvalue.rb #{args}",&:read).strip.split.last + find_pvalue_output(args).strip.split.last end def self.exec_cmd(executable, param_list) - "ruby -I #{$lib_folder} #{$lib_folder}/macroape/exec/#{executable}.rb #{param_list}" + "ruby -I #{$lib_folder} #{$lib_folder}/../bin/#{executable} #{param_list}" end + def self.find_threshold_output(param_list) + capture_output{ Macroape::CLI::FindThreshold.main(param_list.split) } + end + def self.align_motifs_output(param_list) + capture_output{ Macroape::CLI::AlignMotifs.main(param_list.split) } + end + def self.find_pvalue_output(param_list) + capture_output{ Macroape::CLI::FindPValue.main(param_list.split) } + end + def self.eval_similarity_output(param_list) + capture_output{ Macroape::CLI::EvalSimilarity.main(param_list.split) } + end + def self.eval_alignment_output(param_list) + capture_output{ Macroape::CLI::EvalAlignment.main(param_list.split) } + end + def self.scan_collection_output(param_list) + capture_output{ Macroape::CLI::ScanCollection.main(param_list.split) } + end + def self.run_preprocess_collection(param_list) + Macroape::CLI::PreprocessCollection.main(param_list.split) + end + end