def test_auth(): cadc = Cadc() try: user = '******' password = '******' cert = 'cert' with pytest.raises(AttributeError): cadc.login(None, None, None) with pytest.raises(AttributeError): cadc.login(user=user) with pytest.raises(AttributeError): cadc.login(password=password) cadc.login(certificate_file=cert) assert tap.s.cert == cert cadc.logout() assert tap.s.cert is None with patch('astroquery.cadc.core.requests.Session') as ss: cookie = 'ABC' mock_resp = Mock() mock_resp.text = cookie ss.return_value.cookies = requests.cookies.RequestsCookieJar() ss.return_value.post.return_value = mock_resp cadc.login(user=user, password=password) assert tap.s.cookies[cadc_core.CADC_COOKIE_PREFIX] == \ '"{}"'.format(cookie) finally: # for the sake of other following tests reset the session cadc.logout()
def test_auth(): # the Cadc() will cause a remote data call to TAP service capabilities # To avoid this, use an anonymous session and replace it with an # auth session later cadc = Cadc(auth_session=requests.Session()) cadc.cadctap._session = authsession.AuthSession() user = '******' password = '******' cert = 'cert' with pytest.raises(AttributeError): cadc.login(None, None, None) with pytest.raises(AttributeError): cadc.login(user=user) with pytest.raises(AttributeError): cadc.login(password=password) cadc.login(certificate_file=cert) assert cadc.cadctap._session.credentials.get( 'ivo://ivoa.net/sso#tls-with-certificate').cert == cert # reset and try with user password/cookies cadc.cadctap._session = authsession.AuthSession() post_mock = Mock() cookie = 'ABC' mock_resp = Mock() mock_resp.text = cookie post_mock.return_value.cookies = requests.cookies.RequestsCookieJar() post_mock.return_value = mock_resp cadc._request = post_mock cadc.login(user=user, password=password) assert cadc.cadctap._session.credentials.get( 'ivo://ivoa.net/sso#cookie').cookies[cadc_core.CADC_COOKIE_PREFIX] == \ '"{}"'.format(cookie)
def test_login(monkeypatch): def get_access_url_mock(arg1, arg2): return "some.url" monkeypatch.setattr(cadc_core, 'get_access_url', get_access_url_mock) dummyTapHandler = DummyTapHandler() tap = Cadc(tap_plus_handler=dummyTapHandler) user = '******' password = '******' cert = 'cert' # default parameters parameters = {} parameters['cookie_prefix'] = cadc_core.CADC_COOKIE_PREFIX parameters['login_url'] = "some.url" parameters['verbose'] = False parameters['user'] = None parameters['password'] = None parameters['certificate_file'] = None tap.login(None, None, None) dummyTapHandler.check_call('login', parameters) # test with parameters dummyTapHandler.reset() parameters['user'] = user parameters['password'] = password parameters['certificate_file'] = cert tap.login(user, password, cert) dummyTapHandler.check_call('login', parameters)
def test_login_with_user_password(self): for auth_session in [ None, authsession.AuthSession(), requests.Session() ]: cadc = Cadc(auth_session=auth_session) now = datetime.utcnow() query = \ "select top 1 * from caom2.Plane where metaRelease>'{}'".\ format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 0 cadc.login(os.environ['CADC_USER'], os.environ['CADC_PASSWD']) query = "select top 1 * from caom2.Plane where metaRelease>'{}'".\ format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 1 # repeat after logout cadc.logout() query = \ "select top 1 * from caom2.Plane where metaRelease>'{}'".\ format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 0 # login in again cadc.login(os.environ['CADC_USER'], os.environ['CADC_PASSWD']) query = "select top 1 * from caom2.Plane where metaRelease>'{}'". \ format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 1
def test_login(self): cadc = Cadc() now = datetime.utcnow() cadc.login(os.environ['CADC_USER'], os.environ['CADC_PASSWD']) query = "select top 1 * from caom2.Plane where " \ "metaRelease>'{}'".format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.query(query) assert len(result) == 1
def test_login(self): cadc = Cadc() now = datetime.utcnow() cadc.login(os.environ['CADC_USER'], os.environ['CADC_PASSWD']) query = "select top 1 * from caom2.Plane where " \ "metaRelease>'{}'".format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.query(query) assert len(result) == 1
def test_list_jobs(self): cadc = Cadc() cadc.login(certificate_file=os.environ['CADC_CERT']) job = cadc.create_async( "select top 3 observationID from caom2.Observation where " "collection='IRIS' order by observationID") job = job.run().wait() job.raise_if_error() job.fetch_result().to_table() jobs = cadc.list_async_jobs() assert len(jobs) > 0 if len(jobs) > 5: jobs_subset = cadc.list_async_jobs(last=5) assert len(jobs_subset) == 5
def test_login_with_cert(self): # repeat previous test cadc = Cadc() cadc.logout() now = datetime.utcnow() # following query is to test login with certificates when an # anonymous query is executed first. cadc.exec_sync('select top 1 * from caom2.Observation') cadc.login(certificate_file=os.environ['CADC_CERT']) query = "select top 1 * from caom2.Plane where " \ "metaRelease>'{}'".format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 1 cadc.logout()
def test_login_with_cert(self): for auth_session in [requests.Session()]: cadc = Cadc(auth_session=auth_session) now = datetime.utcnow() query = \ "select top 1 * from caom2.Plane where metaRelease>'{}'".\ format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 0 # following query is to test login with certificates when an # anonymous query is executed first. cadc.login(certificate_file=os.environ['CADC_CERT']) query = \ "select top 1 * from caom2.Plane where metaRelease>'{}'".\ format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 1 cadc.logout() query = \ "select top 1 * from caom2.Plane where metaRelease>'{}'".\ format(now.strftime('%Y-%m-%dT%H:%M:%S.%f')) result = cadc.exec_sync(query) assert len(result) == 0