diff options
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/conch/test/test_openssh_compat.py')
-rwxr-xr-x | lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/conch/test/test_openssh_compat.py | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/conch/test/test_openssh_compat.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/conch/test/test_openssh_compat.py deleted file mode 100755 index 8b4e1a6f..00000000 --- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/conch/test/test_openssh_compat.py +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright (c) Twisted Matrix Laboratories. -# See LICENSE for details. - -""" -Tests for L{twisted.conch.openssh_compat}. -""" - -import os - -from twisted.trial.unittest import TestCase -from twisted.python.filepath import FilePath -from twisted.python.compat import set - -try: - import Crypto.Cipher.DES3 - import pyasn1 -except ImportError: - OpenSSHFactory = None -else: - from twisted.conch.openssh_compat.factory import OpenSSHFactory - -from twisted.conch.test import keydata -from twisted.test.test_process import MockOS - - -class OpenSSHFactoryTests(TestCase): - """ - Tests for L{OpenSSHFactory}. - """ - if getattr(os, "geteuid", None) is None: - skip = "geteuid/seteuid not available" - elif OpenSSHFactory is None: - skip = "Cannot run without PyCrypto or PyASN1" - - def setUp(self): - self.factory = OpenSSHFactory() - self.keysDir = FilePath(self.mktemp()) - self.keysDir.makedirs() - self.factory.dataRoot = self.keysDir.path - - self.keysDir.child("ssh_host_foo").setContent("foo") - self.keysDir.child("bar_key").setContent("foo") - self.keysDir.child("ssh_host_one_key").setContent( - keydata.privateRSA_openssh) - self.keysDir.child("ssh_host_two_key").setContent( - keydata.privateDSA_openssh) - self.keysDir.child("ssh_host_three_key").setContent( - "not a key content") - - self.keysDir.child("ssh_host_one_key.pub").setContent( - keydata.publicRSA_openssh) - - self.mockos = MockOS() - self.patch(os, "seteuid", self.mockos.seteuid) - self.patch(os, "setegid", self.mockos.setegid) - - - def test_getPublicKeys(self): - """ - L{OpenSSHFactory.getPublicKeys} should return the available public keys - in the data directory - """ - keys = self.factory.getPublicKeys() - self.assertEqual(len(keys), 1) - keyTypes = keys.keys() - self.assertEqual(keyTypes, ['ssh-rsa']) - - - def test_getPrivateKeys(self): - """ - L{OpenSSHFactory.getPrivateKeys} should return the available private - keys in the data directory. - """ - keys = self.factory.getPrivateKeys() - self.assertEqual(len(keys), 2) - keyTypes = keys.keys() - self.assertEqual(set(keyTypes), set(['ssh-rsa', 'ssh-dss'])) - self.assertEqual(self.mockos.seteuidCalls, []) - self.assertEqual(self.mockos.setegidCalls, []) - - - def test_getPrivateKeysAsRoot(self): - """ - L{OpenSSHFactory.getPrivateKeys} should switch to root if the keys - aren't readable by the current user. - """ - keyFile = self.keysDir.child("ssh_host_two_key") - # Fake permission error by changing the mode - keyFile.chmod(0000) - self.addCleanup(keyFile.chmod, 0777) - # And restore the right mode when seteuid is called - savedSeteuid = os.seteuid - def seteuid(euid): - keyFile.chmod(0777) - return savedSeteuid(euid) - self.patch(os, "seteuid", seteuid) - keys = self.factory.getPrivateKeys() - self.assertEqual(len(keys), 2) - keyTypes = keys.keys() - self.assertEqual(set(keyTypes), set(['ssh-rsa', 'ssh-dss'])) - self.assertEqual(self.mockos.seteuidCalls, [0, os.geteuid()]) - self.assertEqual(self.mockos.setegidCalls, [0, os.getegid()]) |