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_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_login_with_user_password(self): cadc = Cadc() cadc.logout() 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.exec_sync(query) cadc.logout() assert len(result) == 1
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_logout(monkeypatch): dummyTapHandler = DummyTapHandler() monkeypatch.setattr(cadc_core, 'get_access_url', get_access_url_mock) tap = Cadc(tap_plus_handler=dummyTapHandler) # default parameters parameters = {} parameters['verbose'] = False tap.logout(False) dummyTapHandler.check_call('logout', parameters) # test with parameters dummyTapHandler.reset() parameters['verbose'] = True tap.logout(True) dummyTapHandler.check_call('logout', parameters)
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() 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 assert cadc.cadcdatalink._session.credentials.get( 'ivo://ivoa.net/sso#tls-with-certificate').cert == cert # reset and try with user password/cookies cadc.logout() for service in (cadc.cadctap, cadc.cadcdatalink): assert len(service._session.credentials.credentials) == 1 assert securitymethods.ANONYMOUS in service._session.credentials.credentials.keys( ) 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) assert cadc.cadcdatalink._session.credentials.get( 'ivo://ivoa.net/sso#cookie').cookies[cadc_core.CADC_COOKIE_PREFIX] == \ '"{}"'.format(cookie) cadc.logout() for service in (cadc.cadctap, cadc.cadcdatalink): assert len(service._session.credentials.credentials) == 1 assert securitymethods.ANONYMOUS in service._session.credentials.credentials.keys( )
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