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 setUp(self): self.builder = SPARQLQueryBuilder() self.builder.params = {} self.mox = Mox()
class SPARQLQueryBuilderTest(unittest.TestCase): def setUp(self): self.builder = SPARQLQueryBuilder() self.builder.params = {} self.mox = Mox() # No optional calls in PyMox :( def mock_binary_search(self): self.builder.binary_search = lambda : True self.builder._extended_binary_search = lambda : False self.builder.source_search = lambda : False def mock_source_search(self): self.builder.binary_search = lambda : False self.builder._extended_binary_search = lambda : False self.builder.source_search = lambda : True def mock_extended_binary_search(self): self.builder.binary_search = lambda : True self.builder._extended_binary_search = lambda : True self.builder.source_search = lambda : False def test__searchtype_source(self): self.builder.params['searchtype'] = "SOURCE" self.assertTrue(self.builder.source_search()) self.assertFalse(self.builder.binary_search()) def test__searchtype_binary(self): self.builder.params['searchtype'] = "BINARY" self.assertTrue(self.builder.binary_search()) self.assertFalse(self.builder.source_search()) def test__searchtype_binary_description(self): self.builder.params['searchtype'] = "BINARYEXT" self.assertTrue(self.builder.binary_search()) self.assertFalse(self.builder.source_search()) def test__searchtype_unexpected(self): self.builder.params['searchtype'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.binary_search) self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.source_search) self.builder.params.pop('searchtype') self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.binary_search) self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.source_search) def test__consume_homepage_true(self): self.builder.params['homepage'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.add_variable(Variable("homepage")) triple = Triple(\ Variable("source"), FOAF.page, Variable("homepage")) mock.add_optional(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_homepage() self.mox.VerifyAll() def test__consume_homepage_false(self): self.builder.params['homepage'] = False mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_homepage() self.mox.VerifyAll() def test__consume_filter_empty(self): self.builder.params['filter'] = "" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_source_not_exact(self): self.mock_source_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("sourcename"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_source_exact(self): self.mock_source_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("sourcename"): "^keyword$"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() def test__consume_filter_source_escapes(self): self.mock_source_search() self.builder.params['filter'] = "-+." self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("sourcename"): "\\\\-\\\\+\\\\."}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() def test__consume_filter_binary_not_exact(self): self.mock_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("binaryname"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_binary_exact(self): self.mock_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("binaryname"): "^keyword$"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_binary_desc_not_exact(self): self.mock_extended_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), DEB.extendedDescription,\ Variable("desc")) mock.add_or_filter_regex({Variable("binaryname"): "keyword",\ Variable("desc"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_binary_desc_exact(self): self.mock_extended_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), DEB.extendedDescription,\ Variable("desc")) mock.add_or_filter_regex({Variable("binaryname"): "^keyword$",\ Variable("desc"): "^keyword$"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_distribution_any(self): self.builder.params['distribution'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple_variables(Variable("source"), DEB.distribution,\ Variable("distribution")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_distribution() self.mox.VerifyAll() def test__consume_distribution_selected(self): self.builder.params['distribution'] = \ "http://rdf.debian.net/distributions/distribution" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.distribution,\ URIRef(self.builder.params['distribution'])) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_distribution() self.mox.VerifyAll() def test__consume_priority_source_any(self): self.mock_source_search() self.builder.params['priority'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.add_variable("priority") triple = Triple(Variable("source"), DEB.priority, Variable("priority")) mock.add_optional(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_priority_binary_any(self): self.mock_binary_search() self.builder.params['priority'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.add_variable("priority") triple = Triple(Variable("binary"), DEB.priority, Variable("priority")) mock.add_optional(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_priority_source_selected(self): self.mock_source_search() self.builder.params['priority'] = "http://example.org/p" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.priority, URIRef("http://example.org/p")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_priority_binary_selected(self): self.mock_binary_search() self.builder.params['priority'] = "http://example.org/p" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), DEB.priority, URIRef("http://example.org/p")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_vcs_empty(self): self.builder.params['vcs'] = [] mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_vcs() self.mox.VerifyAll() def test__consume_vcs_one(self): self.builder.params['vcs'] = ["SVN"] mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.repository, Variable("repobnode")) triple = Triple(Variable("repobnode"), RDF.type, DOAP.SVNRepository) mock.add_triple(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_vcs() self.mox.VerifyAll() def test__consume_vcs_several(self): self.builder.params['vcs'] = ["SVN", "GIT"] mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.repository, Variable("repobnode")) triple1 = Triple(Variable("repobnode"), RDF.type, DOAP.SVNRepository) triple2 = Triple(Variable("repobnode"), RDF.type, DOAP.GitRepository) mock.add_union([triple1], [triple2]) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_vcs() self.mox.VerifyAll() def test__consume_area_any(self): self.builder.params['area'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple_variables(Variable("source"), DEB.area,\ Variable("area")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_area() self.mox.VerifyAll() def test__consume_area_selected(self): self.builder.params['area'] = "http://example.org/c" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.area,\ URIRef(self.builder.params['area'])) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_area() self.mox.VerifyAll() def test__consume_sort(self): self.builder.params['sort'] = "MAINTMAIL" self.mock_source_search() mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("maintmail") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() self.mock_binary_search() mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("maintmail") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() def test__consume_sort_error(self): self.builder.params['sort'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder._consume_sort) def test__consume_sort_package_source(self): self.mock_source_search() self.builder.params['sort'] = "PACKAGE" mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("sourcename") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() def test__consume_sort_package_binary(self): self.mock_binary_search() self.builder.params['sort'] = "PACKAGE" mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("binaryname") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() def test__consume_maintainer_error(self): self.builder.params['maintainer'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder._consume_maintainer) def test__consume_maintainer_all(self): self.builder.params['maintainer'] = "ALL" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer() self.mox.VerifyAll() def test__consume_maintainer_custom(self): self.builder.params['maintainer'] = "CUSTOM" mock = self.mox.CreateMock(SelectQueryHelper) self.mox.StubOutWithMock(self.builder, "_consume_maintainer_filter") self.builder._consume_maintainer_filter() self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer() self.mox.VerifyAll() def test__consume_maintainer_qa(self): self.builder.params['maintainer'] = "QA" mock = self.mox.CreateMock(SelectQueryHelper) debian.services.RES_BASEURI = "base" qaref = URIRef("base/team/packages%40qa.debian.org") mock.push_triple(Variable("source"), DEB.maintainer, qaref) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer() self.mox.VerifyAll() # TODO: Test DEBIAN, TEAM def test__consume_comaintainer_error(self): self.builder.params['comaintainer'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder._consume_comaintainer) def test__consume_comaintainer_all(self): self.builder.params['comaintainer'] = "ALL" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_comaintainer() self.mox.VerifyAll() def test__consume_essential_source(self): self.builder.params['essential'] = True self.mock_source_search() mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_essential() self.mox.VerifyAll() def test__consume_essential_binary_disabled(self): self.builder.params['essential'] = False self.mock_binary_search() mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_essential() self.mox.VerifyAll() def test__consume_essential_binary_enabled(self): self.builder.params['essential'] = True self.mock_binary_search() mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), RDF.type, DEB.EssentialBinary) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_essential() self.mox.VerifyAll() def test_create_binaries_query_bad_source(self): source = "{" version = "1.0" self.assertRaises(SPARQLQueryBuilderError, self.builder.create_binaries_query,\ source, version) def test_wants_json(self): self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder.wants_json) self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder.wants_html) self.builder.params['tojson'] = True self.assertTrue(self.builder.wants_json()) self.assertFalse(self.builder.wants_html()) self.builder.params['tojson'] = False self.assertFalse(self.builder.wants_json()) self.assertTrue(self.builder.wants_html()) def test__consume_maintainer_filter_empty(self): self.builder.params['maintainerfilter'] = "" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer_filter() self.mox.VerifyAll() def test__consume_maintainer_filter(self): self.builder.params['maintainerfilter'] = "keyword" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(\ Variable("maint"), FOAF.name, Variable("maintname")) mock.add_or_filter_regex({Variable("maintmail"): "keyword",\ Variable("maintname"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer_filter() self.mox.VerifyAll()
class SPARQLQueryBuilderTest(unittest.TestCase): def setUp(self): self.builder = SPARQLQueryBuilder() self.builder.params = {} self.mox = Mox() # No optional calls in PyMox :( def mock_binary_search(self): self.builder.binary_search = lambda: True self.builder._extended_binary_search = lambda: False self.builder.source_search = lambda: False def mock_source_search(self): self.builder.binary_search = lambda: False self.builder._extended_binary_search = lambda: False self.builder.source_search = lambda: True def mock_extended_binary_search(self): self.builder.binary_search = lambda: True self.builder._extended_binary_search = lambda: True self.builder.source_search = lambda: False def test__searchtype_source(self): self.builder.params['searchtype'] = "SOURCE" self.assertTrue(self.builder.source_search()) self.assertFalse(self.builder.binary_search()) def test__searchtype_binary(self): self.builder.params['searchtype'] = "BINARY" self.assertTrue(self.builder.binary_search()) self.assertFalse(self.builder.source_search()) def test__searchtype_binary_description(self): self.builder.params['searchtype'] = "BINARYEXT" self.assertTrue(self.builder.binary_search()) self.assertFalse(self.builder.source_search()) def test__searchtype_unexpected(self): self.builder.params['searchtype'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.binary_search) self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.source_search) self.builder.params.pop('searchtype') self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.binary_search) self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, \ self.builder.source_search) def test__consume_homepage_true(self): self.builder.params['homepage'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.add_variable(Variable("homepage")) triple = Triple(\ Variable("source"), FOAF.page, Variable("homepage")) mock.add_optional(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_homepage() self.mox.VerifyAll() def test__consume_homepage_false(self): self.builder.params['homepage'] = False mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_homepage() self.mox.VerifyAll() def test__consume_filter_empty(self): self.builder.params['filter'] = "" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_source_not_exact(self): self.mock_source_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("sourcename"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_source_exact(self): self.mock_source_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("sourcename"): "^keyword$"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() def test__consume_filter_source_escapes(self): self.mock_source_search() self.builder.params['filter'] = "-+." self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("sourcename"): "\\\\-\\\\+\\\\."}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() def test__consume_filter_binary_not_exact(self): self.mock_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("binaryname"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_binary_exact(self): self.mock_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.add_or_filter_regex({Variable("binaryname"): "^keyword$"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_binary_desc_not_exact(self): self.mock_extended_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = False mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), DEB.extendedDescription,\ Variable("desc")) mock.add_or_filter_regex({Variable("binaryname"): "keyword",\ Variable("desc"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_filter_binary_desc_exact(self): self.mock_extended_binary_search() self.builder.params['filter'] = "keyword" self.builder.params['exactmatch'] = True mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), DEB.extendedDescription,\ Variable("desc")) mock.add_or_filter_regex({Variable("binaryname"): "^keyword$",\ Variable("desc"): "^keyword$"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_filter() self.mox.VerifyAll() def test__consume_distribution_any(self): self.builder.params['distribution'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple_variables(Variable("source"), DEB.distribution,\ Variable("distribution")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_distribution() self.mox.VerifyAll() def test__consume_distribution_selected(self): self.builder.params['distribution'] = \ "http://rdf.debian.net/distributions/distribution" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.distribution,\ URIRef(self.builder.params['distribution'])) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_distribution() self.mox.VerifyAll() def test__consume_priority_source_any(self): self.mock_source_search() self.builder.params['priority'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.add_variable("priority") triple = Triple(Variable("source"), DEB.priority, Variable("priority")) mock.add_optional(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_priority_binary_any(self): self.mock_binary_search() self.builder.params['priority'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.add_variable("priority") triple = Triple(Variable("binary"), DEB.priority, Variable("priority")) mock.add_optional(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_priority_source_selected(self): self.mock_source_search() self.builder.params['priority'] = "http://example.org/p" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.priority, URIRef("http://example.org/p")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_priority_binary_selected(self): self.mock_binary_search() self.builder.params['priority'] = "http://example.org/p" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), DEB.priority, URIRef("http://example.org/p")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_priority() self.mox.VerifyAll() def test__consume_vcs_empty(self): self.builder.params['vcs'] = [] mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_vcs() self.mox.VerifyAll() def test__consume_vcs_one(self): self.builder.params['vcs'] = ["SVN"] mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.repository, Variable("repobnode")) triple = Triple(Variable("repobnode"), RDF.type, DOAP.SVNRepository) mock.add_triple(triple) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_vcs() self.mox.VerifyAll() def test__consume_vcs_several(self): self.builder.params['vcs'] = ["SVN", "GIT"] mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.repository, Variable("repobnode")) triple1 = Triple(Variable("repobnode"), RDF.type, DOAP.SVNRepository) triple2 = Triple(Variable("repobnode"), RDF.type, DOAP.GitRepository) mock.add_union([triple1], [triple2]) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_vcs() self.mox.VerifyAll() def test__consume_area_any(self): self.builder.params['area'] = "ANY" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple_variables(Variable("source"), DEB.area,\ Variable("area")) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_area() self.mox.VerifyAll() def test__consume_area_selected(self): self.builder.params['area'] = "http://example.org/c" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("source"), DEB.area,\ URIRef(self.builder.params['area'])) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_area() self.mox.VerifyAll() def test__consume_sort(self): self.builder.params['sort'] = "MAINTMAIL" self.mock_source_search() mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("maintmail") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() self.mock_binary_search() mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("maintmail") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() def test__consume_sort_error(self): self.builder.params['sort'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder._consume_sort) def test__consume_sort_package_source(self): self.mock_source_search() self.builder.params['sort'] = "PACKAGE" mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("sourcename") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() def test__consume_sort_package_binary(self): self.mock_binary_search() self.builder.params['sort'] = "PACKAGE" mock = self.mox.CreateMock(SelectQueryHelper) mock.set_orderby("binaryname") self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_sort() self.mox.VerifyAll() def test__consume_maintainer_error(self): self.builder.params['maintainer'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder._consume_maintainer) def test__consume_maintainer_all(self): self.builder.params['maintainer'] = "ALL" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer() self.mox.VerifyAll() def test__consume_maintainer_custom(self): self.builder.params['maintainer'] = "CUSTOM" mock = self.mox.CreateMock(SelectQueryHelper) self.mox.StubOutWithMock(self.builder, "_consume_maintainer_filter") self.builder._consume_maintainer_filter() self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer() self.mox.VerifyAll() def test__consume_maintainer_qa(self): self.builder.params['maintainer'] = "QA" mock = self.mox.CreateMock(SelectQueryHelper) debian.services.RES_BASEURI = "base" qaref = URIRef("base/team/packages%40qa.debian.org") mock.push_triple(Variable("source"), DEB.maintainer, qaref) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer() self.mox.VerifyAll() # TODO: Test DEBIAN, TEAM def test__consume_comaintainer_error(self): self.builder.params['comaintainer'] = "FAIL" self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder._consume_comaintainer) def test__consume_comaintainer_all(self): self.builder.params['comaintainer'] = "ALL" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_comaintainer() self.mox.VerifyAll() def test__consume_essential_source(self): self.builder.params['essential'] = True self.mock_source_search() mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_essential() self.mox.VerifyAll() def test__consume_essential_binary_disabled(self): self.builder.params['essential'] = False self.mock_binary_search() mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_essential() self.mox.VerifyAll() def test__consume_essential_binary_enabled(self): self.builder.params['essential'] = True self.mock_binary_search() mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(Variable("binary"), RDF.type, DEB.EssentialBinary) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_essential() self.mox.VerifyAll() def test_create_binaries_query_bad_source(self): source = "{" version = "1.0" self.assertRaises(SPARQLQueryBuilderError, self.builder.create_binaries_query,\ source, version) def test_wants_json(self): self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder.wants_json) self.assertRaises(SPARQLQueryBuilderUnexpectedFieldValueError, self.builder.wants_html) self.builder.params['tojson'] = True self.assertTrue(self.builder.wants_json()) self.assertFalse(self.builder.wants_html()) self.builder.params['tojson'] = False self.assertFalse(self.builder.wants_json()) self.assertTrue(self.builder.wants_html()) def test__consume_maintainer_filter_empty(self): self.builder.params['maintainerfilter'] = "" mock = self.mox.CreateMock(SelectQueryHelper) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer_filter() self.mox.VerifyAll() def test__consume_maintainer_filter(self): self.builder.params['maintainerfilter'] = "keyword" mock = self.mox.CreateMock(SelectQueryHelper) mock.push_triple(\ Variable("maint"), FOAF.name, Variable("maintname")) mock.add_or_filter_regex({Variable("maintmail"): "keyword",\ Variable("maintname"): "keyword"}) self.builder.helper = mock self.mox.ReplayAll() self.builder._consume_maintainer_filter() self.mox.VerifyAll()