~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/codehosting/sshserver/tests/test_session.py

  • Committer: Jeroen Vermeulen
  • Date: 2011-12-22 09:05:46 UTC
  • mto: This revision was merged to the branch mainline in revision 14583.
  • Revision ID: jeroen.vermeulen@canonical.com-20111222090546-6ctytqkw7zhqq1xy
Lint.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright 2009-2010 Canonical Ltd.  This software is licensed under the
 
1
# Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
2
2
# GNU Affero General Public License version 3 (see the file LICENSE).
3
3
 
4
4
"""Tests for SSH session support on the codehosting SSH server."""
278
278
class TestRestrictedExecOnlySession(AvatarTestCase):
279
279
    """Tests for RestrictedExecOnlySession.
280
280
 
281
 
    bzr+ssh requests to the code hosting SSH server ask the server to execute a
282
 
    particular command: 'bzr serve --inet /'. The SSH server rejects all other
283
 
    commands.
 
281
    bzr+ssh requests to the code hosting SSH server ask the server to execute
 
282
    a particular command: 'bzr serve --inet /'. The SSH server rejects all
 
283
    other commands.
284
284
 
285
285
    When it receives the expected command, the SSH server doesn't actually
286
286
    execute the exact given command. Instead, it executes another pre-defined
291
291
        AvatarTestCase.setUp(self)
292
292
        self.avatar = CodehostingAvatar(self.aliceUserDict, None)
293
293
        self.reactor = MockReactor()
 
294
 
294
295
        def lookup_template(command):
295
296
            if command == 'foo':
296
297
                return 'bar baz %(user_id)s'
297
298
            raise ForbiddenCommand("Not allowed to execute %r." % command)
 
299
 
298
300
        self.session = RestrictedExecOnlySession(
299
301
            self.avatar, self.reactor, lookup_template)
300
302
 
342
344
        # RestrictedExecOnlySession can be easily registered as an adapter for
343
345
        # Conch avatars.
344
346
        from twisted.internet import reactor
 
347
 
345
348
        def lookup_template(command):
346
349
            if command == 'foo':
347
350
                return 'bar baz'
348
351
            raise ForbiddenCommand(command)
 
352
 
349
353
        adapter = RestrictedExecOnlySession.getAvatarAdapter(
350
354
            lookup_template)
351
355
        session = adapter(self.avatar)