ceph/teuthology/orchestra/test/test_remote.py

57 lines
1.6 KiB
Python
Raw Normal View History

import fudge
import fudge.inspector
from .. import remote
from ..run import RemoteProcess
class TestRemote(object):
def test_shortname(self):
r = remote.Remote(
name='jdoe@xyzzy.example.com',
shortname='xyz',
ssh=fudge.Fake('SSHConnection'),
)
assert r.shortname == 'xyz'
assert str(r) == 'jdoe@xyzzy.example.com'
def test_shortname_default(self):
r = remote.Remote(
name='jdoe@xyzzy.example.com',
ssh=fudge.Fake('SSHConnection'),
)
assert r.shortname == 'xyzzy'
assert str(r) == 'jdoe@xyzzy.example.com'
@fudge.with_fakes
def test_run(self):
fudge.clear_expectations()
ssh = fudge.Fake('SSHConnection')
ssh.expects('get_transport').returns_fake().expects('getpeername')\
.returns(('name', 22))
run = fudge.Fake('run')
args = [
'something',
'more',
]
foo = object()
ret = RemoteProcess(
client=ssh,
args='fakey',
)
r = remote.Remote(name='jdoe@xyzzy.example.com', ssh=ssh)
run.expects_call().with_args(
client=fudge.inspector.arg.passes_test(lambda v: v is ssh),
args=fudge.inspector.arg.passes_test(lambda v: v is args),
foo=fudge.inspector.arg.passes_test(lambda v: v is foo),
name=r.shortname,
).returns(ret)
# monkey patch ook ook
r._runner = run
got = r.run(
args=args,
foo=foo,
)
assert got is ret
assert got.remote is r