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"
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
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)
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"
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"))
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>"
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>"
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)
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"
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)