import os import socket import sys import mitogen import mitogen.parent import unittest2 import testlib class DockerTest(testlib.DockerMixin, testlib.TestCase): def test_okay(self): # Magic calls must happen as root. try: root = self.router.sudo() except mitogen.core.StreamError: raise unittest2.SkipTest("requires sudo to localhost root") via_ssh = self.docker_ssh( username='mitogen__has_sudo', password='has_sudo_password', ) via_setns = self.router.setns( kind='docker', container=self.dockerized_ssh.container_name, via=root, ) self.assertEquals( via_ssh.call(socket.gethostname), via_setns.call(socket.gethostname), ) DockerTest = unittest2.skipIf( condition=sys.version_info < (2, 5), reason="mitogen.setns unsupported on Python <2.4" )(DockerTest) if __name__ == '__main__': unittest2.main()