class TestRadarServer(object): @recorder.use_cassette('thredds_radarserver_metadata') def setup(self): self.server = 'http://thredds.ucar.edu/thredds/radarServer/' self.client = RadarServer(self.server + 'nexrad/level2/IDD') def test_stations(self): assert 'KFTG' in self.client.stations def test_float_attrs(self): stn = self.client.stations['KFTG'] assert stn.elevation == 1675.0 assert stn.latitude == 39.78 assert stn.longitude == -104.53 def test_metadata(self): assert 'Reflectivity' in self.client.variables def test_valid_stations(self): q = self.client.query() q.stations('KFTG', 'KTLX') assert self.client.validate_query(q), 'Bad validation check' def test_invalid_stations(self): q = self.client.query() q.stations('KFOO', 'KTLX') assert not self.client.validate_query(q), 'Bad validation check' @recorder.use_cassette('thredds_radarserver_level2_single') def test_raw_catalog(self): dt = datetime(2015, 6, 15, 12, 0, 0) q = self.client.query().stations('KFTG').time(dt) cat = self.client.get_catalog_raw(q).strip() assert cat[-10:] == b'</catalog>' @recorder.use_cassette('thredds_radarserver_level2_single') def test_good_query(self): dt = datetime(2015, 6, 15, 12, 0, 0) q = self.client.query().stations('KFTG').time(dt) cat = self.client.get_catalog(q) assert len(cat.datasets) == 1 @recorder.use_cassette('thredds_radarserver_level3_bad') def test_bad_query_raises(self): dt = datetime(2015, 6, 15, 12, 0, 0) client = RadarServer(self.server + '/nexrad/level3/IDD') q = client.query().stations('FTG').time(dt) with pytest.raises(BadQueryError): client.get_catalog(q) @recorder.use_cassette('thredds_radarserver_level3_good') def test_good_level3_query(self): dt = datetime(2015, 6, 15, 12, 0, 0) client = RadarServer(self.server + '/nexrad/level3/IDD/') q = client.query().stations('FTG').time(dt).variables('N0Q') cat = client.get_catalog(q) assert len(cat.datasets) == 1
class TestRadarServer(object): @recorder.use_cassette('thredds_radarserver_metadata') def setup(self): self.server = 'http://thredds.ucar.edu/thredds/radarServer/' self.client = RadarServer(self.server + 'nexrad/level2/IDD') def test_stations(self): assert 'KFTG' in self.client.stations def test_float_attrs(self): stn = self.client.stations['KFTG'] eq_(stn.elevation, 1675.0) eq_(stn.latitude, 39.78) eq_(stn.longitude, -104.53) def test_metadata(self): assert 'Reflectivity' in self.client.variables def test_valid_stations(self): q = self.client.query() q.stations('KFTG', 'KTLX') assert self.client.validate_query(q), 'Bad validation check' def test_invalid_stations(self): q = self.client.query() q.stations('KFOO', 'KTLX') assert not self.client.validate_query(q), 'Bad validation check' @recorder.use_cassette('thredds_radarserver_level2_single') def test_raw_catalog(self): dt = datetime(2015, 6, 15, 12, 0, 0) q = self.client.query().stations('KFTG').time(dt) cat = self.client.get_catalog_raw(q).strip() eq_(cat[-10:], b'</catalog>') @recorder.use_cassette('thredds_radarserver_level2_single') def test_good_query(self): dt = datetime(2015, 6, 15, 12, 0, 0) q = self.client.query().stations('KFTG').time(dt) cat = self.client.get_catalog(q) eq_(len(cat.datasets), 1) @recorder.use_cassette('thredds_radarserver_level3_bad') @raises(BadQueryError) def test_bad_query_raises(self): dt = datetime(2015, 6, 15, 12, 0, 0) client = RadarServer(self.server + '/nexrad/level3/IDD') q = client.query().stations('FTG').time(dt) client.get_catalog(q) @recorder.use_cassette('thredds_radarserver_level3_good') def test_good_level3_query(self): dt = datetime(2015, 6, 15, 12, 0, 0) client = RadarServer(self.server + '/nexrad/level3/IDD/') q = client.query().stations('FTG').time(dt).variables('N0Q') cat = client.get_catalog(q) eq_(len(cat.datasets), 1)
class TestRadarServer(object): """Test radar server functionality for accessing data.""" @recorder.use_cassette('thredds_radarserver_metadata') def setup(self): """Set up server and client for tests.""" self.server = 'http://thredds.ucar.edu/thredds/radarServer/' self.client = RadarServer(self.server + 'nexrad/level2/IDD') def test_stations(self): """Test parsing of the station information from the server.""" assert 'KFTG' in self.client.stations def test_float_attrs(self): """Test parsing of values from the station information on the server.""" stn = self.client.stations['KFTG'] assert stn.elevation == 1675.0 assert stn.latitude == 39.78 assert stn.longitude == -104.53 def test_metadata(self): """Test parsing of variable information from server.""" assert 'Reflectivity' in self.client.variables def test_valid_stations(self): """Test validating a query with valid stations.""" q = self.client.query() q.stations('KFTG', 'KTLX') assert self.client.validate_query(q), 'Bad validation check' def test_invalid_stations(self): """Test validating a query with invalid stations.""" q = self.client.query() q.stations('KFOO', 'KTLX') assert not self.client.validate_query(q), 'Bad validation check' @recorder.use_cassette('thredds_radarserver_level2_single') def test_raw_catalog(self): """Test getting raw catalog bytes.""" dt = datetime(2015, 6, 15, 12, 0, 0) q = self.client.query().stations('KFTG').time(dt) cat = self.client.get_catalog_raw(q).strip() assert cat[-10:] == b'</catalog>' @recorder.use_cassette('thredds_radarserver_level2_single') def test_good_query(self): """Test making a good request.""" dt = datetime(2015, 6, 15, 12, 0, 0) q = self.client.query().stations('KFTG').time(dt) cat = self.client.get_catalog(q) assert len(cat.datasets) == 1 @recorder.use_cassette('thredds_radarserver_level3_bad') def test_bad_query_raises(self): """Test that a bad query raises an error.""" dt = datetime(2015, 6, 15, 12, 0, 0) client = RadarServer(self.server + '/nexrad/level3/IDD') q = client.query().stations('FTG').time(dt) with pytest.raises(BadQueryError): client.get_catalog(q) @recorder.use_cassette('thredds_radarserver_level3_good') def test_good_level3_query(self): """Test that a valid level 3 query succeeds.""" dt = datetime(2015, 6, 15, 12, 0, 0) client = RadarServer(self.server + '/nexrad/level3/IDD/') q = client.query().stations('FTG').time(dt).variables('N0Q') cat = client.get_catalog(q) assert len(cat.datasets) == 1