Source code for wub.tests.test_wrappers_dnadiff

import unittest

import tempfile
import os

from wub.wrappers import dnadiff
from wub.util import cmd as cmd_util
from wub.simulate import seq as sim_seq

error_rate = 0.1
ref_length = 5000


[docs]class TestWrappersDnadiff(unittest.TestCase): """Test dnadiff wrapper.""" def _generate_test_data(self): """Generate test data for dnadiff test.""" fh_ref = tempfile.NamedTemporaryFile(suffix=".fas", delete=False, mode='w') self.ref_fasta = fh_ref.name fh_target = tempfile.NamedTemporaryFile(suffix=".fas", delete=False, mode='w') self.target_fasta = fh_target.name self.ref = sim_seq.simulate_sequence(ref_length) nr_errors = int(len(self.ref) * error_rate) self.target = sim_seq.add_errors(self.ref, nr_errors, 'substitution') fh_ref.write(">ref\n{}\n".format(self.ref)) fh_ref.flush() fh_ref.close() fh_target.write(">target\n{}\n".format(self.target)) fh_target.flush() fh_target.close() def _cleanup_test_data(self): """Cleanup test dataset.""" os.unlink(self.ref_fasta) os.unlink(self.target_fasta)
[docs] @unittest.skipIf(not cmd_util.find_executable('dnadiff'), "Dnadiff binary not found, skipping integration tests.") def test_dnadiff(self): """Test dnadiff wrapper.""" self._generate_test_data() res, _, _ = dnadiff.dnadiff(self.ref_fasta, self.target_fasta) self.assertAlmostEqual( res['Alignments']['1-to-1']['AvgIdentity'].ref, 90.0, places=0) self._cleanup_test_data()