示例#1
0
def test_ssl_error(requests):
    """Test HTTP error."""
    requests.get.side_effect = ssl.SSLError("The read operation timed out.")

    c = get_client()
    with pytest.raises(DataCiteHttpError):
        c.doi_get("10.1234/foo.bar")
def delete_item(item_id):
    rdb_client = get_client(wf)
    try:
        rdb_client.delete_bookmark(item_id)
        return 'Link deleted'
    except ServerNotFoundError:
        return 'Connection error'
示例#3
0
def test_connection_error(requests):
    """Test connection error."""
    requests.get.side_effect = ConnectionError()

    c = get_client()
    with pytest.raises(DataCiteHttpError):
        c.doi_get("10.1234/foo.bar")
示例#4
0
def test_connection_error(requests):
    """Test connection error."""
    requests.get.side_effect = ConnectionError()

    c = get_client()
    with pytest.raises(DataCiteHttpError):
        c.doi_get("10.1234/foo.bar")
示例#5
0
def test_ssl_error(requests):
    """Test HTTP error."""
    requests.get.side_effect = ssl.SSLError("The read operation timed out.")

    c = get_client()
    with pytest.raises(DataCiteHttpError):
        c.doi_get("10.1234/foo.bar")
示例#6
0
    def find_client(self, cedula):
        client_data = helpers.get_client(cedula)

        #Show colored TITLES
        print(Fore.GREEN + "\n", "CLIENT INFORMATION".center(80))
        print(Style.RESET_ALL)

        for client in client_data:
            print(*client, "\n", sep=', ')
示例#7
0
def test_metadata_delete_200():
    """Test."""
    responses.add(
        responses.DELETE,
        "{0}metadata/10.1234/example".format(APIURL),
        body="OK",
        status=200,
    )

    d = get_client()
    assert "OK" == d.metadata_delete("10.1234/example")
示例#8
0
def test_doi_get_403():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.doi_get("10.1234/1")
示例#9
0
def test_doi_get_200():
    """Test."""
    url = "http://example.org"
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body=url,
        status=200,
    )

    d = get_client()
    assert url == d.doi_get("10.1234/1")
示例#10
0
def test_doi_get_500():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.doi_get("10.1234/1")
示例#11
0
def test_doi_get_410():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Gone",
        status=410,
    )

    d = get_client()
    with pytest.raises(DataCiteGoneError):
        d.doi_get("10.1234/1")
示例#12
0
def test_metadata_get_401():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}metadata/10.1234/1".format(APIURL),
        body="Unauthorized",
        status=401,
    )

    d = get_client()
    with pytest.raises(DataCiteUnauthorizedError):
        d.metadata_get("10.1234/1")
示例#13
0
def test_doi_get_404():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Not Found",
        status=404,
    )

    d = get_client()
    with pytest.raises(DataCiteNotFoundError):
        d.doi_get("10.1234/1")
示例#14
0
def test_metadata_get_401():
    """Test."""
    responses.add(
        responses.GET,
        "{0}metadata/10.1234/1".format(APIURL),
        body="Unauthorized",
        status=401,
    )

    d = get_client()
    with pytest.raises(DataCiteUnauthorizedError):
        d.metadata_get("10.1234/1")
示例#15
0
def test_doi_post_401():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Unauthorized",
        status=401,
    )

    d = get_client()
    with pytest.raises(DataCiteUnauthorizedError):
        d.doi_post("10.1234/1", "http://example.org")
示例#16
0
def test_metadata_delete_404():
    """Test."""
    httpretty.register_uri(
        httpretty.DELETE,
        "{0}metadata/10.1234/example".format(APIURL),
        body="Not found",
        status=404,
    )

    d = get_client()
    with pytest.raises(DataCiteNotFoundError):
        d.metadata_delete("10.1234/example")
示例#17
0
def test_media_post_500():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}media/10.1234/1".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.media_post("10.1234/1", {'text/plain': 'http://example.org'})
示例#18
0
def test_metadata_delete_200():
    """Test."""
    httpretty.register_uri(
        httpretty.DELETE,
        "{0}metadata/10.1234/example".format(APIURL),
        body="OK",
        status=200,
    )

    d = get_client(test_mode=True)
    assert "OK" == d.metadata_delete("10.1234/example")
    assert httpretty.last_request().querystring['testMode'] == ["1"]
示例#19
0
def test_media_post_403():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}media/10.1234/1".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.media_post("10.1234/1", {'text/plain': 'http://example.org'})
示例#20
0
def test_metadata_delete_200():
    """Test."""
    httpretty.register_uri(
        httpretty.DELETE,
        "{0}metadata/10.1234/example".format(APIURL),
        body="OK",
        status=200,
    )

    d = get_client(test_mode=True)
    assert "OK" == d.metadata_delete("10.1234/example")
    assert httpretty.last_request().querystring['testMode'] == ["1"]
示例#21
0
def test_metadata_delete_500():
    """Test."""
    httpretty.register_uri(
        httpretty.DELETE,
        "{0}metadata/10.1234/example".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.metadata_delete("10.1234/example")
示例#22
0
def test_doi_post_500():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.doi_post("10.1234/1", "http://example.org")
示例#23
0
def test_metadata_post_500():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}metadata".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.metadata_post("<resource></resource>")
示例#24
0
def test_metadata_post_403():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}metadata".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.metadata_post("<resource></resource>")
示例#25
0
def test_metadata_post_401():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}metadata".format(APIURL),
        body="Unauthorized",
        status=401,
    )

    d = get_client()
    with pytest.raises(DataCiteUnauthorizedError):
        d.metadata_post("notxml")
示例#26
0
def test_doi_post_400():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Bad Request",
        status=400,
    )

    d = get_client()
    with pytest.raises(DataCiteBadRequestError):
        d.doi_post("baddoi", "http://invaliddomain.org")
示例#27
0
def test_metadata_delete_500():
    """Test."""
    httpretty.register_uri(
        httpretty.DELETE,
        "{0}metadata/10.1234/example".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.metadata_delete("10.1234/example")
示例#28
0
def test_doi_post_403():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.doi_post("10.1234/1", "http://example.org")
示例#29
0
def test_doi_get_500():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.doi_get("10.1234/1")
示例#30
0
def test_media_post_400():
    """Test."""
    responses.add(
        responses.POST,
        "{0}media/10.1234/1".format(APIURL),
        body="Bad Request",
        status=400,
    )

    d = get_client()
    with pytest.raises(DataCiteBadRequestError):
        d.media_post("10.1234/1", {'text/plain': 'http://invaliddomain.org'})
示例#31
0
def test_metadata_get_410():
    """Test."""
    responses.add(
        responses.GET,
        "{0}metadata/10.1234/1".format(APIURL),
        body="Gone",
        status=410,
    )

    d = get_client()
    with pytest.raises(DataCiteGoneError):
        d.metadata_get("10.1234/1")
示例#32
0
def test_metadata_get_404():
    """Test."""
    responses.add(
        responses.GET,
        "{0}metadata/10.1234/1".format(APIURL),
        body="Not Found",
        status=404,
    )

    d = get_client()
    with pytest.raises(DataCiteNotFoundError):
        d.metadata_get("10.1234/1")
示例#33
0
def test_metadata_get_500():
    """Test."""
    responses.add(
        responses.GET,
        "{0}metadata/10.1234/1".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.metadata_get("10.1234/1")
示例#34
0
def test_metadata_get_403():
    """Test."""
    responses.add(
        responses.GET,
        "{0}metadata/10.1234/1".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.metadata_get("10.1234/1")
示例#35
0
def test_doi_post_403():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.doi_post("10.1234/1", "http://example.org")
示例#36
0
def test_doi_post_400():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Bad Request",
        status=400,
    )

    d = get_client()
    with pytest.raises(DataCiteBadRequestError):
        d.doi_post("baddoi", "http://invaliddomain.org")
示例#37
0
def test_doi_get_410():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Gone",
        status=410,
    )

    d = get_client()
    with pytest.raises(DataCiteGoneError):
        d.doi_get("10.1234/1")
示例#38
0
def test_metadata_post_400():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}metadata".format(APIURL),
        body="Bad Request",
        status=400,
    )

    d = get_client()
    with pytest.raises(DataCiteBadRequestError):
        d.metadata_post("notxml")
示例#39
0
def test_doi_post_401():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Unauthorized",
        status=401,
    )

    d = get_client()
    with pytest.raises(DataCiteUnauthorizedError):
        d.doi_post("10.1234/1", "http://example.org")
示例#40
0
def test_media_get_403():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}media/10.1234/1".format(APIURL),
        body="login problem or dataset belongs to another party",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.media_get("10.1234/1")
示例#41
0
def test_doi_get_403():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.doi_get("10.1234/1")
示例#42
0
def test_doi_get_200():
    """Test."""
    url = "http://example.org"
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body=url,
        status=200,
    )

    d = get_client()
    assert url == d.doi_get("10.1234/1")
示例#43
0
def test_doi_post_500():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.doi_post("10.1234/1", "http://example.org")
示例#44
0
def test_media_get_403():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}media/10.1234/1".format(APIURL),
        body="login problem or dataset belongs to another party",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.media_get("10.1234/1")
示例#45
0
def test_media_get_404():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}media/10.1234/1".format(APIURL),
        body="Not Found",
        status=404,
    )

    d = get_client()
    with pytest.raises(DataCiteNotFoundError):
        d.media_get("10.1234/1")
示例#46
0
def test_media_post_500():
    """Test."""
    responses.add(
        responses.POST,
        "{0}media/10.1234/1".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client()
    with pytest.raises(DataCiteServerError):
        d.media_post("10.1234/1", {'text/plain': 'http://example.org'})
示例#47
0
def test_media_post_403():
    """Test."""
    responses.add(
        responses.POST,
        "{0}media/10.1234/1".format(APIURL),
        body="Forbidden",
        status=403,
    )

    d = get_client()
    with pytest.raises(DataCiteForbiddenError):
        d.media_post("10.1234/1", {'text/plain': 'http://example.org'})
示例#48
0
def test_media_post_401():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}media/10.1234/1".format(APIURL),
        body="Unauthorized",
        status=401,
    )

    d = get_client()
    with pytest.raises(DataCiteUnauthorizedError):
        d.media_post("10.1234/1", {'text/plain': 'http://example.org'})
示例#49
0
def test_metadata_delete_404():
    """Test."""
    httpretty.register_uri(
        httpretty.DELETE,
        "{0}metadata/10.1234/example".format(APIURL),
        body="Not found",
        status=404,
    )

    d = get_client()
    with pytest.raises(DataCiteNotFoundError):
        d.metadata_delete("10.1234/example")
示例#50
0
def test_doi_get_401():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="Unauthorized",
        status=401,
    )

    d = get_client()
    with pytest.raises(DataCiteUnauthorizedError):
        d.doi_get("10.1234/1")
示例#51
0
def test_metadata_get_200():
    """Test."""
    doc = "<resource></resource>"
    httpretty.register_uri(
        httpretty.GET,
        "{0}metadata/10.1234/1".format(APIURL),
        body=doc,
        status=200,
        content_type="application/xml",
    )

    d = get_client()
    assert doc == d.metadata_get("10.1234/1")
示例#52
0
def test_media_post_400():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}media/10.1234/1".format(APIURL),
        body="Bad Request",
        status=400,
    )

    d = get_client(test_mode=True)
    with pytest.raises(DataCiteBadRequestError):
        d.media_post("10.1234/1", {'text/plain': 'http://invaliddomain.org'})

    assert httpretty.last_request().querystring['testMode'] == ["1"]
示例#53
0
def test_media_get_500():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}media/10.1234/1".format(APIURL),
        body="Internal Server Error",
        status=500,
    )

    d = get_client(test_mode=True)
    with pytest.raises(DataCiteServerError):
        d.media_get("10.1234/1")

    assert httpretty.last_request().querystring['testMode'] == ["1"]
示例#54
0
def test_media_get_200():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}media/10.1234/1".format(APIURL),
        body="application/json=http://example.org/json\r\n"
             "text/plain=http://example.org/text\r\n",
        status=200,
    )

    d = get_client()
    assert d.media_get("10.1234/1") == \
        {u'application/json': u'http://example.org/json',
         u'text/plain': u'http://example.org/text'}
示例#55
0
def test_doi_post_412():
    """Test."""
    httpretty.register_uri(
        httpretty.POST,
        "{0}doi".format(APIURL),
        body="Precondition failed",
        status=412,
    )

    d = get_client(test_mode=True)
    with pytest.raises(DataCitePreconditionError):
        d.doi_post("10.1234/1", "http://example.org")

    assert httpretty.last_request().querystring['testMode'] == ["1"]
示例#56
0
def test_doi_get_204():
    """Test."""
    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body="No Content",
        status=204,
    )

    d = get_client(test_mode=True)
    with pytest.raises(DataCiteNoContentError):
        d.doi_get("10.1234/1")

    assert httpretty.last_request().querystring['testMode'] == ["1"]
示例#57
0
def test_timeout():
    """Test timeouts."""
    def callback(request, uri, headers):
        raise socket.timeout("timeout")

    httpretty.register_uri(
        httpretty.GET,
        "{0}doi/10.1234/1".format(APIURL),
        body=callback,
    )

    d = get_client(timeout=0.1)
    with pytest.raises(DataCiteHttpError):
        d.doi_get("10.1234/1")