def test_item_undefined_length(self): """Test exception raised if item length undefined.""" bytestream = (b'\xFE\xFF\x00\xE0' b'\xFF\xFF\xFF\xFF' b'\x00\x00\x00\x01') fp = DicomBytesIO(bytestream) fp.is_little_endian = True with pytest.raises(ValueError): get_nr_fragments(fp)
def test_not_little_endian(self): """Test reading big endian raises exception""" bytestream = b'\xFE\xFF\x00\xE0' \ b'\x04\x00\x00\x00' \ b'\x01\x00\x00\x00' fp = DicomBytesIO(bytestream) fp.is_little_endian = False with pytest.raises(ValueError, match="'fp.is_little_endian' must be True"): get_nr_fragments(fp)
def test_single_fragment_no_delimiter(self): """Test single fragment is returned OK""" bytestream = b'\xFE\xFF\x00\xE0' \ b'\x04\x00\x00\x00' \ b'\x01\x00\x00\x00' fp = DicomBytesIO(bytestream) fp.is_little_endian = True assert 1 == get_nr_fragments(fp)
def test_item_bad_tag(self): """Test exception raised if item has unexpected tag""" bytestream = (b'\xFE\xFF\x00\xE0' b'\x04\x00\x00\x00' b'\x01\x00\x00\x00' b'\x10\x00\x10\x00' b'\x00\x00\x00\x00' b'\xFE\xFF\x00\xE0' b'\x04\x00\x00\x00' b'\x02\x00\x00\x00') fp = DicomBytesIO(bytestream) fp.is_little_endian = True msg = ( r"Unexpected tag '\(0010, 0010\)' at offset 12 when parsing the " r"encapsulated pixel data fragment items.") with pytest.raises(ValueError, match=msg): get_nr_fragments(fp)
def test_multi_fragments_no_delimiter(self): """Test multi fragments are returned OK""" bytestream = b'\xFE\xFF\x00\xE0' \ b'\x04\x00\x00\x00' \ b'\x01\x00\x00\x00' \ b'\xFE\xFF\x00\xE0' \ b'\x06\x00\x00\x00' \ b'\x01\x02\x03\x04\x05\x06' fp = DicomBytesIO(bytestream) fp.is_little_endian = True assert 2 == get_nr_fragments(fp)
def test_item_sequence_delimiter(self): """Test that the fragments are returned if seq delimiter hit.""" bytestream = (b'\xFE\xFF\x00\xE0' b'\x04\x00\x00\x00' b'\x01\x00\x00\x00' b'\xFE\xFF\xDD\xE0' b'\x00\x00\x00\x00' b'\xFE\xFF\x00\xE0' b'\x04\x00\x00\x00' b'\x02\x00\x00\x00') fp = DicomBytesIO(bytestream) fp.is_little_endian = True assert 1 == get_nr_fragments(fp)