diff --git a/modules/bindings/tests/test_blast.py b/modules/bindings/tests/test_blast.py
index 8909db3e7409597619cd5013854da14f39902938..25de6cf082903176ce19bd26ef81f15a607195d7 100644
--- a/modules/bindings/tests/test_blast.py
+++ b/modules/bindings/tests/test_blast.py
@@ -2,6 +2,10 @@ import unittest
 from ost import *
 from ost import settings
 from ost.bindings import blast
+import re
+import tempfile
+import os
+import shutil
 
 class TestBlastBindings(unittest.TestCase):
   def setUp(self):
@@ -9,8 +13,6 @@ class TestBlastBindings(unittest.TestCase):
                                        'DFSLSVKFGNDVQHFKVLRDGAGKYFLWVVKFNSLNELV'+
                                        'DYHRSTSVSRNQQIFLRDIEQVP')
   def testAllowedMatricesAndPenalties(self):
-    self.assertRaises(blast.BlastError, blast.Blast, self.query, 
-                      'testfiles/seqdb', matrix='BLOSUM45')
     blast.Blast(self.query, 'testfiles/seqdb', matrix='BLOSUM45', 
                 gap_open=13, gap_ext=3)
     blast.Blast(self.query, 'testfiles/seqdb', matrix='BLOSUM80')
@@ -20,12 +22,17 @@ class TestBlastBindings(unittest.TestCase):
     blast.Blast(self.query, 'testfiles/seqdb', matrix='BLOSUM62')
     self.assertRaises(ValueError, blast.Blast, self.query, 'testfiles/seqdb', 
                       matrix='MUAHA')
+    self.assertRaises(RuntimeError, blast.Blast, self.query, 'testfiles/seqdb',
+                      blast_location='/I/do/not/exist')
+
   def testMissingDB(self):
     self.assertRaises(IOError, blast.Blast, self.query, 
                       'testfiles/nonexistentdb')
   
-  def testBlastOutput(self):
+  def testBlastExec(self):
+
     hits=blast.Blast(self.query, 'testfiles/seqdb')
+
     expected_hits=['1griA','1fhsA','3n84E','1mw9X']
     self.assertEqual(len(hits), 4)
 
@@ -41,13 +48,15 @@ class TestBlastBindings(unittest.TestCase):
     self.assertEqual(found, 4)
 
   def testBlastParseOutput(self):
-    raw_out=open('testfiles/raw_blastout.txt','r').readlines()
+
+    raw_out=open('testfiles/raw_blastout.txt','r').read()
+
     parsed_out=blast.ParseBlastOutput(raw_out)
 
     expected_ids=['1griA','1fhsA','3n84E','1mw9X']
     expected_evalues=[4.80893e-59,4.80893e-59,9.06925e-58,2.96523]
     expected_scores=[534,534,523,27]
-    expected_bitscores[210.305,210.305,206.068,15.0086]
+    expected_bitscores=[210.305,210.305,206.068,15.0086]
     expected_seqid=[1.0,1.0,1.0,0.30769]
 
     for i in range(4):
@@ -58,8 +67,32 @@ class TestBlastBindings(unittest.TestCase):
       self.assertAlmostEqual(patch.bit_score,expected_bitscores[i])
       self.assertAlmostEqual(patch.seqid,expected_seqid[i],places=5)
 
+  def testBlastVersion(self):
+
+    self.assertRaises(RuntimeError, blast.Blast, self.query, 'testfiles/seqdb',
+                      blast_location='/I/do/not/exist')
+    version=blast.BlastVersion()
+    self.assertIsInstance(version,str)
+    re_v = re.compile('\d+\.\d+\.\d+')
+    match=False
+    if re_v.match(version):
+      match=True
+    self.assertEqual(match,True)
+
+  def testBuildDatabase(self):
+
+    tmp_dir_name=tempfile.mkdtemp()
+    db_name=os.path.join(tmp_dir_name,'testdb')
+    blast.CreateDB('testfiles/multiple.fasta',db_name)
+    self.assertRaises(IOError,blast.CreateDB, 'testfiles/multiple.fasta',db_name,
+                      mkdb_cmd='I/am/not/a/damn/executable')
+
+    test_seq=seq.CreateSequence('B','ALRLVKDGFAVAIADYNDATATAVAAEINQAGGRAVAIKVDV'+
+                                    'SRRDQVFAAVEQARKALGGFNVIVNNAGIAPSTPIESIT')
+    blastout=blast.Blast(test_seq,db_name)
+    self.assertEqual(len(blastout),28)
+    shutil.rmtree(tmp_dir_name)
 
-    
 if __name__ == "__main__":
   # test if blast package is available on system, otherwise ignore tests
   try: