Merge lp:~cjwatson/lazr.sshserver/fix-test-errors into lp:lazr.sshserver

Proposed by Colin Watson
Status: Merged
Merged at revision: 92
Proposed branch: lp:~cjwatson/lazr.sshserver/fix-test-errors
Merge into: lp:lazr.sshserver
Diff against target: 54 lines (+13/-5)
2 files modified
src/lazr/sshserver/auth.py (+1/-1)
src/lazr/sshserver/tests/test_auth.py (+12/-4)
To merge this branch: bzr merge lp:~cjwatson/lazr.sshserver/fix-test-errors
Reviewer Review Type Date Requested Status
Cristian Gonzalez (community) Approve
Review via email: mp+408478@code.launchpad.net

Commit message

Fix (non-fatal!) test errors with recent Twisted versions.

Description of the change

`Portal.login` needs to return an `(interface, avatar, logout)` tuple. Also sync up `SSHUserAuthServer.ssh_USERAUTH_REQUEST` slightly with the original version in Twisted.

To post a comment you must log in.
Revision history for this message
Cristian Gonzalez (cristiangsp) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/lazr/sshserver/auth.py'
2--- src/lazr/sshserver/auth.py 2020-10-26 17:04:38 +0000
3+++ src/lazr/sshserver/auth.py 2021-09-13 09:59:46 +0000
4@@ -217,7 +217,7 @@
5 self._ebBadAuth(failure.Failure(ConchError('auth returned none')))
6 return
7 d.addCallback(self._sendConfiguredBanner)
8- d.addCallbacks(self._cbFinishedAuth)
9+ d.addCallback(self._cbFinishedAuth)
10 d.addErrback(self._ebMaybeBadAuth)
11 # This line does not appear in the original.
12 d.addErrback(self._ebLogToBanner)
13
14=== modified file 'src/lazr/sshserver/tests/test_auth.py'
15--- src/lazr/sshserver/tests/test_auth.py 2020-10-26 17:04:38 +0000
16+++ src/lazr/sshserver/tests/test_auth.py 2021-09-13 09:59:46 +0000
17@@ -224,12 +224,16 @@
18 # signature to query whether publickey authentication would be
19 # acceptable. See RFC 4252, Section 7.
20 class MockLogin(object):
21+ def __init__(self, portal):
22+ self.portal = portal
23+
24 def __call__(self, credentials, mind, *interfaces):
25 self.credentials = credentials
26- return defer.succeed(None)
27+ return defer.succeed(self.portal.realm.requestAvatar(
28+ credentials.username, mind, *interfaces))
29
30 self.transport.sessionID = ''
31- self.portal.login = MockLogin()
32+ self.portal.login = MockLogin(self.portal)
33 keydir = sibpath(__file__, 'keys')
34 with open(os.path.join(keydir, 'ssh_host_key_rsa.pub'), 'rb') as f:
35 public_key = Key.fromString(f.read())
36@@ -248,12 +252,16 @@
37 # paramiko < 2.0.0 truncates RSA signatures whose most significant
38 # byte is zero. auth_publickey tolerates this.
39 class MockLogin(object):
40+ def __init__(self, portal):
41+ self.portal = portal
42+
43 def __call__(self, credentials, mind, *interfaces):
44 self.credentials = credentials
45- return defer.succeed(None)
46+ return defer.succeed(self.portal.realm.requestAvatar(
47+ credentials.username, mind, *interfaces))
48
49 self.transport.sessionID = ''
50- self.portal.login = MockLogin()
51+ self.portal.login = MockLogin(self.portal)
52 keydir = sibpath(__file__, 'keys')
53 with open(os.path.join(keydir, 'ssh_host_key_rsa.pub'), 'rb') as f:
54 public_key = Key.fromString(f.read())

Subscribers

People subscribed via source and target branches

to status/vote changes: