Merge lp:~jelmer/brz/lp-logout into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Merged at revision: 6854
Proposed branch: lp:~jelmer/brz/lp-logout
Merge into: lp:brz
Diff against target: 106 lines (+49/-2)
5 files modified
breezy/plugins/launchpad/__init__.py (+1/-0)
breezy/plugins/launchpad/account.py (+6/-2)
breezy/plugins/launchpad/cmds.py (+24/-0)
breezy/plugins/launchpad/test_lp_login.py (+15/-0)
doc/en/release-notes/brz-3.0.txt (+3/-0)
To merge this branch: bzr merge lp:~jelmer/brz/lp-logout
Reviewer Review Type Date Requested Status
Martin Packman Approve
Review via email: mp+337498@code.launchpad.net

Commit message

Add a lp-logout command.

Description of the change

Add a lp-logout command.

To post a comment you must log in.
Revision history for this message
Martin Packman (gz) wrote :

Thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/plugins/launchpad/__init__.py'
2--- breezy/plugins/launchpad/__init__.py 2017-06-02 01:01:21 +0000
3+++ breezy/plugins/launchpad/__init__.py 2018-02-09 23:26:43 +0000
4@@ -58,6 +58,7 @@
5 for klsname, aliases in [
6 ("cmd_launchpad_open", ["lp-open"]),
7 ("cmd_launchpad_login", ["lp-login"]),
8+ ("cmd_launchpad_logout", ["lp-logout"]),
9 ("cmd_launchpad_mirror", ["lp-mirror"]),
10 ("cmd_lp_propose_merge", ["lp-submit", "lp-propose"]),
11 ("cmd_lp_find_proposal", [])]:
12
13=== modified file 'breezy/plugins/launchpad/account.py'
14--- breezy/plugins/launchpad/account.py 2017-07-30 16:59:50 +0000
15+++ breezy/plugins/launchpad/account.py 2018-02-09 23:26:43 +0000
16@@ -73,13 +73,17 @@
17 def _set_global_option(username, _config=None):
18 if _config is None:
19 _config = GlobalStack()
20- _config.set('launchpad_username', username)
21+ if username is None:
22+ _config.remove('launchpad_username')
23+ else:
24+ _config.set('launchpad_username', username)
25
26
27 def set_lp_login(username, _config=None):
28 """Set the user's Launchpad username"""
29 _set_global_option(username, _config)
30- _set_auth_user(username)
31+ if username is not None:
32+ _set_auth_user(username)
33
34
35 def _get_auth_user(auth=None):
36
37=== modified file 'breezy/plugins/launchpad/cmds.py'
38--- breezy/plugins/launchpad/cmds.py 2017-08-26 15:17:57 +0000
39+++ breezy/plugins/launchpad/cmds.py 2018-02-09 23:26:43 +0000
40@@ -143,6 +143,30 @@
41 (name,))
42
43
44+class cmd_launchpad_logout(Command):
45+ __doc__ = """Unset the Launchpad user ID.
46+
47+ When communicating with Launchpad, some commands need to know your
48+ Launchpad user ID. This command will log you out from Launchpad.
49+ This means that communication with Launchpad will happen over
50+ HTTPS, and will not require one of your SSH keys to be available.
51+ """
52+ aliases = ['lp-logout']
53+ takes_options = ['verbose']
54+
55+ def run(self, verbose=False):
56+ from . import account
57+ old_username = account.get_lp_login()
58+ if old_username is None:
59+ self.outf.write(gettext('Not logged into Launchpad.\n'))
60+ return 1
61+ account.set_lp_login(None)
62+ if verbose:
63+ self.outf.write(gettext(
64+ "Launchpad user ID %s logged out.\n") %
65+ old_username)
66+
67+
68 # XXX: cmd_launchpad_mirror is untested
69 class cmd_launchpad_mirror(Command):
70 __doc__ = """Ask Launchpad to mirror a branch now."""
71
72=== modified file 'breezy/plugins/launchpad/test_lp_login.py'
73--- breezy/plugins/launchpad/test_lp_login.py 2017-05-22 00:56:52 +0000
74+++ breezy/plugins/launchpad/test_lp_login.py 2018-02-09 23:26:43 +0000
75@@ -56,3 +56,18 @@
76 ['launchpad-login', '-v', '--no-check', 'foo'])
77 self.assertEqual("Launchpad user ID set to 'foo'.\n", out)
78 self.assertEqual('', err)
79+
80+ def test_logout(self):
81+ out, err = self.run_bzr(
82+ ['launchpad-login', '-v', '--no-check', 'foo'])
83+ self.assertEqual("Launchpad user ID set to 'foo'.\n", out)
84+ self.assertEqual('', err)
85+
86+ out, err = self.run_bzr(['launchpad-logout', '-v'])
87+ self.assertEqual("Launchpad user ID foo logged out.\n", out)
88+ self.assertEqual('', err)
89+
90+ def test_logout_not_logged_in(self):
91+ out, err = self.run_bzr(['launchpad-logout', '-v'], retcode=1)
92+ self.assertEqual('Not logged into Launchpad.\n', out)
93+ self.assertEqual("", err)
94
95=== modified file 'doc/en/release-notes/brz-3.0.txt'
96--- doc/en/release-notes/brz-3.0.txt 2018-02-03 13:10:53 +0000
97+++ doc/en/release-notes/brz-3.0.txt 2018-02-09 23:26:43 +0000
98@@ -106,6 +106,9 @@
99 * Support the creation of colocated branches in ``brz fast-import``.
100 (Jelmer Vernooij, #1744626)
101
102+ * New ``lp-logout`` command to unset launchpad username.
103+ (Jelmer Vernooij, #349143)
104+
105 Improvements
106 ************
107

Subscribers

People subscribed via source and target branches