def test_dataset_snippets(
admin_client,
data_catalog,
reference_data,
language_json,
access_rights_json,
actors_json,
spatial_json,
temporal_json,
relation_json,
remote_resources_json,
metadata_owner_json,
):
data = {
"title": {"fi": "datasetti"},
"language": language_json["language"],
"data_catalog": data_catalog.id,
"access_rights": access_rights_json["access_rights"],
"actors": actors_json["actors"],
"spatial": [spatial_json],
"temporal": temporal_json["temporal"],
"relation": relation_json["relation"],
"remote_resources": remote_resources_json["remote_resources"],
"metadata_owner": metadata_owner_json["metadata_owner"],
}
res = admin_client.post(
"/v3/datasets?include_nulls=true", data, content_type="application/json"
)
assert res.status_code == 201
assert len(res.data["language"]) == 2
assert len(res.data["actors"]) == 2
# can't compare datetimes directly due to time zones, need to parse first
assert len(res.data["temporal"]) == 2
assert parse_datetime(temporal_json["temporal"][0]["start_date"]) == parse_datetime(
res.data["temporal"][0]["start_date"]
)
assert parse_datetime(temporal_json["temporal"][0]["end_date"]) == parse_datetime(
res.data["temporal"][0]["end_date"]
)
assert parse_datetime(temporal_json["temporal"][1]["start_date"]) == parse_datetime(
res.data["temporal"][1]["start_date"]
)
assert res.data["temporal"][1]["end_date"] == None
assert len(res.data["spatial"]) == 1
assert_nested_subdict(spatial_json, res.data["spatial"][0])
assert (
res.data["access_rights"]["description"]
== access_rights_json["access_rights"]["description"]
)
assert len(res.data["relation"]) == 1
assert_nested_subdict(relation_json, res.data)
assert_nested_subdict(
remote_resources_json["remote_resources"],
res.json()["remote_resources"],
check_list_length=True,
)
assert_nested_subdict(
metadata_owner_json["metadata_owner"],
res.json()["metadata_owner"],
)