Skip to content

Commit

Permalink
add coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
mki-c2c committed Jan 24, 2025
1 parent 630d30a commit b12878b
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 0 deletions.
Empty file added tests/__init__.py
Empty file.
39 changes: 39 additions & 0 deletions tests/test_gn_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from requests.exceptions import HTTPError
import requests_mock
from geonetwork import GnApi
from geonetwork.exceptions import APIVersionException, ParameterException


@pytest.fixture
Expand Down Expand Up @@ -37,6 +38,19 @@ def site_callback(request, context):
assert "401" in str(err.value)


def test_unsupported_version():
with requests_mock.Mocker() as m:
cookies = requests_mock.CookieJar()
cookies.set("XSRF-TOKEN", "dummy_xsrf", path="/geonetwork")

def site_callback(request, context):
return {"system/platform/version": "0.1.1"}
m.get('http://geonetwork/api/site', json=site_callback, cookies=cookies)
with pytest.raises(APIVersionException) as err:
GnApi("http://geonetwork/api")
assert err.value.args[0]["code"] == 501


def test_record_zip(init_gn):
with requests_mock.Mocker() as m:

Expand All @@ -47,3 +61,28 @@ def record_callback(request, context):
m.get('http://geonetwork/api/records/1234', content=record_callback)
zipdata = init_gn.get_record_zip("1234")
assert zipdata == b"dummy_zip"


def test_record_zip_unknown_uuid(init_gn):
with requests_mock.Mocker() as m:
m.get('http://geonetwork/api/records/1234', content=b"ok")
m.get('http://geonetwork/api/records/1232', status_code=404)
with pytest.raises(ParameterException) as err:
init_gn.get_record_zip("1232")
assert err.value.args[0]["code"] == 404


def test_upload_zip(init_gn):
with requests_mock.Mocker() as m:

def record_callback(request, context):
assert request.headers.get("accept") == "application/json"
assert request.headers.get('Content-Length') == '184'
assert request.headers.get('X-XSRF-TOKEN') == "dummy_xsrf"
assert 'multipart/form-data' in request.headers.get("Content-Type")
assert "application/zip" in request.text
assert "dummy_zip" in request.text
return {"created": "success"}
m.post('http://geonetwork/api/records', json=record_callback)
zipdata = b"dummy_zip"
init_gn.put_record_zip(zipdata)
20 changes: 20 additions & 0 deletions tests/test_gn_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,26 @@ def test_post():
assert resp.text == "post"


def test_headers():
gns = GnSession()
with requests_mock.Mocker() as m:

def header_callback(request, context):
return dict(request.headers)
m.get("http://bla", json=header_callback)
resp = gns.get("http://bla")
assert resp.json().get("test-header") is None
gns.set_base_header("Test-Header", "test")
gns.set_base_header("referer", "http://me")
resp = gns.get("http://bla")
assert resp.json().get("Test-Header") == "test"
assert resp.json().get("referer") == "http://me"
resp = gns.get("http://bla")
assert gns.pop_base_header("referer") == "http://me"
resp = gns.get("http://bla")
assert resp.json().get("referer") is None


def test_auth():
gns = GnSession(("test", "test"))
with requests_mock.Mocker() as m:
Expand Down

0 comments on commit b12878b

Please sign in to comment.