mitogen/tests/setns_test.py

47 lines
1010 B
Python

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()