def test_sh(self): """ test Cmd ENV """ self.assertSh(sh('echo $var', e={'var': 'foobar'}), 'foobar') self.assertRaises( NotImplementedError, lambda: sh('echo foo; echo bar >&2', {1: 2})) ### test Pipe ENV self.assertSh( pipe(Sh('echo $x'), Sh('cat; echo $x'), e=dict(x='foobar')), 'foobarfoobar') ### test Pipe pathetic case self.assertSh(pipe(Sh("echo foo"), Cmd("cat", {0: here("bar")})), 'bar') ### test JOBS self.assertEquals(len(JOBS), 0) Pipe(Cmd('yes'), Cmd('cat', {1: os.devnull})).spawn() JOBS[-1].cmds[0].p.kill() self.assertEquals(JOBS[-1].cmds[-1].p.wait(), 0) ### test Cmd redirect {1: n} f = tempfile.TemporaryFile() self.assertEquals( Sh('echo foo', {1: f.fileno()}).run(), 0) f.seek(0) self.assertSh(f.read(), 'foo')
def test_here(self): self.assertSh(cmd('cat', {0: here("foo bar")}), 'foo bar')