diff --git a/astroquery/alma/tests/test_alma.py b/astroquery/alma/tests/test_alma.py index b06aaff57a..df6822599f 100644 --- a/astroquery/alma/tests/test_alma.py +++ b/astroquery/alma/tests/test_alma.py @@ -2,13 +2,25 @@ import numpy as np import os from astropy.tests.helper import pytest - -from .. import Alma from ...utils.testing_tools import MockResponse from ...exceptions import (InvalidQueryError) +# keyring is an optional dependency required by the alma module. +try: + import keyring + HAS_KEYRING = True +except ImportError: + HAS_KEYRING = False + +if HAS_KEYRING: + from .. import Alma + +SKIP_TESTS = not HAS_KEYRING + + DATA_DIR = os.path.join(os.path.dirname(__file__), 'data') + def data_path(filename): return os.path.join(DATA_DIR, filename) @@ -36,6 +48,7 @@ def data_path(filename): 'initial_response.html'} } + def url_mapping(url): """ Map input URLs to output URLs for the staging test @@ -50,9 +63,10 @@ def url_mapping(url): else: return mapping[url] + def alma_request(request_type, url, params=None, payload=None, data=None, **kwargs): - if isinstance(DATA_FILES[request_type][url],dict): + if isinstance(DATA_FILES[request_type][url], dict): payload = (payload if payload is not None else params if params is not None else data if data is not None else @@ -73,10 +87,11 @@ def alma_request(request_type, url, params=None, payload=None, data=None, return response - def _get_dataarchive_url(*args): return 'http://almascience.eso.org' + +@pytest.mark.skipif('SKIP_TESTS') def test_SgrAstar(monkeypatch): # Local caching prevents a remote query here @@ -95,6 +110,8 @@ def test_SgrAstar(monkeypatch): assert len(result) == 92 assert b'2011.0.00217.S' in result['Project code'] + +@pytest.mark.skipif('SKIP_TESTS') def test_staging(monkeypatch): monkeypatch.setattr(Alma, '_get_dataarchive_url', _get_dataarchive_url) @@ -105,14 +122,15 @@ def test_staging(monkeypatch): target = 'NGC4945' project_code = '2011.0.00121.S' - payload = {'project_code':project_code, - 'source_name_resolver':target,} + payload = {'project_code': project_code, + 'source_name_resolver': target} result = alma.query(payload=payload) uid_url_table = alma.stage_data(result['Asdm uid']) assert len(uid_url_table) == 2 +@pytest.mark.skipif('SKIP_TESTS') def test_validator(monkeypatch): monkeypatch.setattr(Alma, '_get_dataarchive_url', _get_dataarchive_url) @@ -120,12 +138,13 @@ def test_validator(monkeypatch): monkeypatch.setattr(alma, '_get_dataarchive_url', _get_dataarchive_url) monkeypatch.setattr(alma, '_request', alma_request) - with pytest.raises(InvalidQueryError) as exc: alma.query(payload={'invalid_parameter': 1}) assert 'invalid_parameter' in str(exc.value) + +@pytest.mark.skipif('SKIP_TESTS') def test_parse_staging_request_page_asdm(monkeypatch): """ Example: @@ -157,6 +176,8 @@ def test_parse_staging_request_page_asdm(monkeypatch): assert tbl[0]['uid'] == 'uid___A002_X47bd4d_X4c7.asdm.sdm.tar' np.testing.assert_approx_equal(tbl[0]['size'], -1e-9) + +@pytest.mark.skipif('SKIP_TESTS') def test_parse_staging_request_page_mous(monkeypatch): monkeypatch.setattr(Alma, '_get_dataarchive_url', _get_dataarchive_url) alma = Alma() @@ -173,6 +194,8 @@ def test_parse_staging_request_page_mous(monkeypatch): np.testing.assert_approx_equal(tbl[0]['size'], 0.2093) assert len(tbl) == 26 + +@pytest.mark.skipif('SKIP_TESTS') def test_parse_staging_request_page_mous_cycle0(monkeypatch): monkeypatch.setattr(Alma, '_get_dataarchive_url', _get_dataarchive_url) alma = Alma() diff --git a/astroquery/alma/tests/test_alma_remote.py b/astroquery/alma/tests/test_alma_remote.py index d3f0a6a8db..b5bad09152 100644 --- a/astroquery/alma/tests/test_alma_remote.py +++ b/astroquery/alma/tests/test_alma_remote.py @@ -1,15 +1,25 @@ # Licensed under a 3-clause BSD style license - see LICENSE.rst -import os import tempfile import shutil import numpy as np from astropy.tests.helper import pytest, remote_data from astropy import coordinates from astropy import units as u -from .. import Alma -from ...exceptions import LoginError +# keyring is an optional dependency required by the alma module. +try: + import keyring + HAS_KEYRING = True +except ImportError: + HAS_KEYRING = False +if HAS_KEYRING: + from .. import Alma + +SKIP_TESTS = not HAS_KEYRING + + +@pytest.mark.skipif('SKIP_TESTS') @remote_data class TestAlma: @@ -19,6 +29,7 @@ def setup_class(cls): @pytest.fixture() def temp_dir(self, request): my_temp_dir = tempfile.mkdtemp() + def fin(): shutil.rmtree(my_temp_dir) request.addfinalizer(fin) @@ -97,7 +108,7 @@ def test_cycle1(self, temp_dir): target = 'NGC4945' project_code = '2012.1.00912.S' - + payload = {'project_code':project_code, 'source_name_alma':target,} result = alma.query(payload=payload) @@ -130,7 +141,7 @@ def test_cycle0(self, temp_dir): target = 'NGC4945' project_code = '2011.0.00121.S' - + payload = {'project_code':project_code, 'source_name_alma':target,} result = alma.query(payload=payload) @@ -155,7 +166,7 @@ def test_cycle0(self, temp_dir): assert len(data) == 8 def test_help(self): - + help_list = Alma._get_help_page() assert help_list[0][0] == u'Position' assert help_list[1][0] == u'Energy' diff --git a/astroquery/cosmosim/tests/test_cosmosim_remote.py b/astroquery/cosmosim/tests/test_cosmosim_remote.py index 07fe711419..e8cd6b1c83 100644 --- a/astroquery/cosmosim/tests/test_cosmosim_remote.py +++ b/astroquery/cosmosim/tests/test_cosmosim_remote.py @@ -3,22 +3,21 @@ import tempfile import shutil from astropy.tests.helper import pytest, remote_data +from ...exceptions import LoginError + try: import keyring HAS_KEYRING = True except ImportError: HAS_KEYRING = False -try: + +if HAS_KEYRING: from ...cosmosim import CosmoSim - COSMOSIM_IMPORTED = True -except ImportError: - COSMOSIM_IMPORTED = False -from ...exceptions import LoginError -SKIP_TESTS = not(HAS_KEYRING and COSMOSIM_IMPORTED) +SKIP_TESTS = not HAS_KEYRING #@pytest.mark.skipif('SKIP_TESTS') #@remote_data #class TestEso: # def __init__(): - + diff --git a/astroquery/eso/tests/test_eso.py b/astroquery/eso/tests/test_eso.py index b1e5ca1779..3bf47bd9cf 100644 --- a/astroquery/eso/tests/test_eso.py +++ b/astroquery/eso/tests/test_eso.py @@ -1,16 +1,19 @@ # Licensed under a 3-clause BSD style license - see LICENSE.rst import os -from distutils.version import LooseVersion -import astropy -try: - from ...eso import Eso - ESO_IMPORTED = True -except ImportError: - ESO_IMPORTED = False from astropy.tests.helper import pytest from ...utils.testing_tools import MockResponse -SKIP_TESTS = not ESO_IMPORTED +# keyring is an optional dependency required by the eso module. +try: + import keyring + HAS_KEYRING = True +except ImportError: + HAS_KEYRING = False + +if HAS_KEYRING: + from ...eso import Eso + +SKIP_TESTS = not HAS_KEYRING DATA_DIR = os.path.join(os.path.dirname(__file__), 'data') @@ -22,12 +25,12 @@ def data_path(filename): 'amber_form.html', 'http://archive.eso.org/wdb/wdb/adp/phase3_main/form': 'vvv_sgra_form.html', - }, + }, 'POST': {'http://archive.eso.org/wdb/wdb/eso/amber/query': 'amber_sgra_query.tbl', 'http://archive.eso.org/wdb/wdb/adp/phase3_main/query': 'vvv_sgra_survey_response.tbl', - } + } } @@ -64,6 +67,7 @@ def test_SgrAstar(monkeypatch): assert len(result) == 50 assert 'GC_IRS7' in result['Object'] + @pytest.mark.skipif('SKIP_TESTS') def test_vvv(monkeypatch): eso = Eso() diff --git a/astroquery/eso/tests/test_eso_remote.py b/astroquery/eso/tests/test_eso_remote.py index a28d8fbe2c..afb997ccb9 100644 --- a/astroquery/eso/tests/test_eso_remote.py +++ b/astroquery/eso/tests/test_eso_remote.py @@ -2,19 +2,19 @@ import tempfile import shutil from astropy.tests.helper import pytest, remote_data +from ...exceptions import LoginError + +# keyring is an optional dependency required by the eso module. try: import keyring HAS_KEYRING = True except ImportError: HAS_KEYRING = False -try: + +if HAS_KEYRING: from ...eso import Eso - ESO_IMPORTED = True -except ImportError: - ESO_IMPORTED = False -from ...exceptions import LoginError -SKIP_TESTS = not(HAS_KEYRING and ESO_IMPORTED) +SKIP_TESTS = not HAS_KEYRING instrument_list = [u'fors1', u'fors2', u'sphere', u'vimos', u'omegacam', u'hawki', u'isaac', u'naco', u'visir', u'vircam', u'apex',