예제 #1
0
    def test_map_and_execute(self):
        self.query.query = mock_db.GET_LANG_BY_NAME
        self.query.arg_spec = u"lang_name:n3term"
        result = self.query.map_and_execute(lang_name='"Danish"')

        danish_iri = sparql.IRI(EIONET_RDF + '/languages/da')
        self.assertEqual(list(result), [(danish_iri, )])
예제 #2
0
    def test_parse_IRI(self):
        value = 'http://example.com/some_iri'
        result = sparql.parse_n3_term('<%s>' % value)
        self.assertTrue(type(result) is sparql.IRI)
        self.assertEqual(result.value, value)

        i = sparql.IRI(value)
        self.assertEqual(sparql.parse_n3_term(i.n3()), i)
예제 #3
0
def objinfo():
    subject = sparql.IRI(flask.request.args['s'])
    query = flask.render_template('objinfo.sparql', **{'subject': subject})
    return flask.render_template(
        'objinfo.html', **{
            'subject': subject,
            'rows': sparql.query(ENDPOINT, query),
        })
예제 #4
0
 def test_map_two_values(self):
     en = EIONET_RDF + '/languages/en'
     self._test(u'name:string lang_url:n3term', {
         'name': u"Joe",
         'lang_url': '<%s>' % en
     }, {
         'name': sparql.Literal(u"Joe"),
         'lang_url': sparql.IRI(en)
     })
예제 #5
0
 def test_compare_with_non_iri(self):
     i1 = sparql.IRI("http://example.com/asdf")
     self.assertFalse(i1 == "http://example.com/asdf")
     self.assertFalse(i1 == u"http://example.com/asdf")
     self.assertFalse(i1 == None)
     self.assertFalse(i1 == 13)
     self.assertFalse(i1 == 13.0)
     self.assertFalse(i1 == ['http://example.com/asdf'])
     self.assertFalse(i1 == {'http://example.com/asdf':
                             'http://example.com/asdf'})
예제 #6
0
    def test_national(self):
        """ Simple query with UTF-8 """
        resultfp = _open_datafile("national.srx")
        result = sparql._ResultsParser(resultfp)
        self.assertEqual([u'subj', u'nameen', u'nameru'], result.variables)

        rows = result.fetchall()
        row0 = rows[0]
        self.assertEqual("http://aims.fao.org/aos/geopolitical.owl#Germany", str(row0[0]))
        self.assertEqual(sparql.IRI(u"http://aims.fao.org/aos/geopolitical.owl#Germany"), row0[0])
        self.assertEqual(u"Германия", unicode(row0[2]))
예제 #7
0
    def test_simple(self):
        """ Simple query with unbound variables """
        resultfp = _open_datafile("countries.srx")
        result = sparql._ResultsParser(resultfp)
        self.assertEqual([u'eeaURI', u'gdpTotal', u'eeacode', u'nutscode', u'faocode', u'gdp', u'name'], result.variables)

        rows = result.fetchall()
        row0 = rows[0]
        self.assertEqual(sparql.IRI(u"http://rdfdata.eionet.europa.eu/eea/countries/BE"), row0[0])
        self.assertEqual(sparql.Literal("471161.0", XSD_FAO_MILLION), row0[1])
        self.assertEqual(sparql.Literal("44.252934", sparql.XSD_FLOAT), row0[5])
예제 #8
0
    def test_unicode(self):
        value = 'http://example.com/some_iri'

        class Tricky(object):
            def __unicode__(self):
                return '<%s>' % value

        if six.PY2:
            parsed = sparql.parse_n3_term(Tricky())
        else:
            parsed = sparql.parse_n3_term(Tricky().__unicode__())
        self.assertEqual(parsed, sparql.IRI(value))
예제 #9
0
    def test_REST_query(self):
        from webob import Request
        import sparql
        from Products.ZSPARQLMethod._depend import json
        from test_method import EIONET_RDF

        req = Request.blank('http://test/?lang_name=Danish')
        response = req.get_response(self.app)

        self.assertEqual(response.headers['Content-Type'], 'application/json')
        json_response = json.loads(response.body)
        danish_iri = sparql.IRI(EIONET_RDF + '/languages/da')
        self.assertEqual(json_response['rows'], [[danish_iri.n3()]])
예제 #10
0
    def test_national(self):
        """ Simple query with UTF-8 """

        resultfp = _open_datafile('national.srx')
        result = sparql._ResultsParser(resultfp)
        self.assertEqual([u'subj', u'nameen', u'nameru'], result.variables)

        rows = result.fetchall()
        row0 = rows[0]
        if six.PY2:
            self.assertEqual(
                'http://aims.fao.org/aos/geopolitical.owl#Germany',
                str(row0[0]))
        else:
            self.assertEqual(
                'http://aims.fao.org/aos/geopolitical.owl#Germany',
                row0[0].value)

        self.assertEqual(
            sparql.IRI(u'http://aims.fao.org/aos/geopolitical.owl#Germany'),
            row0[0])
        self.assertEqual(u"Германия", six.text_type(row0[2]))
예제 #11
0
 def test_map_one_parsed_iri(self):
     en = EIONET_RDF + '/languages/en'
     self._test(u'lang_url:n3term', {'lang_url': '<%s>' % en},
                {'lang_url': sparql.IRI(en)})
예제 #12
0
 def test_map_one_iri(self):
     en = EIONET_RDF + '/languages/en'
     self._test(u'lang_url:iri', {'lang_url': en},
                {'lang_url': sparql.IRI(en)})
예제 #13
0
 def test_repr(self):
     """ repr should return the literal in N3 syntax """
     i = sparql.IRI("http://example.com/asdf")
     self.assertEqual(repr(i), "<IRI <http://example.com/asdf>>")
예제 #14
0
 def test_unicode(self):
     value = 'http://example.com/some_iri'
     class Tricky(object):
         def __unicode__(self):
             return '<%s>' % value
     self.assertEqual(sparql.parse_n3_term(Tricky()), sparql.IRI(value))
예제 #15
0
 def test_one_iri(self):
     onto_name = EIONET_RDF + '/ontology/name'
     self._test(u'SELECT * WHERE { ?s ${pred} "Joe" }',
                {'pred': sparql.IRI(onto_name)},
                u'SELECT * WHERE { ?s <%s> "Joe" }' % onto_name)
예제 #16
0
    def test_query_with_arguments(self):
        self.method.query = mock_db.GET_LANG_BY_NAME
        result = self.method.execute(lang_name=sparql.Literal("Danish"))

        danish_iri = sparql.IRI(EIONET_RDF + '/languages/da')
        self.assertEqual(result['result']['rows'], [(danish_iri, )])
예제 #17
0
 def test_one_iri(self):
     onto_name = EIONET_RDF + '/ontology/name'
     self._test(u"SELECT * WHERE { ?s ${pred} 'Joe' }",
                {'pred': sparql.IRI(onto_name)},
                u"SELECT * WHERE { ?s <%s> 'Joe' }" % onto_name)