Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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(
        )
Ejemplo n.º 7
0
 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