From 612662ff76365dc7a4baf16c3076986cf9ab15f1 Mon Sep 17 00:00:00 2001 From: Prakhar54-byte Date: Mon, 6 Jul 2026 02:03:52 +0530 Subject: [PATCH] fix(download): replace sparql.method attr with sparql.setMethod('POST') Using direct attribute assignment on SPARQLWrapper is silently ignored; the wrapper defaults to GET for all queries. Large SPARQL queries (e.g. those returned by collection endpoints) exceed GET URL-length limits and fail. The correct API is setMethod(). Also add setMethod() to the DummySPARQL test stub in conftest.py so the unit test suite does not break when the real API call is made. Closes # --- databusclient/api/download.py | 2 +- tests/conftest.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/databusclient/api/download.py b/databusclient/api/download.py index 312af45..b3d5eda 100644 --- a/databusclient/api/download.py +++ b/databusclient/api/download.py @@ -590,7 +590,7 @@ def _query_sparql_endpoint(endpoint_url, query, databus_key=None) -> dict: Dictionary containing the query results. """ sparql = SPARQLWrapper(endpoint_url) - sparql.method = "POST" + sparql.setMethod("POST") sparql.setQuery(query) sparql.setReturnFormat(JSON) if databus_key is not None: diff --git a/tests/conftest.py b/tests/conftest.py index 5f4c0a2..df626dc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -10,6 +10,9 @@ class DummySPARQL: def __init__(self, *args, **kwargs): pass + def setMethod(self, method): + self._method = method + def setQuery(self, q): self._q = q