def test_check_kwargs_missing(self): """Test _check_kwargs""" enc = Encoder(RLELossless) kwargs = { 'rows': 0, 'columns': 0, 'samples_per_pixel': 0, 'bits_allocated': 0, 'bits_stored': 0, 'pixel_representation': 0, 'number_of_frames': 0, 'photometric_interpretation': 'RGB' } assert enc._check_kwargs(kwargs) is None del kwargs['columns'] del kwargs['bits_allocated'] msg = r"Missing expected arguments: 'columns', 'bits_allocated'" with pytest.raises(TypeError, match=msg): enc._check_kwargs(kwargs)
def test_kwargs_from_ds(self): """Test Encoder.kwargs_from_ds()""" # Note no NumberOfFrames element ds = Dataset() ds.Rows = 10 ds.Columns = 12 ds.SamplesPerPixel = 1 ds.BitsAllocated = 8 ds.BitsStored = 8 ds.PixelRepresentation = 0 ds.PhotometricInterpretation = 'RGB' enc = Encoder(RLELossless) kwargs = enc.kwargs_from_ds(ds) assert 1 == kwargs['number_of_frames'] assert enc._check_kwargs(kwargs) is None # Test conversion of empty *Number of Frames* ds.NumberOfFrames = None kwargs = enc.kwargs_from_ds(ds) assert 1 == kwargs['number_of_frames'] # Test already present *Number of Frames* is unaffected ds.NumberOfFrames = 10 kwargs = enc.kwargs_from_ds(ds) assert 10 == kwargs['number_of_frames'] # Test missing elements del ds.Columns del ds.BitsAllocated msg = ( r"The following required elements are missing from the dataset: " r"'Columns', 'BitsAllocated'") with pytest.raises(AttributeError, match=msg): enc.kwargs_from_ds(ds) # Test VM 0 ds.Columns = None ds.BitsAllocated = None msg = (r"The following required dataset elements have a VM of 0: " r"'Columns', 'BitsAllocated'") with pytest.raises(AttributeError, match=msg): enc.kwargs_from_ds(ds)