Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_guess_endpoint(self):
with self.app.test_request_context('/?endpoint=http://url-endpoint/from-url/sparql'):
endpoint, _ = gquery.guess_endpoint_uri('', self.loader)
self.assertIn('from-url', endpoint,
'Should match endpoint given in url')
with self.app.test_request_context('/'):
endpoint, _ = gquery.guess_endpoint_uri('', self.loader)
self.assertIn('from-file', endpoint,
'Should match endpoint in endpoint.txt')
rq, _ = self.loader.getTextForName('test-rq')
endpoint, _ = gquery.guess_endpoint_uri(rq, self.loader)
self.assertIn('from-decorator', endpoint,
'Should match endpoint in test-rq.rq')
def test_sparql_transformer(self):
rq, _ = self.loader.getTextForName('test-json')
endpoint, _ = gquery.guess_endpoint_uri(rq, self.loader)
self.assertEqual('http://dbpedia.org/sparql', endpoint, 'Should match endpoint in test-json.json')
resp, status, headers = utils.dispatchSPARQLQuery(rq, self.loader, content=None, requestArgs={},
acceptHeader='application/json',
requestUrl='http://', formData={})
self.assertEqual(status, 200)
self.assertIsInstance(resp, list)
self.assertIn('id', resp[0])
def test_get_yaml_decorators(self):
rq, _ = self.loader.getTextForName('test-sparql')
decorators = gquery.get_yaml_decorators(rq)
# Query always exist -- the rest must be present on the file.
self.assertIn('query', decorators, 'Should have a query field')
self.assertIn('summary', decorators, 'Should have a summary field')
self.assertIn('pagination', decorators,
'Should have a pagination field')
self.assertIn('enumerate', decorators, 'Should have a enumerate field')
self.assertIsInstance(
decorators['summary'], six.string_types, 'Summary should be text')
self.assertIsInstance(
decorators['pagination'], int, 'Pagination should be numeric')
self.assertIsInstance(
decorators['enumerate'], list, 'Enumerate should be a list')
def test_guess_endpoint(self):
with self.app.test_request_context('/?endpoint=http://url-endpoint/from-url/sparql'):
endpoint, _ = gquery.guess_endpoint_uri('', self.loader)
self.assertIn('from-url', endpoint,
'Should match endpoint given in url')
with self.app.test_request_context('/'):
endpoint, _ = gquery.guess_endpoint_uri('', self.loader)
self.assertIn('from-file', endpoint,
'Should match endpoint in endpoint.txt')
rq, _ = self.loader.getTextForName('test-rq')
endpoint, _ = gquery.guess_endpoint_uri(rq, self.loader)
self.assertIn('from-decorator', endpoint,
'Should match endpoint in test-rq.rq')
def test_projection(self, mock_get):
mock_get.return_value = self.setMockGetResponse()
rq, _ = self.loader.getTextForName('test-projection')
resp, status, headers = utils.dispatchSPARQLQuery(rq, self.loader, content=None, requestArgs={'id': 'http://dbpedia.org/resource/Frida_Kahlo'},
acceptHeader='application/json',
requestUrl='http://mock-endpoint/sparql', formData={})
self.validateTestResponse(resp)
def test_sparql_transformer(self):
rq, _ = self.loader.getTextForName('test-json')
endpoint, _ = gquery.guess_endpoint_uri(rq, self.loader)
self.assertEqual('http://dbpedia.org/sparql', endpoint, 'Should match endpoint in test-json.json')
resp, status, headers = utils.dispatchSPARQLQuery(rq, self.loader, content=None, requestArgs={},
acceptHeader='application/json',
requestUrl='http://', formData={})
self.assertEqual(status, 200)
self.assertIsInstance(resp, list)
self.assertIn('id', resp[0])
"xml:lang": "en",
"value": "xsd:boolean"
}
}]
}
}
mock_get.return_value = Mock(ok=True)
mock_get.return_value.headers = {'Content-Type': 'application/json'}
mock_get.return_value.text = json.dumps(mock_json)
rq, _ = self.loader.getTextForName('test-json')
self.assertIn('proto', rq)
resp, status, headers = utils.dispatchSPARQLQuery(rq, self.loader, content=None, requestArgs={},
acceptHeader='application/json',
requestUrl='http://mock-endpoint/sparql', formData={})
self.assertEqual(status, 200)
self.assertIsInstance(resp, list)
self.assertIn('http', resp[0]['id'])
def test_get_metadata(self):
rq, _ = self.loader.getTextForName('test-sparql')
metadata = gquery.get_metadata(rq, '')
self.assertIn('type', metadata, 'Should have a type field')
self.assertIn('variables', metadata, 'Should have a variables field')
self.assertEqual(metadata['type'], 'SelectQuery',
'Should be type SelectQuery')
self.assertIsInstance(
metadata['variables'], list, 'Should be a list of variables')
for var in metadata['variables']:
self.assertIsInstance(var, rdflib.term.Variable,
'Should be of type Variable')
def test_get_static_enumeration(self):
rq, _ = self.loader.getTextForName('test-enum')
metadata = gquery.get_yaml_decorators(rq)
self.assertIn('enumerate', metadata, 'Should contain enumerate')
enumeration = gquery.get_enumeration(rq, 'o', 'http://mock-endpoint/sparql', metadata)
self.assertIsInstance(enumeration, list, 'Should return a list of values')
self.assertEqual(len(enumeration), 2, 'Should have two elements')
def test_get_json_decorators(self):
rq, _ = self.loader.getTextForName('test-sparql-jsonconf')
decorators = gquery.get_yaml_decorators(rq)
# Query always exist -- the rest must be present on the file.
self.assertIn('query', decorators, 'Should have a query field')
self.assertIn('summary', decorators, 'Should have a summary field')
self.assertIn('pagination', decorators,
'Should have a pagination field')
self.assertIn('enumerate', decorators, 'Should have a enumerate field')
self.assertIsInstance(
decorators['summary'], six.string_types, 'Summary should be text')
self.assertIsInstance(
decorators['pagination'], int, 'Pagination should be numeric')
self.assertIsInstance(
decorators['enumerate'], list, 'Enumerate should be a list')