示例#1
0
 def test_database_init_wrong_path(self):
     with self.assertRaises(FileNotFoundError):
         blast.Database(source_dir=self.test_dir /
                        Path("not_existing_path"),
                        name="test_db")
         blast.Database(source_dir=self.test_dir /
                        Path("data/blast_query_data/seqs.fasta"),
                        name="test_db")
示例#2
0
 def test_aggregate_wrong_dir(self):
     with self.assertRaises(FileNotFoundError):
         blast.Database(source_dir=Path(""), name="test_db")._aggregate(
             self.test_dir / Path("not existing"),
             Path("blast_input.fasta"))
         blast.Database(source_dir=Path(""), name="test_db")._aggregate(
             self.test_dir / Path("data/blast_query_data/seqs.fasta"),
             Path("blast_input.fasta"))
示例#3
0
 def test_clear_files(self):
     db, tmp = blast.Database(source_dir=self.test_dir /
                              Path("data/fasta_test_data"),
                              name="test_db").create()
     db.clear_files()
     self.assertFalse((self.test_dir / Path("test_db.nhr")).exists())
     self.assertFalse((self.test_dir / Path("test_db.nin")).exists())
     self.assertFalse((self.test_dir / Path("test_db.nsq")).exists())
示例#4
0
 def test_create(self, ):
     db, output = blast.Database(source_dir=self.test_dir /
                                 Path("data/fasta_test_data"),
                                 name="test_db").create()
     self.assertTrue(Path("test_db.nhr").exists())
     self.assertTrue(Path("test_db.nhr").exists())
     self.assertTrue(Path("test_db.nsq").exists())
     db.clear_files()
示例#5
0
    def test_repair_ok(self):
        db = blast.Database(source_dir=Path(""), name="test_db")
        result = db.repair_fasta(self.test_dir /
                                 Path("data/blast_query_data/seqs.fasta"))
        expected = """>seqs|1
ATGCTGATCG
>seqs|2
GACGGTACG"""
        self.assertEqual(result, expected)
示例#6
0
 def test_query_wrong_dir(self):
     with self.assertRaises(FileNotFoundError):
         db = blast.Database(source_dir=self.test_dir /
                             Path("data/fasta_test_data"),
                             name="test_db")
         db.create()
         db.query(self.test_dir / Path("data/blast_query_data/seqs.fasta"),
                  config={},
                  blast_format="10 qseqid sseqid score",
                  headers=tuple())
示例#7
0
 def test_query_wrong_command(self):
     with self.assertRaises(subprocess.SubprocessError):
         db = blast.Database(source_dir=self.test_dir /
                             Path("data/fasta_test_data"),
                             name="test_db")
         db.create()
         db.query(self.test_dir / Path("data/fasta_test_data/"),
                  blast_format="test_wrong_format",
                  config={"task": "blastn-short"},
                  headers=tuple())
     db.clear_files()
示例#8
0
 def test_query_wrong_kwargs(self):
     with self.assertRaises(ValueError):
         db = blast.Database(source_dir=self.test_dir /
                             Path("data/fasta_test_data"),
                             name="test_db")
         db.query(self.test_dir / Path("data/fasta_test_data"),
                  blast_format="",
                  headers=tuple(),
                  config={
                      "outfmt": "test",
                      "query": "test",
                  })
示例#9
0
 def test_query_wrong_type(self):
     with self.assertRaises(TypeError):
         db = blast.Database(source_dir=self.test_dir /
                             Path("data/fasta_test_data"),
                             name="test_db")
         db.query("not a path obj",
                  blast_format="",
                  config={"task": "blastn-short"},
                  headers=tuple())
         db.query(self.test_dir / Path("data/fasta_test_data"),
                  config="not a dict",
                  blast_format="",
                  headers=tuple())
示例#10
0
 def test_query_ok(self):
     db = blast.Database(source_dir=self.test_dir /
                         Path("data/blast_query_data"),
                         name="test_db")
     db.create()
     expected = pd.DataFrame(columns=['Virus', 'Host', 'Score'],
                             data=[['seqs|1', 'seqs|1', 10],
                                   ['seqs|2', 'seqs|2', 9]])
     res = db.query(self.test_dir / Path("data/blast_query_data"),
                    config={"task": "blastn-short"},
                    blast_format="10 qseqid sseqid score",
                    headers=('Virus', 'Host', 'Score'))
     self.assertIsInstance(res, pd.DataFrame)
     self.assertTrue(expected.equals(res))
示例#11
0
 def test_create_call(self, mock: Mock):
     blast.Database(source_dir=self.test_dir / Path("data/fasta_test_data"),
                    name="test_db").create()
     mock.assert_called_once()
示例#12
0
 def test_aggregate_wrong_type(self):
     with self.assertRaises(TypeError):
         db = blast.Database(source_dir=Path(""), name="test_db")
         db._aggregate("not a path obj", Path("blast_input.fasta"))
         db._aggregate(Path(""), "not a path obj")
示例#13
0
 def test_database_init_ok(self):
     try:
         blast.Database(source_dir=self.test_dir / Path("data"),
                        name="test_db")
     except:
         self.fail("Valid path caused exception.")
示例#14
0
 def test_database_init_wrong_instance(self):
     with self.assertRaises(TypeError):
         blast.Database(source_dir="not a path object", name="")
         blast.Database(source_dir=Path(""), name="not a str")
示例#15
0
 def test_aggregate_empty(self):
     with self.assertRaises(ValueError):
         blast.Database(source_dir=Path(""), name="test_db")._aggregate(
             self.test_dir / Path("data/fasta_test_empty_data"),
             Path("blast_input.fasta"))
示例#16
0
 def test_aggregate_ok(self):
     blast.Database(source_dir=Path(""), name="test_db")._aggregate(
         self.test_dir / Path("data/fasta_test_data"),
         Path("blast_input.fasta"))
     self.assertTrue(Path("blast_input.fasta").exists())
     self.assertTrue(os.path.getsize(Path("blast_input.fasta")) > 0)
示例#17
0
 def test_repair_wrong_type(self):
     db = blast.Database(source_dir=self.test_dir /
                         Path("data/fasta_test_data"),
                         name="test_db")
     with self.assertRaises(TypeError):
         db.repair_fasta("not a path object")
示例#18
0
 def test_repair_wrong_file(self):
     db = blast.Database(source_dir=Path(""), name="test_db")
     with self.assertRaises(FileNotFoundError):
         db.repair_fasta(self.test_dir / Path("data/fasta_test_data"))