Skip to content

Commit

Permalink
precommit
Browse files Browse the repository at this point in the history
  • Loading branch information
JJFlorian committed Apr 23, 2024
1 parent 61d84b1 commit 37f24b3
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 3 deletions.
64 changes: 62 additions & 2 deletions api/tests/test_bro_import.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import pytest
from django.conf import settings
from requests.exceptions import RequestException
from requests.exceptions import HTTPError, RequestException

from api.bro_import import bulk_import
from api.bro_import import bulk_import, object_import
from api.tests import fixtures

organisation = fixtures.organisation
Expand Down Expand Up @@ -44,3 +44,63 @@ def test_fetch_bro_ids_fail(mocker, bulk_importer):

with pytest.raises(bulk_import.FetchBROIDsError):
bulk_importer._fetch_bro_ids("url.com")


@pytest.fixture
def gmn_object_importer(organisation):
return object_import.GMNObjectImporter(
bro_domain="GMN", bro_id="GMN1234567890", data_owner=organisation.uuid
)


@pytest.mark.django_db
def test_object_importer_create_download_url(gmn_object_importer):
url = gmn_object_importer._create_download_url()

assert (
url
== f"{settings.BRO_UITGIFTE_SERVICE_URL}/gm/gmn/v1/objects/GMN1234567890?fullHistory=nee"
)


@pytest.mark.django_db
def test_object_importer_download_xml(mocker, gmn_object_importer):
expected_content = b"<xml>fake_data</xml>"
mock_get = mocker.patch("requests.get")
mock_response = mocker.Mock()
mock_response.raise_for_status = mocker.Mock()
mock_response.content = expected_content
mock_get.return_value = mock_response

# Test
url = "https://example.com/data.xml"
result = gmn_object_importer._download_xml(url)

# Assert
assert result == expected_content


@pytest.mark.django_db
def test_download_xml_http_error(mocker, gmn_object_importer):
# Setup
mock_get = mocker.patch("requests.get")
mock_response = mocker.Mock()
mock_response.raise_for_status.side_effect = HTTPError("Error occurred")
mock_get.return_value = mock_response

# Test
url = "https://example.com/data.xml"

# Assert that an HTTPError is raised
with pytest.raises(HTTPError):
gmn_object_importer._download_xml(url)


@pytest.mark.django_db
def test_convert_xml_to_json(gmn_object_importer):
xml = b"<xml>fake_data</xml>"
expected_json = {"xml": "fake_data"}

json_data = gmn_object_importer._convert_xml_to_json(xml)

assert json_data == expected_json
37 changes: 36 additions & 1 deletion api/tests/test_bro_upload.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest

from api.bro_upload import delivery
from api.bro_upload import delivery, utils

expected_xml_str = """<registrationRequest xmlns="http://www.broservices.nl/xsd/isgmn/1.0"
xmlns:brocom="http://www.broservices.nl/xsd/brocommon/3.0"
Expand Down Expand Up @@ -94,3 +94,38 @@ def test_xml_generator2():
sourcedocs_data={},
)
generator.create_xml_file()


def test_simlify_validation_errors():
input_data = [
{
"type": "missing",
"loc": ["requestReference"],
"msg": "Field required",
"input": {},
"url": "https://errors.pydantic.dev/2.7/v/missing",
},
{
"type": "missing",
"loc": ["deliveryAccountableParty"],
"msg": "Field required",
"input": {},
"url": "https://errors.pydantic.dev/2.7/v/missing",
},
{
"type": "missing",
"loc": ["qualityRegime"],
"msg": "Field required",
"input": {},
"url": "https://errors.pydantic.dev/2.7/v/missing",
},
]
expected_output = {
"requestReference": "Field required",
"deliveryAccountableParty": "Field required",
"qualityRegime": "Field required",
}

output = utils.simplify_validation_errors(input_data)

assert output == expected_output

0 comments on commit 37f24b3

Please sign in to comment.