예제 #1
0
def test_request_a_page():
    root_page = WikiPage(title="FrontPage", uri="/")
    child_page = WikiPage(title="Child1", text="a child page", tags=["foo"])
    root_page.add_child(child_page)
    myapp = WikiApp(root_page)
    request = Request(request_type="GET", uri="/Child1")
    response = myapp.handle_request(request)
    assert response.page.title == "Child1"
예제 #2
0
def test_request_a_search():
    root_page = WikiPage(title="FrontPage", uri="/")
    child_page = WikiPage(title="Child1", text="a child page", tags=["foo"])
    root_page.add_child(child_page)
    myapp = WikiApp(root_page)
    request = Request(request_type="POST",
                      uri="/",
                      data={"search_text": "child"})
    response = myapp.handle_request(request)
    assert response.page.title == "Search Results"
    assert "Child1" in response.page.text
예제 #3
0
 def make_response(self, request, context):
     self.request = request
     self.context = context
     results_page = WikiPage(self.title())
     matching_pages = (
         page for page in DepthFirstTraverser(context.root_page).traverse()
         if self.traverse(page))
     results_page.text = "found term in pages:<ul>"
     for result_page in matching_pages:
         results_page.text += '<li>' + result_page.title + '</li>'
     results_page.text += "</ul>"
     return Response(page=results_page)
예제 #4
0
def test_wiki_page_responder_ok():
    responder = WikiPageResponder()
    request = Request(request_type="GET", uri="/")
    root_page = WikiPage(title="FrontPage", uri="/")
    context = RequestContext(root_page)

    response = responder.make_response(request, context)

    assert response.http_code == "200"
예제 #5
0
 def make_response(self, request, context):
     # brute force approach where better approaches exist
     all_pages = {
         page.uri: page
         for page in DepthFirstTraverser(context.root_page).traverse()
     }
     page = all_pages.get(request.uri)
     if page:
         return Response(http_code="200", page=page)
     else:
         return Response(http_code="404", page=WikiPage("404"))
예제 #6
0
def test_search_responder_no_results():
    responder = SearchResponder()
    request = Request(request_type="POST",
                      uri="/",
                      data={"search_text": "term"})
    root_page = WikiPage(title="FrontPage", uri="/")
    context = RequestContext(root_page)

    response = responder.make_response(request, context)

    assert response.page.text == "found term in pages:<ul></ul>"
예제 #7
0
def test_search_responder_with_results():
    responder = SearchResponder()
    request = Request(request_type="POST",
                      uri="/",
                      data={"search_text": "spam"})
    root_page = WikiPage(title="SpamPage", uri="/spam", text="spam")
    context = RequestContext(root_page)

    response = responder.make_response(request, context)

    assert response.page.text == "found term in pages:" \
                                 "<ul><li>SpamPage</li></ul>"
예제 #8
0
    def __iter__(self):
        with bz2.BZ2File(self._dump_file) as f:
            c = 0
            for (title, wiki_text, wiki_id) in wikicorpus.extract_pages(f):
                if any(
                    [title.lower().startswith(ns) for ns in self._ignored_ns]):
                    continue
                c += 1

                yield WikiPage(unicode(title), self._language,
                               unicode(wiki_text))

                if c % 10000 == 0:
                    logger.info('Processed: %d', c)
예제 #9
0
def test_request_response_cycle():
    root_page = WikiPage(title="FrontPage", uri="/")
    myapp = WikiApp(root_page)
    request = Request(request_type="GET", uri="/")
    response = myapp.handle_request(request)
    assert response.page.title == "FrontPage"
예제 #10
0
def test_unsupported_http_method():
    root_page = WikiPage(title="FrontPage", uri="/")
    myapp = WikiApp(root_page)
    request = Request(request_type="UPDATE", uri="/")
    with pytest.raises(Exception):
        myapp.handle_request(request)