Esempio n. 1
0
 def test_with_pipeline_mapper_both(self):
     result = s('echo 3; echo 2; echo 4 >&2; echo 0 >&2') % sort() > Collect
     self.assertEqual("2\n3\n", result.stdout())
     self.assertEqual("0\n4\n", result.stderr())
     self.assertEqual(
         [(FD.stderr, "0\n"), (FD.stdout, "2\n"), (FD.stdout, "3\n"),
          (FD.stderr, "4\n")],
         list(s('echo 3; echo 2; echo 4 >&2; echo 0 >&2') % sort()))
Esempio n. 2
0
 def test_head_on_heterogenous_stream(self):
     command = []
     for i in range(1, 9):
         command.append("echo %s" % i + (i % 2 == 0) * " >&2")
     result = s("; sleep 0.01; ".join(command)) % head(5) > Collect
     self.assertEqual("1\n3\n5\n", result.stdout())
     self.assertEqual("2\n4\n", result.stderr())
Esempio n. 3
0
 def test_retain_both(self):
     result = s('echo 1; echo 2; echo 3; echo 4; echo 5 >&2; echo 6 >&2'
                ) % retain(lambda x: int(x) % 2) > Collect
     self.assertEqual("1\n3\n", result.stdout())
     self.assertEqual("5\n", result.stderr())
Esempio n. 4
0
 def test_basic_map(self):
     result = s('echo 2; echo 3; echo 4 >&2') | int | (
         lambda x: x * 2) > Collect
     self.assertEqual([4, 6], result.stdout(raw=True))
     self.assertEqual("4\n", result.stderr())
Esempio n. 5
0
 def test_head_on_wrong_stream(self):
     result = s('echo 1; echo 2; echo 3; echo 4; echo 5') / head(
         3) > Collect
     self.assertEqual("1\n2\n3\n4\n5\n", result.stdout())
 def test_cols_basic(self):
     self.assertEqual((('3',),), s('echo 2 3 4') | str.split | cols(1) >= Stdout())
     self.assertEqual((('3', '4'),), s('echo 2 3 4') | str.split | cols(1, 2) >= Stdout())
 def test_stderr(self):
     self.assertEqual((4,), s('echo 2; echo 3; echo 4 >&2; echo 5') % int >= Stderr())
     self.assertEqual({4}, s('echo 2; echo 3; echo 4 >&2; echo 5') % int >= Stderr(set))
 def test_collect(self):
     self.assertEqual('abc\n', (s('echo abc') > Collect).stdout())
Esempio n. 9
0
 def test_invalid_map(self):
     self.assertRaises(RuntimeError, lambda: s('echo 2') | 2)
Esempio n. 10
0
 def test_map_over_both_together(self):
     result = s('echo 2; echo 3; echo 4 >&2') % int % (
         lambda x: x * 2) > Collect
     self.assertEqual([4, 6], result.stdout(raw=True))
     self.assertEqual([8], result.stderr(raw=True))
Esempio n. 11
0
 def test_map_over_both_individually(self):
     result = s('echo 2; echo 3; echo 4 >&2') / int / (
         lambda x: x * 2) | int | (lambda x: x * 10) > Collect
     self.assertEqual([20, 30], result.stdout(raw=True))
     self.assertEqual([8], result.stderr(raw=True))
Esempio n. 12
0
 def test_map_over_err(self):
     result = s('echo 2; echo 3; echo 4 >&2') / int / (
         lambda x: x * 2) > Collect
     self.assertEqual("2\n3\n", result.stdout())
     self.assertEqual([8], result.stderr(raw=True))
 def test_col_basic(self):
     self.assertEqual(('3',), s('echo 2 3 4') | str.split | col(1) >= Stdout())
 def test_cols_with_type(self):
     self.assertEqual(((3,),), s('echo 2 3 4') | str.split | cols((1, int)) >= Stdout())
     self.assertEqual(((3.0, 4),), s('echo 2 3 4') | str.split | cols((1, float), (2, int)) >= Stdout())
 def test_callback_order(self):
     result = list(s('echo abc >&2; sleep 0.1; echo def'))
     self.assertEqual([(FD.stderr, 'abc\n'), (FD.stdout, 'def\n')], result)
 def test_get_exitcode(self):
     command = s('echo abc')
     self.assertRaises(RuntimeError, lambda: command.exitcode)
Esempio n. 17
0
 def test_with_pipeline_mapper_stderr(self):
     result = s('echo 3; echo 2; echo 4 >&2; echo 0 >&2') / sort() > Collect
     self.assertEqual("3\n2\n", result.stdout())
     self.assertEqual("0\n4\n", result.stderr())
 def test_stdout(self):
     self.assertEqual((2, 3, 5), s('echo 2; echo 3; echo 4 >&2; echo 5') % int >= Stdout())
     self.assertEqual({2, 3, 5}, s('echo 2; echo 3; echo 4 >&2; echo 5') % int >= Stdout(set))
Esempio n. 19
0
 def test_head_basic(self):
     result = s('echo 1; echo 2; echo 3; echo 4; echo 5') | head(
         3) > Collect
     self.assertEqual("1\n2\n3\n", result.stdout())
 def test_stdout_stderr(self):
     self.assertEqual((2, 3, 4, 5), s('echo 2; echo 3; sleep 0.01; echo 4 >&2; sleep 0.01; echo 5') % int >= Both())
     self.assertEqual({2, 3, 4, 5}, s('echo 2; echo 3; sleep 0.01; echo 4 >&2; sleep 0.01; echo 5') % int >= Both(set))
 def test_col_with_type(self):
     self.assertEqual((3,), s('echo 2 3 4') | str.split | col(1, int) >= Stdout())