コード例 #1
0
    def test_two_expectations(self):
        with subprocess_mock.patch_subprocess() as mock:
            mock.expect(['list_serials'], returncode=0)
            mock.expect(['vandra_capture'], returncode=0)

            subprocess.check_call(['list_serials'])
            subprocess.check_call(['vandra_capture'])
コード例 #2
0
 def test_popen_communicate(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['ls', '-l'], stdout="X", stderr="Y", returncode=0)
         p = subprocess.Popen(['ls', '-l'])
         stdout, stderr = p.communicate()
         assert_equal(stdout, b'X')
         assert_equal(stderr, b'Y')
コード例 #3
0
 def test_popen_communicate_universal_newlines(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['ls', '-l'], stdout="X", stderr="Y", returncode=0)
         p = subprocess.Popen(['ls', '-l'], universal_newlines=True)
         stdout, stderr = p.communicate()
         assert_equal(stdout, "X")
         assert_equal(stderr, "Y")
コード例 #4
0
    def test_side_effect_bad_expectation(self):
        """It is an error to specify both side_effect and stdout, stderr or returncode"""
        def side_effect(argv, stdin, stdout, stderr):
            return 0

        with subprocess_mock.patch_subprocess() as mock:
            mock.expect('foo', side_effect=side_effect, stdout="what?")
コード例 #5
0
    def test_side_effect_returncode(self):
        def side_effect(argv, stdin, stdout, stderr):
            return 17

        with subprocess_mock.patch_subprocess() as mock:
            mock.expect('foo', side_effect=side_effect)
            assert_equal(subprocess.call('foo'), 17)
コード例 #6
0
    def test_side_effect_argv(self):
        def side_effect(argv, stdin, stdout, stderr):
            print(argv[1], file=stdout)
            return 0

        with subprocess_mock.patch_subprocess() as mock:
            mock.expect(['foo', '--lol'], side_effect=side_effect)
            assert_equal(subprocess.check_output(['foo', '--lol']), b'--lol\n')
コード例 #7
0
    def test_side_effect_stdout(self):
        def side_effect(argv, stdin, stdout, stderr):
            print("OH HI THERE!", file=stdout)
            return 0

        with subprocess_mock.patch_subprocess() as mock:
            mock.expect('foo', side_effect=side_effect)
            assert_equal(subprocess.check_output('foo'), b'OH HI THERE!\n')
コード例 #8
0
 def test_too_many_args(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['cmd', '--flag=.+'], returncode=0)
         subprocess.check_call(['cmd', '--flag=YES', '--unexpected'])
コード例 #9
0
 def test_regexp_no_match(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['cmd', '--flag=.+'], returncode=0)
         subprocess.check_call(['cmd', '--wrong=YES'])
コード例 #10
0
 def test_timeout(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['ls', '-l'], returncode=-1, duration=10)
         p = subprocess.Popen(['ls', '-l'])
         p.wait(9)
コード例 #11
0
 def test_check_ouput_failure(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['ls', '-l'], returncode=-1)
         subprocess.check_output(['ls', '-l'])
コード例 #12
0
 def test_check_ouput_success(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['ls', '-l'], stdout="FOOBAR", returncode=0)
         stdout = subprocess.check_output(['ls', '-l'])
         assert_equal(stdout, b'FOOBAR')
コード例 #13
0
 def test_unexpected_popen(self):
     with subprocess_mock.patch_subprocess():
         subprocess.check_call(['ls', '-l'])
コード例 #14
0
 def test_check_call_success(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect(['ls', '-l'], returncode=0)
         subprocess.check_call(['ls', '-l'])
コード例 #15
0
 def test_patch_restored(self):
     original = subprocess.Popen
     with subprocess_mock.patch_subprocess():
         pass
     assert_equal(original, subprocess.Popen)
コード例 #16
0
 def test_string_command(self):
     with subprocess_mock.patch_subprocess() as mock:
         mock.expect('just_a_string', returncode=0)
         subprocess.check_call('just_a_string')