def test_sequences(self): # Also from the DAP2 spec examples section b = base_dap_url('http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat.dds?xval<15') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat') b = base_dap_url('http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat.dods?xval<15') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat')
def test_pydap_urls(self): # Variable access, generated by pydap web interface b = base_dap_url('http://amoeba.ucsd.edu:8001/glacier.nc.ascii?var232%5B0:1:0%5D%5B0:1:0%5D%5B0:1:601%5D%5B0:1:401%5D&') self.assertEqual(b, 'http://amoeba.ucsd.edu:8001/glacier.nc') # Same thing, no port number b = base_dap_url('http://amoeba.ucsd.edu/glacier.nc.ascii?var232%5B0:1:0%5D%5B0:1:0%5D%5B0:1:601%5D%5B0:1:401%5D&') self.assertEqual(b, 'http://amoeba.ucsd.edu/glacier.nc')
def test_variable_access(self): b = base_dap_url('http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat.dds?g[20:21][40:42]') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat') b = base_dap_url('http://server.edu/grid-data/temp2.dat.das?grid[20:21][40:42]') self.assertEqual(b, 'http://server.edu/grid-data/temp2.dat') b = base_dap_url('http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat.dods?g[20:21][40:42]') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat')
def test_ref_urls(self): # From DAP2 spec, Examples section b = base_dap_url('http://server.edu/cgi-bin/nph-dods/data/temp.dat.dds') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/data/temp.dat') # DAS version b = base_dap_url('http://server.edu/cgi-bin/nph-dods/data/temp.dat.das') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/data/temp.dat') # DODS b = base_dap_url('http://server.edu/cgi-bin/nph-dods/data/temp.dat.dods') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/data/temp.dat')
def test_pydap_urls(self): # Variable access, generated by pydap web interface b = base_dap_url( 'http://amoeba.ucsd.edu:8001/glacier.nc.ascii?var232%5B0:1:0%5D%5B0:1:0%5D%5B0:1:601%5D%5B0:1:401%5D&' ) self.assertEqual(b, 'http://amoeba.ucsd.edu:8001/glacier.nc') # Same thing, no port number b = base_dap_url( 'http://amoeba.ucsd.edu/glacier.nc.ascii?var232%5B0:1:0%5D%5B0:1:0%5D%5B0:1:601%5D%5B0:1:401%5D&' ) self.assertEqual(b, 'http://amoeba.ucsd.edu/glacier.nc')
def test_sequences(self): # Also from the DAP2 spec examples section b = base_dap_url( 'http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat.dds?xval<15' ) self.assertEqual( b, 'http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat') b = base_dap_url( 'http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat.dods?xval<15' ) self.assertEqual( b, 'http://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat')
def test_ref_urls(self): # From DAP2 spec, Examples section b = base_dap_url( 'http://server.edu/cgi-bin/nph-dods/data/temp.dat.dds') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/data/temp.dat') # DAS version b = base_dap_url( 'http://server.edu/cgi-bin/nph-dods/data/temp.dat.das') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/data/temp.dat') # DODS b = base_dap_url( 'http://server.edu/cgi-bin/nph-dods/data/temp.dat.dods') self.assertEqual(b, 'http://server.edu/cgi-bin/nph-dods/data/temp.dat')
def test_variable_access(self): b = base_dap_url( 'http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat.dds?g[20:21][40:42]' ) self.assertEqual( b, 'http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat') b = base_dap_url( 'http://server.edu/grid-data/temp2.dat.das?grid[20:21][40:42]') self.assertEqual(b, 'http://server.edu/grid-data/temp2.dat') b = base_dap_url( 'http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat.dods?g[20:21][40:42]' ) self.assertEqual( b, 'http://server.edu/cgi-bin/nph-dods/grid-data/temp2.dat')
def _get_dataset_no_xmit(self, source_url): """ The core of the fetcher: function to grab an entire DAP dataset and return it as a dictionary. @note dods is base64-encoded! """ base_url = base_dap_url(source_url) das_url = base_url + '.das' dds_url = base_url + '.dds' dods_url = base_url + '.dods' logging.debug('Starting fetch of "%s"' % base_url) try: das = self.get_page(das_url) dds = self.get_page(dds_url) dods = self.get_page(dods_url) except ValueError, ve: logging.exception('Error on fetch of ' + base_url) raise ve
def test_fu(self): b = base_dap_url('http://foo.example.com/ds.nc') self.assertEqual(b, 'http://foo.example.com/ds.nc')
def test_numeric_hostname(self): # Most-basic DAP URL, not compressible b = base_dap_url('http://127.0.0.1:8001/etopo120.cdf') self.assertEqual(b, 'http://127.0.0.1:8001/etopo120.cdf')
def test_numeric_hostname_no_dap(self): b = base_dap_url('http://137.110.112.49:8001/') self.assertEqual(b, 'http://137.110.112.49:8001/')
def test_bad_urls(self): b = base_dap_url('ftp://is.not.valid/foo.nc') self.assertEqual(b, None) b = base_dap_url('webdav://is.no.good/either.cdf') self.assertEqual(b, None)
def test_https(self): b = base_dap_url( 'https://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat.dods?xval<15' ) self.assertEqual( b, 'https://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat')
def test_https(self): b = base_dap_url('https://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat.dods?xval<15') self.assertEqual(b, 'https://server.edu/cgi-bin/nph-dods/seq-data/temp3.dat')