예제 #1
0
 def test_logical_operations(self):
     self.assertEqual([{u'name': u'The Mind\'s I'}, {u'name': u'GEB'}],
                      WikiPage.wikiquery(u'"GEB" + "The Mind\'s I"'))
     self.assertEqual({u'name': u'The Mind\'s I'},
                      WikiPage.wikiquery(u'schema:"Book" * author:"Douglas Hofstadter" * author:"Daniel Dennett"'))
     self.assertEqual([{'name': u"The Mind's I"}, {'name': u'GEB'}],
                      WikiPage.wikiquery(u'schema:"Book" + author:"Douglas Hofstadter" * author:"Daniel Dennett"'))
예제 #2
0
    def test_specifying_attr_order(self):
        result = WikiPage.wikiquery(u'schema:"Book" > author, datePublished+')
        self.assertEqual(u'1979', result[0]['datePublished'].pvalue)
        self.assertEqual(u'1982', result[1]['datePublished'].pvalue)

        result = WikiPage.wikiquery(u'schema:"Book" > author, datePublished-')
        self.assertEqual(u'1982', result[0]['datePublished'].pvalue)
        self.assertEqual(u'1979', result[1]['datePublished'].pvalue)
예제 #3
0
    def test_specifying_attr_order(self):
        result = WikiPage.wikiquery(u'schema:"Book" > author, datePublished+')
        self.assertEqual(u'1979', result[0]['datePublished'].pvalue)
        self.assertEqual(u'1982', result[1]['datePublished'].pvalue)

        result = WikiPage.wikiquery(u'schema:"Book" > author, datePublished-')
        self.assertEqual(u'1982', result[0]['datePublished'].pvalue)
        self.assertEqual(u'1979', result[1]['datePublished'].pvalue)
예제 #4
0
    def test_specifying_attr(self):
        result = WikiPage.wikiquery(u'"GEB" > author')
        self.assertEqual(u'Douglas Hofstadter', result['author'].pvalue)

        result = WikiPage.wikiquery(u'"GEB" > name, author, datePublished')
        self.assertEqual(u'Douglas Hofstadter', result['author'].pvalue)
        self.assertEqual(u'GEB', result['name'].pvalue)
        self.assertEqual(u'1979', result['datePublished'].pvalue)
예제 #5
0
    def test_specifying_attr(self):
        result = WikiPage.wikiquery(u'"GEB" > author')
        self.assertEqual(u'Douglas Hofstadter', result['author'].pvalue)

        result = WikiPage.wikiquery(u'"GEB" > name, author, datePublished')
        self.assertEqual(u'Douglas Hofstadter', result['author'].pvalue)
        self.assertEqual(u'GEB', result['name'].pvalue)
        self.assertEqual(u'1979', result['datePublished'].pvalue)
예제 #6
0
파일: views.py 프로젝트: namongk/ecogwiki
 def get(self, path, head=False):
     cache.create_prc()
     query = WikiPage.path_to_title(path)
     user = get_cur_user()
     result = WikiPage.wikiquery(query, user)
     view = self.request.GET.get('view', 'default')
     restype = get_restype(self.request)
     if restype == 'default' or restype == 'html':
         if view == 'bodyonly':
             html = template(self.request, 'bodyonly.html', {
                 'title': u'Search: %s ' % query,
                 'body': obj_to_html(result),
             })
         else:
             html = template(self.request, 'wikiquery.html', {
                 'query': query,
                 'result': obj_to_html(result),
             })
         self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
         set_response_body(self.response, html, head)
     elif restype == 'json':
         self.response.headers[
             'Content-Type'] = 'application/json; charset=utf-8'
         set_response_body(self.response, json.dumps(result), head)
     else:
         self.abort(400, 'Unknown type: %s' % restype)
예제 #7
0
 def test_user_with_permission(self):
     user = users.User('*****@*****.**')
     self.assertEqual([{
         u'name': u'A'
     }, {
         u'name': u'B'
     }], WikiPage.wikiquery(u'schema:"Book"', user))
예제 #8
0
파일: views.py 프로젝트: namongk/ecogwiki
 def get(self, path, head=False):
     cache.create_prc()
     query = WikiPage.path_to_title(path)
     user = get_cur_user()
     result = WikiPage.wikiquery(query, user)
     view = self.request.GET.get('view', 'default')
     restype = get_restype(self.request)
     if restype == 'default' or restype == 'html':
         if view == 'bodyonly':
             html = template(self.request, 'bodyonly.html', {
                 'title': u'Search: %s ' % query,
                 'body': obj_to_html(result),
             })
         else:
             html = template(self.request, 'wikiquery.html', {
                 'query': query,
                 'result': obj_to_html(result),
             })
         self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
         set_response_body(self.response, html, head)
     elif restype == 'json':
         self.response.headers['Content-Type'] = 'application/json; charset=utf-8'
         set_response_body(self.response, json.dumps(result), head)
     else:
         self.abort(400, 'Unknown type: %s' % restype)
예제 #9
0
 def test_complex(self):
     result = WikiPage.wikiquery(
         u'schema:"Thing/CreativeWork/Book/" > name, author')
     self.assertEqual(u'Douglas Hofstadter', result[0]['author'].pvalue)
     self.assertEqual(u'GEB', result[0]['name'].pvalue)
     self.assertEqual([u'Daniel Dennett', u'Douglas Hofstadter'],
                      [v.pvalue for v in result[1]['author']])
     self.assertEqual(u'The Mind\'s I', result[1]['name'].pvalue)
예제 #10
0
 def test_by_schema(self):
     self.assertEqual([{
         u'name': u'GEB'
     }, {
         u'name': u'The Mind\'s I'
     }], WikiPage.wikiquery(u'schema:"Thing/CreativeWork/Book/"'))
예제 #11
0
 def test_by_name(self):
     self.assertEqual({u'name': u'GEB'}, WikiPage.wikiquery(u'"GEB"'))
예제 #12
0
 def test_anonymous(self):
     self.assertEqual({u'name': u'A'},
                      WikiPage.wikiquery(u'schema:"Book" > name'))
예제 #13
0
 def test_complex(self):
     self.assertEqual([{u'name': u'The Mind\'s I', u'author': [u'Daniel Dennett', u'Douglas Hofstadter']},
                       {u'author': u'Douglas Hofstadter', u'name': u'GEB'}],
                      WikiPage.wikiquery(u'schema:"Thing/CreativeWork/Book/" > name, author'))
예제 #14
0
 def load(self):
     query = WikiPage.path_to_title(self.path)
     return {'result': WikiPage.wikiquery(query, self.user), 'query': query}
예제 #15
0
 def test_normal(self):
     self.assertEqual({u'name': u'A'}, WikiPage.wikiquery(u'schema:"Book"'))
예제 #16
0
 def load(self):
     query = WikiPage.path_to_title(self.path)
     return {
         'result': WikiPage.wikiquery(query, self.req.user),
         'query': query
     }
예제 #17
0
 def test_by_abbr_schema(self):
     self.assertEqual([{u'name': u'The Mind\'s I'}, {u'name': u'GEB'}],
                      WikiPage.wikiquery(u'schema:"Book"'))
예제 #18
0
 def test_by_schema(self):
     self.assertEqual([{u'name': u'The Mind\'s I'}, {u'name': u'GEB'}],
                      WikiPage.wikiquery(u'schema:"Thing/CreativeWork/Book/"'))
예제 #19
0
 def test_by_name(self):
     self.assertEqual({u'name': u'GEB'},
                      WikiPage.wikiquery(u'"GEB"'))
예제 #20
0
 def test_user_with_permission(self):
     user = users.User('*****@*****.**')
     self.assertEqual([{u'name': u'A'}, {u'name': u'B'}],
                      WikiPage.wikiquery(u'schema:"Book"', user))
예제 #21
0
 def test_anonymous(self):
     self.assertEqual({u'name': u'A'},
                      WikiPage.wikiquery(u'schema:"Book"', None))
예제 #22
0
 def test_by_abbr_schema(self):
     self.assertEqual([{
         u'name': u'GEB'
     }, {
         u'name': u'The Mind\'s I'
     }], WikiPage.wikiquery(u'schema:"Book"'))
예제 #23
0
 def test_by_attr(self):
     self.assertEqual([{
         u'name': u'GEB'
     }, {
         u'name': u'The Mind\'s I'
     }], WikiPage.wikiquery(u'author:"Douglas Hofstadter"'))
예제 #24
0
 def test_by_attr(self):
     self.assertEqual([{u'name': u'The Mind\'s I'}, {u'name': u'GEB'}],
                      WikiPage.wikiquery(u'author:"Douglas Hofstadter"'))
예제 #25
0
 def load(self):
     query = WikiPage.path_to_title(self.path)
     return {"result": WikiPage.wikiquery(query, self.user), "query": query}
예제 #26
0
 def test_normal(self):
     self.assertEqual({u'name': u'A'}, WikiPage.wikiquery(u'schema:"Book"'))
예제 #27
0
 def test_complex(self):
     result = WikiPage.wikiquery(u'schema:"Thing/CreativeWork/Book/" > name, author')
     self.assertEqual(u'Douglas Hofstadter', result[0]['author'].pvalue)
     self.assertEqual(u'GEB', result[0]['name'].pvalue)
     self.assertEqual([u'Daniel Dennett', u'Douglas Hofstadter'], [v.pvalue for v in result[1]['author']])
     self.assertEqual(u'The Mind\'s I', result[1]['name'].pvalue)
예제 #28
0
 def test_specifying_attr(self):
     self.assertEqual({u'author': u'Douglas Hofstadter'},
                      WikiPage.wikiquery(u'"GEB" > author'))
     self.assertEqual({u'author': u'Douglas Hofstadter', u'name': u'GEB', u'datePublished': u'1979'},
                      WikiPage.wikiquery(u'"GEB" > name, author, datePublished'))