Skip to content
Snippets Groups Projects
Commit 1a3b653d authored by James Graham's avatar James Graham
Browse files

Add test and functionality to get data from BT HyperCat

parent b597c2fa
Branches
No related tags found
No related merge requests found
import typing import typing
import requests import requests
import requests.auth
from datasources.connectors.base import BaseDataConnector, DataConnectorContainsDatasets, DataConnectorHasMetadata from datasources.connectors.base import BaseDataConnector, DataConnectorContainsDatasets, DataConnectorHasMetadata
...@@ -15,7 +16,14 @@ class HyperCat(DataConnectorContainsDatasets, DataConnectorHasMetadata, BaseData ...@@ -15,7 +16,14 @@ class HyperCat(DataConnectorContainsDatasets, DataConnectorHasMetadata, BaseData
def get_data(self, def get_data(self,
dataset: typing.Optional[str] = None, dataset: typing.Optional[str] = None,
query_params: typing.Optional[typing.Mapping[str, str]] = None): query_params: typing.Optional[typing.Mapping[str, str]] = None):
super().get_data(dataset, query_params) if dataset is None:
raise ValueError('When requesting data from a HyperCat catalogue you must provide a dataset href.')
location = dataset
r = requests.get(location,
params=query_params,
auth=requests.auth.HTTPBasicAuth(self.api_key, ''))
return r.text
def get_datasets(self, def get_datasets(self,
query_params: typing.Optional[typing.Mapping[str, str]] = None): query_params: typing.Optional[typing.Mapping[str, str]] = None):
......
...@@ -119,3 +119,20 @@ class ConnectorHyperCatTest(TestCase): ...@@ -119,3 +119,20 @@ class ConnectorHyperCatTest(TestCase):
self.assertIn('application/json', self.assertIn('application/json',
result['urn:X-hypercat:rels:isContentType']) result['urn:X-hypercat:rels:isContentType'])
def test_plugin_get_dataset_data(self):
"""
Test that we can get data from a single dataset within the catalogue.
"""
from decouple import config
api_key = config('HYPERCAT_BT_API_KEY')
dataset = self.dataset + '/datastreams/0'
connection = self.plugin(self.url,
api_key=api_key)
result = connection.get_data(dataset=dataset)
self.assertIsInstance(result, str)
self.assertGreaterEqual(len(result), 1)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment