@@ -273,6 +273,55 @@ def testUpdateQual(self):
273
273
274
274
self .assertEqual (qual , b'\xff ' * l_seq )
275
275
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
+
276
325
def testLargeRead (self ):
277
326
"""build an example read."""
278
327
0 commit comments