fakessh: Add integration test for inter-child rsync.

wip-fakessh-exit-status
David Wilson 7 years ago
parent b2f13f1fa4
commit 1510b72a25

@ -24,3 +24,39 @@ class RsyncTest(testlib.DockerMixin, unittest.TestCase):
assert context.call(os.path.exists, '/tmp/data')
assert context.call(os.path.exists, '/tmp/data/simple_pkg/a.py')
def test_rsync_between_direct_children(self):
# master -> SSH -> has-sudo-pubkey -> rsync(.ssh) -> master ->
# has-sudo -> rsync
pubkey_acct = self.docker_ssh(
username='has-sudo-pubkey',
identity_file=testlib.data_path('docker/has-sudo-pubkey.key'),
)
nopw_acct = self.docker_ssh(
username='has-sudo-nopw',
password='y',
)
webapp_acct = self.router.sudo(
via=nopw_acct,
username='webapp',
)
dest_path = webapp_acct.call(os.path.expanduser, '~/.ssh')
if webapp_acct.call(os.path.exists, dest_path):
webapp_acct.call(shutil.rmtree, dest_path)
return_code = pubkey_acct.call(mitogen.fakessh.run, webapp_acct, args=[
'rsync', '--progress', '-vvva', '.ssh/', 'target:' + dest_path
])
assert return_code == 0
assert pubkey_acct.call(os.path.getsize, '.ssh/authorized_keys') == \
webapp_acct.call(os.path.getsize, dest_path + '/authorized_keys')
if __name__ == '__main__':
import mitogen.utils
mitogen.utils.log_to_file(level='DEBUG', io=False)
unittest.main()

Loading…
Cancel
Save