Loading tests/test_csm.py +16 −18 Original line number Diff line number Diff line Loading @@ -6,6 +6,14 @@ from plio.io.io_gdal import GeoDataset import csmapi from knoten import csm @pytest.fixture def mock_dem(): mock_dem = mock.MagicMock(spec_set=GeoDataset) mock_dem.no_data_value = 10 mock_dem.read_array.return_value = [[100]] mock_dem.latlon_to_pixel.return_value = (0.5,0.5) return mock_dem @pytest.fixture def mock_sensor(): mock_sensor = mock.MagicMock(spec=csmapi.RasterGM) Loading @@ -28,16 +36,12 @@ def test_generate_ground_point_with_imagecoord(mock_sensor, pt): mock_sensor.imageToGround.assert_called_once_with(pt, height) @mock.patch.object(csm, 'get_radii', return_value=(10,10)) @mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0)) @mock.patch.object(csm, '_compute_intersection_distance', return_value=0) def test_generate_ground_point_with_dtm(mock_sensor, pt, _): # Passing the mock_dem fixture fails for some reason. The # isinstance(obj, GeoDataset) check fails, causing the singldispath # to never dispatch to the func under test. mock_dem = mock.MagicMock(spec_set=GeoDataset) mock_dem.no_data_value = 10 mock_dem.read_array.return_value = [[100]] mock_dem.latlon_to_pixel.return_value = (0.5,0.5) @mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0)) def test_generate_ground_point_with_dtm(mock_get_radii, mock_compute_intsesection, mock_pyproj_transformer, mock_sensor, pt, mock_dem): csm.generate_ground_point(mock_dem, pt, mock_sensor) # This call is mocked so that the intitial intersection and # one iteration should occur. Therefore, the call count Loading @@ -48,16 +52,10 @@ from collections import namedtuple @mock.patch.object(csm, 'get_radii', return_value=(10,10)) @mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0)) def test_generate_ground_point_with_dtm_ndv(mock_sensor, pt): # Passing the mock_dem fixture fails for some reason. The # isinstance(obj, GeoDataset) check fails, causing the singldispath # to never dispatch to the func under test. mock_dem = mock.MagicMock(spec_set=GeoDataset) # If the no data value equals the height, this should raise a value error def test_generate_ground_point_with_dtm_ndv(mock_get_radii, mock_pyproj_transformer, mock_sensor, pt, mock_dem): mock_dem.no_data_value = 100 mock_dem.read_array.return_value = [[100]] mock_dem.latlon_to_pixel.return_value = (0.5,0.5) with pytest.raises(ValueError): csm.generate_ground_point(mock_dem, pt, mock_sensor) Loading Loading
tests/test_csm.py +16 −18 Original line number Diff line number Diff line Loading @@ -6,6 +6,14 @@ from plio.io.io_gdal import GeoDataset import csmapi from knoten import csm @pytest.fixture def mock_dem(): mock_dem = mock.MagicMock(spec_set=GeoDataset) mock_dem.no_data_value = 10 mock_dem.read_array.return_value = [[100]] mock_dem.latlon_to_pixel.return_value = (0.5,0.5) return mock_dem @pytest.fixture def mock_sensor(): mock_sensor = mock.MagicMock(spec=csmapi.RasterGM) Loading @@ -28,16 +36,12 @@ def test_generate_ground_point_with_imagecoord(mock_sensor, pt): mock_sensor.imageToGround.assert_called_once_with(pt, height) @mock.patch.object(csm, 'get_radii', return_value=(10,10)) @mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0)) @mock.patch.object(csm, '_compute_intersection_distance', return_value=0) def test_generate_ground_point_with_dtm(mock_sensor, pt, _): # Passing the mock_dem fixture fails for some reason. The # isinstance(obj, GeoDataset) check fails, causing the singldispath # to never dispatch to the func under test. mock_dem = mock.MagicMock(spec_set=GeoDataset) mock_dem.no_data_value = 10 mock_dem.read_array.return_value = [[100]] mock_dem.latlon_to_pixel.return_value = (0.5,0.5) @mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0)) def test_generate_ground_point_with_dtm(mock_get_radii, mock_compute_intsesection, mock_pyproj_transformer, mock_sensor, pt, mock_dem): csm.generate_ground_point(mock_dem, pt, mock_sensor) # This call is mocked so that the intitial intersection and # one iteration should occur. Therefore, the call count Loading @@ -48,16 +52,10 @@ from collections import namedtuple @mock.patch.object(csm, 'get_radii', return_value=(10,10)) @mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0)) def test_generate_ground_point_with_dtm_ndv(mock_sensor, pt): # Passing the mock_dem fixture fails for some reason. The # isinstance(obj, GeoDataset) check fails, causing the singldispath # to never dispatch to the func under test. mock_dem = mock.MagicMock(spec_set=GeoDataset) # If the no data value equals the height, this should raise a value error def test_generate_ground_point_with_dtm_ndv(mock_get_radii, mock_pyproj_transformer, mock_sensor, pt, mock_dem): mock_dem.no_data_value = 100 mock_dem.read_array.return_value = [[100]] mock_dem.latlon_to_pixel.return_value = (0.5,0.5) with pytest.raises(ValueError): csm.generate_ground_point(mock_dem, pt, mock_sensor) Loading