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