diff --git a/bookwyrm/connectors/inventaire.py b/bookwyrm/connectors/inventaire.py index e180dc62..e9f53856 100644 --- a/bookwyrm/connectors/inventaire.py +++ b/bookwyrm/connectors/inventaire.py @@ -67,7 +67,7 @@ class Connector(AbstractConnector): extracted = list(data.get("entities").values()) try: data = extracted[0] - except KeyError: + except (KeyError, IndexError): raise ConnectorException("Invalid book data") # flatten the data so that images, uri, and claims are on the same level return { diff --git a/bookwyrm/tests/connectors/test_inventaire_connector.py b/bookwyrm/tests/connectors/test_inventaire_connector.py index 6536bae7..65325d02 100644 --- a/bookwyrm/tests/connectors/test_inventaire_connector.py +++ b/bookwyrm/tests/connectors/test_inventaire_connector.py @@ -269,10 +269,14 @@ class Inventaire(TestCase): responses.GET, "https://inventaire.io/?action=by-uris&uris=hello", ) - data = {"wdt:P629": "hello"} - self.connector.get_work_from_edition_data(data) + data = {"wdt:P629": ["hello"]} + with patch("bookwyrm.connectors.inventaire.Connector.get_book_data") as mock: + self.connector.get_work_from_edition_data(data) + self.assertEqual(mock.call_count, 1) + args = mock.call_args[0] + self.assertEqual(args[0], "https://inventaire.io?action=by-uris&uris=hello") - data = {"wdt:P629": None} + data = {"wdt:P629": [None]} with self.assertRaises(ConnectorException): self.connector.get_work_from_edition_data(data)