~launchpad-pqm/launchpad/devel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
Person Views of Spec Lists
==========================

There are a couple of views of the specs related to a person.

The Features link shows an overview of all the specifications
involving that person.

    >>> browser.open('http://blueprints.launchpad.dev/~name16')
    >>> print browser.title
    Blueprints : Foo Bar
    >>> soup = find_main_content(browser.contents)
    >>> soup('h1')
    [<h1>Blueprints involving Foo Bar</h1>]

In the left-side menu, there are menu items that allow to select a
subset of these specifications. The 'Approver' link selects the specs
that the user is supposed to approve.

    >>> browser.getLink('Approver').click()
    >>> browser.url
    '.../~name16/+specs?role=approver'
    >>> soup = find_main_content(browser.contents)
    >>> soup('p', 'informational message')
    [<p class="informational message">
    No feature specifications match your criteria.
    </p>]

The 'Assignee' link displays a page showing the specifications assigned
to the person.

    >>> browser.getLink('Assignee').click()
    >>> browser.url
    '.../~name16/+specs?role=assignee'
    >>> soup = find_main_content(browser.contents)
    >>> soup('p', 'informational message')
    [<p class="informational message">
    No feature specifications match your criteria.
    </p>]

The 'Subscriber' link displays a page showing the specifications to
which the person subscribed.

    >>> browser.getLink('Subscriber').click()
    >>> browser.url
    '.../~name16/+specs?role=subscriber'
    >>> browser.getLink('svg-support').attrs['title']
    'Support Native SVG Objects'

The 'Drafter' link displays a page showing the specifications that the
person drafted.

    >>> browser.getLink('Drafter').click()
    >>> browser.url
    '.../~name16/+specs?role=drafter'
    >>> soup = find_main_content(browser.contents)
    >>> soup('p', 'informational message')
    [<p class="informational message">
    No feature specifications match your criteria.
    </p>]

The 'Workload' link displays a page showing the specifications that are
in the workload of that person.

    >>> browser.getLink('Workload').click()
    >>> browser.url
    '.../~name16/+specworkload'
    >>> print browser.title
    Blueprint workload...

For a team, the 'Workload' link first shows the specifications that
are part of the workload for the team.  It then shows the workloads
for each member of the team, using batching.

    >>> from lp.services.helpers import backslashreplace
    >>> browser.open('http://blueprints.launchpad.dev/~admins')
    >>> print backslashreplace(browser.title)
    Blueprints : \u201cLaunchpad Administrators\u201d team
    >>> browser.getLink('Workload').click()
    >>> browser.url
    '.../~admins/+specworkload'
    >>> print browser.title
    Blueprint workload...
    >>> print extract_text(find_main_content(browser.contents))
    Blueprint workload...
    Team member workload...
    Andrew Bennetts's specifications:...
    Daniel Silverstone has no outstanding specifications...

The 'Feedback requests' link displays a list of the specifications that
the person was asked to review.

    >>> browser.open('http://blueprints.launchpad.dev/~name16')
    >>> browser.getLink('Feedback request').click()
    >>> browser.url
    '.../~name16/+specfeedback'
    >>> print browser.title
    Feature feedback requests...
    >>> soup = find_main_content(browser.contents)
    >>> soup('p')
    [... 1 specification(s) listed...]