Skip to content

Commit

Permalink
Improve test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
sfinkens committed Jul 9, 2020
1 parent e03a497 commit e9997f7
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 4 deletions.
11 changes: 7 additions & 4 deletions satpy/readers/avhrr_l1b_gaclac.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,17 +116,20 @@ def __init__(self, filename, filename_info, filetype_info,
self.sensor = 'avhrr'
self.filename_info = filename_info

def get_dataset(self, key, info):
"""Get the dataset."""
def read_raw_data(self):
"""Create a pygac reader and read raw data from the file."""
if self.reader is None:
self.reader = self.reader_class(
interpolate_coords=self.interpolate_coords,
creation_site=self.creation_site,
**self.reader_kwargs)
self.reader.read(self.filename)
if np.all(self.reader.mask):
raise ValueError('All data is masked out')
if np.all(self.reader.mask):
raise ValueError('All data is masked out')

def get_dataset(self, key, info):
"""Get the dataset."""
self.read_raw_data()
if key.name in ['latitude', 'longitude']:
# Lats/lons are buffered by the reader
if key.name == 'latitude':
Expand Down
27 changes: 27 additions & 0 deletions satpy/tests/reader_tests/test_avhrr_l1b_gaclac.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ def test_init(self):
'Wrong reader class assigned to {}'.format(filename))

@mock.patch('satpy.readers.avhrr_l1b_gaclac.GACLACFile.__init__', return_value=None)
@mock.patch('satpy.readers.avhrr_l1b_gaclac.GACLACFile.read_raw_data')
@mock.patch('satpy.readers.avhrr_l1b_gaclac.GACLACFile._get_channel')
def test_get_dataset_channels(self, get_channel, *mocks):
from satpy.dataset import DatasetID
Expand Down Expand Up @@ -192,6 +193,27 @@ def test_get_dataset_channels(self, get_channel, *mocks):
fh.get_dataset(key=key, info={'name': 1})
get_channel.assert_called_with(key)

def test_read_raw_data(self):
fh = self._get_fh_mocked(reader=None,
interpolate_coords='interpolate_coords',
creation_site='creation_site',
reader_kwargs={'foo': 'bar'},
filename='myfile')
reader = mock.MagicMock(mask=[0])
reader_cls = mock.MagicMock(return_value=reader)
fh.reader_class = reader_cls
fh.read_raw_data()
reader_cls.assert_called_with(interpolate_coords='interpolate_coords',
creation_site='creation_site',
foo='bar')
reader.read.assert_called_with('myfile')

# Test exception if all data is masked
reader.mask = [1]
fh.reader = None
with self.assertRaises(ValueError):
fh.read_raw_data()

@mock.patch('satpy.readers.avhrr_l1b_gaclac.GACLACFile._update_attrs')
@mock.patch('satpy.readers.avhrr_l1b_gaclac.GACLACFile.slice')
@mock.patch('satpy.readers.avhrr_l1b_gaclac.GACLACFile._get_channel')
Expand Down Expand Up @@ -472,3 +494,8 @@ def test__slice(self, strip_invalid_lat, get_qual_flags):
pygac.utils.check_user_scanlines.assert_called_with(
start_line=5, end_line=6,
first_valid_lat=3, last_valid_lat=4, along_track=2)

# Test slicing with older pygac versions
pygac.utils.slice_channel.return_value = ('sliced', 'foo', 'bar')
data_slc = fh._slice(data)
self.assertEqual(data_slc, 'sliced')

0 comments on commit e9997f7

Please sign in to comment.