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
|
= Editing FAQs =
It is possible to modify the title, keywords and content of an existing
FAQ. To do this, the user goes to the FAQ that he wants to modify and
clicks the 'Edit FAQ' action.
That action is only available to project owners and answer contacts.
That's why the link doesn't appear for the anonymous user nor
No Privileges Person:
>>> from canonical.launchpad.helpers import backslashreplace
>>> anon_browser.open('http://answers.launchpad.dev/firefox/+faq/7')
>>> print backslashreplace(anon_browser.title)
FAQ #7 : Questions : Mozilla Firefox
>>> anon_browser.getLink('Edit FAQ')
Traceback (most recent call last):
...
LinkNotFoundError
>>> user_browser.open('http://answers.launchpad.dev/firefox/+faq/7')
>>> user_browser.getLink('Edit FAQ')
Traceback (most recent call last):
...
LinkNotFoundError
Even trying to access the link directly will fail:
>>> anon_browser.open(
... 'http://answers.launchpad.dev/firefox/+faq/7/+edit')
Traceback (most recent call last):
...
Unauthorized: ...
>>> user_browser.open(
... 'http://answers.launchpad.dev/firefox/+faq/7/+edit')
Traceback (most recent call last):
...
Unauthorized: ...
The link is accessible to Sample Person who is the owner of the Firefox
project:
>>> browser.addHeader('Authorization', 'Basic test@canonical.com:test')
>>> browser.open('http://answers.launchpad.dev/firefox/+faq/7')
>>> browser.getLink('Edit FAQ').click()
>>> print browser.url
http://answers.launchpad.dev/firefox/+faq/7/+edit
>>> print browser.title
Edit FAQ...
The user can change the title, keywords and content fields. He then
clicks 'Save' to save his changes.
>>> print browser.getControl('Title').value
How do I install Java?
>>> browser.getControl('Keywords').value
''
>>> print browser.getControl('Content').value
Windows
On Windows, ...
>>> browser.getControl('Keywords').value = (
... 'windows ubuntu plugins extensions')
>>> browser.getControl('Content').value += (
... '\nUbuntu:\nSee https://help.ubuntu.com/community/Java\n')
>>> browser.getControl('Save').click()
The user can see his changes on the page:
>>> print browser.url
http://answers.launchpad.dev/firefox/+faq/7
>>> print extract_text(find_tag_by_id(browser.contents, 'faq-keywords'))
Keywords: windows ubuntu plugins extensions
>>> print extract_text(find_tag_by_id(browser.contents, 'faq-content'))
Windows
On Windows,...
Ubuntu: See https://help.ubuntu.com/community/Java
The 'Last updated by' field in the 'Lifecycle' portlet is updated
with the name of the user who made the last modification:
>>> print extract_text(find_tag_by_id(browser.contents, 'faq-updated'))
Last updated by: Sample Person on ...
|