Пример #1
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()
Пример #2
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(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)
Пример #3
0
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)
Пример #4
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
Пример #5
0
 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
Пример #6
0
 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
Пример #7
0
 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
Пример #8
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()
Пример #9
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