Skip to content

Commit

Permalink
#405 - added test for PR 519
Browse files Browse the repository at this point in the history
  • Loading branch information
Hermann Romanek committed Nov 10, 2024
1 parent 563530a commit d4bdc94
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions src/tests/test_vcf.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def get_config():
config.genotype_format = "GT:GQ:DR:DV"
return config

def verify_common_fields(self, *args, **kwargs) -> Tuple[int, str, str]:
def verify_common_fields(self, *args, **kwargs) -> Tuple[int, str, str, str]:
"""
Verifies common fields, returns pos, ref and alt fields
"""
Expand All @@ -48,7 +48,21 @@ def verify_common_fields(self, *args, **kwargs) -> Tuple[int, str, str]:
self.assertEqual('chr1', contig)
self.assertEqual('Sniffles.unittest-1', id)

return int(pos), ref, alt
return int(pos), ref, alt, info

def parse_info(self, info: str) -> tuple[set[str], dict[str, str]]:
"""
Simple parsing of an info string
"""
flags = []
flds = {}
for fld in info.split(';'):
if '=' in fld:
key, value = fld.split('=')
flds[key] = value
else:
flags.append(fld)
return set(flags), flds

def get_vcf(self, reference: str):
vcf = VCF(self.get_config(), None)
Expand Down Expand Up @@ -89,7 +103,7 @@ def test_spec_ins(self):
1 a t C T A G g a
"""
def verify(*args, **kwargs):
pos, ref, alt = self.verify_common_fields(*args, **kwargs)
pos, ref, alt, _ = self.verify_common_fields(*args, **kwargs)
self.assertEqual(3, pos)
self.assertEqual('C', ref)
self.assertEqual('CTAG', alt)
Expand Down Expand Up @@ -120,10 +134,12 @@ def test_spec_del(self):
Alt a T - - a
"""
def verify(*args, **kwargs):
pos, ref, alt = self.verify_common_fields(*args, **kwargs)
pos, ref, alt, info = self.verify_common_fields(*args, **kwargs)
self.assertEqual(2, pos)
self.assertEqual('TCG', ref)
self.assertEqual('T', alt)
_, info_fields = self.parse_info(info)
self.assertEqual(pos + abs(int(info_fields['SVLEN'])) - 1, int(info_fields['END']))

vcf = self.get_vcf('aTCGa')
vcf.write_raw = Mock(side_effect=verify)
Expand Down Expand Up @@ -159,7 +175,7 @@ def mock_fetch(refname, start, end):
)

def verify(*args, **kwargs):
pos, ref, alt = self.verify_common_fields(*args, **kwargs)
pos, ref, alt, info = self.verify_common_fields(*args, **kwargs)
self.assertEqual(964631, pos)
self.assertEqual('CGGGTCCGCAGTGGGGATGTGCTGCCGGGAGGGGGGCGCGGGTCCGCAGTGGGGATGTGCTGCCGGGAGGGGGGCG', ref)
self.assertEqual('C', alt)
Expand All @@ -183,7 +199,7 @@ def test_unresolved_ins(self):
See https://github.com/fritzsedlazeck/Sniffles/issues/501
"""
def verify(*args, **kwargs):
pos, ref, alt = self.verify_common_fields(*args, **kwargs)
pos, ref, alt, info = self.verify_common_fields(*args, **kwargs)
self.assertEqual(2, pos)
self.assertEqual('T', ref)
self.assertEqual('<INS>', alt)
Expand Down

0 comments on commit d4bdc94

Please sign in to comment.