class SPARQLQueryProcessorTest(unittest.TestCase): def setUp(self): self.processor = SPARQLQueryProcessor() self.rpp = debian.services.RESULTS_PER_PAGE self.fg = debian.services.FROM_GRAPH debian.services.RESULTS_PER_PAGE = None debian.services.FROM_GRAPH = None def tearDown(self): debian.services.RESULTS_PER_PAGE = self.rpp debian.services.FROM_GRAPH = self.fg def test__clean_query_limit(self): debian.services.RESULTS_PER_PAGE = 5 input = "SELECT * WHERE { ?s ?p ?o } LIMIT 150" expected = "SELECT * WHERE { ?s ?p ?o } LIMIT 5" self.assertEqual(expected, self.processor._clean_query(input)) def test__clean_query_offset(self): debian.services.RESULTS_PER_PAGE = 5 input = "SELECT * WHERE { ?s ?p ?o } OFFSET 5" expected = "SELECT * WHERE { ?s ?p ?o } LIMIT 5" self.assertEqual(expected, self.processor._clean_query(input)) def test__clean_query_offset_limit(self): debian.services.RESULTS_PER_PAGE = 5 input = "SELECT * WHERE { ?s ?p ?o } OFFSET 5 LIMIT 6" expected = "SELECT * WHERE { ?s ?p ?o } LIMIT 5" self.assertEqual(expected, self.processor._clean_query(input)) input = "SELECT * WHERE { ?s ?p ?o } LIMIT 7 OFFSET 5" expected = "SELECT * WHERE { ?s ?p ?o } LIMIT 5" self.assertEqual(expected, self.processor._clean_query(input)) def test__clean_query_from(self): debian.services.RESULTS_PER_PAGE = 5 input = "SELECT * FROM <uriref> WHERE { ?s ?p ?o }" expected = "SELECT * WHERE { ?s ?p ?o } LIMIT 5" self.assertEqual(expected, self.processor._clean_query(input)) input = "SELECT * FROM<uriref> WHERE { ?s ?p ?o }" expected = "SELECT * WHERE { ?s ?p ?o } LIMIT 5" self.assertEqual(expected, self.processor._clean_query(input)) input = "SELECT * FROM NAMED <uriref> WHERE { ?s ?p ?o }" expected = "SELECT * WHERE { ?s ?p ?o } LIMIT 5" self.assertEqual(expected, self.processor._clean_query(input)) def test__clean_query_reassisgn(self): debian.services.FROM_GRAPH = "http://example.org" input = "SELECT * FROM <uriref> WHERE { ?s ?p ?o }" expected = "SELECT * FROM <http://example.org> WHERE { ?s ?p ?o }" self.assertEqual(expected, self.processor._clean_query(input)) debian.services.FROM_GRAPH = "http://example.org" input = "SELECT * FROM NAMED <uriref> WHERE { ?s ?p ?o }" expected = "SELECT * FROM <http://example.org> WHERE { ?s ?p ?o }" self.assertEqual(expected, self.processor._clean_query(input))
def source_detail(request, source, version): if request.method == 'GET': builder = SPARQLQueryBuilder() try: query = builder.create_binaries_query(source, version) except SPARQLQueryBuilderError, e: return render_to_response('debian/error.html', {'reason': e}) processor = SPARQLQueryProcessor() try: processor.execute_query(query) except SPARQLQueryProcessorError, e: return render_to_response('debian/error.html', {'reason': e})
def allnews(request): if request.method == 'POST': searchform = SearchForm(request.POST) if searchform.is_valid() is False: return HttpResponse("400 - Bad request", status=400) data = searchform.cleaned_data builder = SPARQLQueryBuilder() try: query = builder.create_query_from_form(data) except SPARQLQueryBuilderError, e: return render_to_response('debian/error.html', {'reason': e}) processor = SPARQLQueryProcessor() try: processor.execute_sanitized_query(query) except SPARQLQueryProcessorError, e: return render_to_response('debian/error.html', {'reason': e})
def results(request): if request.method == 'POST': searchform = SearchForm(request.POST) if searchform.is_valid() is False: sparqlform = SPARQLForm() dict = {'search': searchform, 'sparql': sparqlform} return render_to_response('debian/search.html', dict) data = searchform.cleaned_data builder = SPARQLQueryBuilder() try: query = builder.create_query_from_form(data) except SPARQLQueryBuilderError, e: return render_to_response('debian/error.html', {'reason': e}) processor = SPARQLQueryProcessor() try: processor.execute_sanitized_query(query) except SPARQLQueryProcessorError, e: return render_to_response('debian/error.html', {'reason': e})
def sparql(request): if request.method == 'POST': sparqlform = SPARQLForm(request.POST) if sparqlform.is_valid() is False: searchform = SearchForm() dict = {'search': searchform, 'sparql': sparqlform} return render_to_response('debian/search.html', dict) query = sparqlform.cleaned_data['ns'] + sparqlform.cleaned_data['query'] processor = SPARQLQueryProcessor() try: processor.execute_query(smart_str(query)) except SPARQLQueryProcessorError, e: return render_to_response('debian/error.html', {'reason': e}) if sparqlform.cleaned_data['tojson_sparql'] is True: return HttpResponse(simplejson.dumps(processor.results), \ mimetype="application/json") else: (variables, results) = processor.format_sparql_results() dict = {'variables': variables, 'results': results} return render_to_response('debian/results.html', dict)
def setUp(self): self.processor = SPARQLQueryProcessor() self.rpp = debian.services.RESULTS_PER_PAGE self.fg = debian.services.FROM_GRAPH debian.services.RESULTS_PER_PAGE = None debian.services.FROM_GRAPH = None