Maximiliano Bertacchini has proposed merging
lp:~maxiberta/launchpad/app-browser-dedup-sitesearch-doctests into lp:launchpad.
Commit message:
Deduplicate lp.app.browser sitesearch doctests.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~maxiberta/launchpad/app-browser-dedup-sitesearch-doctests/+merge/343250
Deduplicate lp.app.browser sitesearch doctests. In particular,
launchpad-search-pages-bing.txt and launchpad-search-pages-google.txt were
merged into one single file, which is tested with all search backends.
--
Your team Launchpad code reviewers is requested to review the proposed merge of
lp:~maxiberta/launchpad/app-browser-dedup-sitesearch-doctests into lp:launchpad.
=== removed file 'lib/lp/app/browser/doc/launchpad-search-pages-bing.txt'
--- lib/lp/app/browser/doc/launchpad-search-pages-bing.txt 2018-04-10 18:17:07 +
+++ lib/lp/app/browser/doc/launchpad-search-pages-bing.txt 1970-01-01 00:00:00 +
@@ -1,726 +0,0 @@
-Launchpad search page
-=
-
-Users can search for Launchpad objects and pages from the search form
-located on all pages. The search is performed and displayed by the
-LaunchpadSearchView.
-
->>> from zope.component import getMultiAdapter, getUtility
->>> from lp.services.webapp.interfaces import ILaunchpadRoot
->>> from lp.services.webapp.servers import LaunchpadTestRequest
-
->>> root = getUtility(ILaunchpadRoot)
->>> request = LaunchpadTestRequest()
->>> search_view = getMultiAdapter((root, request), name="+search")
->>> search_view.initialize()
->>> search_view
-
-
-
-Page title and heading
---
-
-The page title and heading suggest to the user to search launchpad
-when there is no search text.
-
->>> print search_view.text
-None
->>> search_view.page_title
-'Search Launchpad'
->>> search_view.page_heading
-'Search Launchpad'
-
-When text is not None, the title indicates what was searched.
-
->>> def getSearchView(form):
-... search_param_list = []
-... for name in sorted(form):
-... value = form[name]
-... search_param_list.append('%s=%s' % (name, value))
-... query_string = '&'.join(search_param_list)
-... request = LaunchpadTestRequest(
-... SERVER_URL='https://launchpad.dev/+search',
-... QUERY_STRING=query_string, form=form, PATH_INFO='/+search')
-... search_view = getMultiAdapter((root, request), name="+search")
-... search_view.initialize()
-... return search_view
-
->>> search_view = getSearchView(
-... form={'field.text': 'albatross'})
-
->>> search_view.text
-u'albatross'
->>> search_view.page_title
-u'Pages matching "albatross" in Launchpad'
->>> search_view.page_heading
-u'Pages matching "albatross" in Launchpad'
-
-
-No matches
---
-
-There were no matches for 'albatross'.
-
->>> search_view.has_matches
-False
-
-When search text is not submitted there are no matches. Search text is
-required to perform a search. Note that field.actions.search is not a
-required param to call the Search Action. The view always calls the
-search action.
-
->>> search_view = getSearchView(form={})
-
->>> print search_view.text
-None
->>> search_view.has_matches
-False
-
-
-Bug and Question Searches
--
-
-When a numeric token can be extracted from the submitted search text,
-the view tries to match a bug and question. Bugs and questions are
-matched by their id.
-
->>> search_view = getSearchView(
-... form={'field.text': '5'})
->>> search_view._getNumericToken(search_view.text)
-u'5'
->>> search_view.has_matches
-True
->>> search_view.bug.title
-u'Firefox install instructions should be complete'
->>> search_view.question.title
-u'Installation failed'
-
-Bugs and questions are matched independent of each other. The number
-extracted may only match one kind of object. For example, there are
-more bugs than questions.
-
->>> search_view = getSearchView(
-... form={'field.text': '15'})
->>> search_view._getNumericToken(search_view.text)
-u'15'
->>> search_view.has_matches
-True
->>> search_view.bug.title
-u'Nonsensical bugs are useless'
->>> print search_view.question
-None
-
-Private bugs are not matched if the user does not have permission to
-see them. For example, Sample Person can see a private bug that they
-created because they are the owner.
-
->>> from lp.services.webapp.interfaces import ILaunchBag
->>> from lp.app.enums import InformationType
-
->>> login('t...@canonical.com')
->>> sample_person = getUtility(ILaunchBag).user
->>> private_bug = factory.makeBug(
-... owner=sample_person,