8000 Add tests for query_qualities · pysam-developers/pysam@2b5a2a4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2b5a2a4

Browse files
committed
Add tests for query_qualities
1 parent dbed309 commit 2b5a2a4

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

tests/AlignedSegment_test.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,55 @@ def testUpdateQual(self):
273273

274274
self.assertEqual(qual, b'\xff' * l_seq)
275275

276+
@unittest.expectedFailure # Setting to None does not reset cached value
277+
def testClearQual(self):
278+
a = pysam.AlignedSegment()
279+
a.query_sequence = "ATGC"
280+
a.query_qualities = pysam.qualitystring_to_array("qrst")
281+
a.query_qualities = None
282+
self.assertIsNone(a.query_qualities)
283+
284+
def testUpdateQualArrayB(self):
285+
a = pysam.AlignedSegment()
286+
a.query_sequence = "ATGC"
287+
a.query_qualities = array.array('B', [80, 81, 82, 83])
288+
self.assertEqual(len(a.query_qualities), 4)
289+
self.assertEqual(a.qual, "qrst")
290+
291+
@unittest.expectedFailure # Cached value produces 16 character a.qual instead of 4 characters
292+
def testUpdateQualArrayI(self):
293+
a = pysam.AlignedSegment()
294+
a.query_sequence = "ATGC"
295+
a.query_qualities = array.array('I', [80, 81, 82, 83])
296+
self.assertEqual(len(a.query_qualities), 4)
297+
self.assertEqual(a.qual, "qrst")
298+
299+
@unittest.expectedFailure # Cached value modified by qual.pop()
300+
def testUpdateQualList(self):
301+
a = pysam.AlignedSegment()
302+
a.query_sequence = "ATGC"
303+
qual = [80, 81, 82, 83]
304+
a.query_qualities = qual
305+
qual.pop()
306+
self.assertEqual(len(a.query_qualities), 4)
307+
self.assertEqual(a.qual, "qrst")
308+
309+
@unittest.expectedFailure # Can't set query_qualities from a string
310+
def testUpdateQualString(self):
311+
a = pysam.AlignedSegment()
312+
a.query_sequence = "ATGC"
313+
a.query_qualities = "qrst" # TypeError: cannot use a str to initialize an array with typecode 'B'
314+
self.assertEqual(len(a.query_qualities), 4)
315+
self.assertEqual(a.qual, "qrst")
316+
317+
@unittest.expectedFailure # Can't construct a.qual based on cached value (which is a tuple)
318+
def testUpdateQualTuple(self):
319+
a = pysam.AlignedSegment()
320+
a.query_sequence = "ATGC"
321+
a.query_qualities = (80, 81, 82, 83)
322+
self.assertEqual(len(a.query_qualities), 4)
323+
self.assertEqual(a.qual, "qrst")
324+
276325
def testLargeRead(self):
277326
"""build an example read."""
278327

0 commit comments

Comments
 (0)
0