Sha256: ec82e034aca77e23c00aeeba60cfd2c5654d6b4979d84d8c595f08bb28b05b43

Contents?: true

Size: 1.94 KB

Versions: 6

Compression:

Stored size: 1.94 KB

Contents

require 'spec_helper'
require 'generators/templates/blast_db'

describe "Quorum::FetchTools::BlastDb" do
  describe "#execute_blast_db_cmd" do
    before(:each) do
      # Set the args as though we executed bin/fetch
      @args = {
        :fetch_tool           => "blastdbcmd",
        :blast_hit_id         => nil,
        :blast_hit_display_id => nil,
        :blast_algo           => nil,
        :fetch_database_names => "test",

        :log_directory   => File.expand_path(
          "../../dummy/quorum/log", __FILE__
        ),
        :tmp_directory   => File.expand_path(
          "../../dummy/quorum/tmp", __FILE__
        ),
        :fetch_database  => File.expand_path(
          "../../dummy/quorum/blastdb", __FILE__
        )
      }
    end

    it "executes blastdbcmd for blastn and returns correct sequence" do
      @args[:blast_hit_id]         = "gnl|BL_ORD_ID|0"
      @args[:blast_hit_display_id] = "TOG900080"
      @args[:blast_algo]           = "blastn"

      seqs = File.readlines(
        File.expand_path("../../data/nucl_seqs.txt", __FILE__)
      )
      seqs[0].gsub!(">", "")
      seqs.insert(0, ">" + @args[:blast_hit_id] + " ")

      # Sequence #execute_blast_db_cmd should return.
      seq = seqs.slice(0,3).join("").gsub("\n", "")

      fetch = Quorum::FetchTools::BlastDb.new(@args)
      lambda {
        output = capture(:stdout) {
          fetch.execute_blast_db_cmd
        }
        output.gsub("\n", "").should eq(seq)
      }.should_not raise_error
    end

    it "returns error message if filtered sequence.length != 1" do
      @args[:blast_hit_id]         = "null"
      @args[:blast_hit_display_id] = "null"
      @args[:blast_algo]           = "blastp"
      fetch = Quorum::FetchTools::BlastDb.new(@args)
      lambda {
        output = capture(:stdout) {
          fetch.execute_blast_db_cmd
        }
        output.should eq("An error occurred while processing your request.")
      }.should_not raise_error
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
quorum-0.8.2 spec/templates/blast_db_spec.rb
quorum-0.8.1 spec/templates/blast_db_spec.rb
quorum-0.8.0 spec/templates/blast_db_spec.rb
quorum-0.7.1 spec/templates/blast_db_spec.rb
quorum-0.7.0 spec/templates/blast_db_spec.rb
quorum-0.6.0 spec/templates/blast_db_spec.rb