def test_available_satpy_readers_known_cache(tmpdir, monkeypatch): """Test loading the satpy readers when the cache exists.""" p = tmpdir.join('satpy_available_readers.yaml') with open(p, 'w') as cfile: yaml.dump({}, cfile) monkeypatch.setattr('uwsift.workspace.importer.SATPY_READER_CACHE_FILE', str(p)) monkeypatch.setattr('uwsift.workspace.importer._SATPY_READERS', None) # create the cache _ = available_satpy_readers() mod_time1 = os.stat(p).st_mtime # load from the cache monkeypatch.setattr('uwsift.workspace.importer._SATPY_READERS', None) _ = available_satpy_readers() mod_time2 = os.stat(p).st_mtime assert mod_time1 == mod_time2, "Cache was not reused" # force recreation of the cache readers = available_satpy_readers(force_cache_refresh=True) mod_time3 = os.stat(p).st_mtime assert mod_time3 != mod_time1, "Cache was reused when it should have been recreated" assert isinstance(readers, list) assert len(readers) != 0 assert isinstance(readers[0], str)
def test_available_satpy_readers_no_cache(tmpdir, monkeypatch): """Test loading the satpy readers when we know the cache is missing.""" p = tmpdir.join('satpy_available_readers.yaml') monkeypatch.setattr('uwsift.workspace.importer.SATPY_READER_CACHE_FILE', str(p)) readers = available_satpy_readers() assert isinstance(readers, list) assert len(readers) != 0 assert isinstance(readers[0], str)
def test_available_satpy_readers_empty_cache(tmpdir, monkeypatch): """Test loading the satpy readers when the cache exists but is empty.""" p = tmpdir.join('satpy_available_readers.yaml') with open(p, 'w') as cfile: yaml.dump({}, cfile) monkeypatch.setattr('uwsift.workspace.importer.SATPY_READER_CACHE_FILE', str(p)) readers = available_satpy_readers() assert isinstance(readers, list) assert len(readers) != 0 assert isinstance(readers[0], str)
def _init_file_page(self): if self.AVAILABLE_READERS: readers = self.AVAILABLE_READERS else: satpy_readers = config.get('data_reading.readers') readers = available_satpy_readers(as_dict=True) readers = (r for r in readers if not satpy_readers or r['name'] in satpy_readers) readers = sorted(readers, key=lambda x: x.get('long_name', x['name'])) readers = OrderedDict((ri.get('long_name', ri['name']), ri['name']) for ri in readers) OpenFileWizard.AVAILABLE_READERS = readers for idx, (reader_short_name, reader_name) in enumerate(readers.items()): self.ui.readerComboBox.addItem(reader_short_name, reader_name) if self.config['default_reader'] == reader_name: self.ui.readerComboBox.setCurrentIndex(idx)
def test_available_satpy_readers_as_dict(): """Test asking for reader info as dictionaries.""" readers = available_satpy_readers(as_dict=True) assert isinstance(readers, list) assert len(readers) != 0 assert isinstance(readers[0], dict)
def test_available_satpy_readers_defaults(): """Test default behavior of the satpy reader function.""" readers = available_satpy_readers() assert isinstance(readers, list) assert len(readers) != 0 assert isinstance(readers[0], str) # names