TODO refactor to move run.run here?
"""
- return self._runner(client=self.ssh, **kwargs)
+ r = self._runner(client=self.ssh, **kwargs)
+ r.remote = self
+ return r
log = logging.getLogger(__name__)
class RemoteProcess(object):
- __slots__ = ['command', 'stdin', 'stdout', 'stderr', 'exitstatus']
+ __slots__ = [
+ 'command', 'stdin', 'stdout', 'stderr', 'exitstatus',
+ # for orchestra.remote.Remote to place a backreference
+ 'remote',
+ ]
def __init__(self, command, stdin, stdout, stderr, exitstatus):
self.command = command
self.stdin = stdin
import nose
from .. import remote
+from ..run import RemoteProcess
def test_shortname():
'more',
]
foo = object()
- ret = object()
+ ret = RemoteProcess(
+ command='fakey',
+ stdin=None,
+ stdout=None,
+ stderr=None,
+ exitstatus=None,
+ )
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=foo,
)
assert got is ret
+ assert got.remote is r