def test_run_playbook_logging(self, mock_run_playbook): """ Ensure logging routines are working on _run_playbook method """ stdout_r, stdout_w = os.pipe() stderr_r, stderr_w = os.pipe() with open(stdout_r, 'rb', buffering=0) as stdout, open(stderr_r, 'rb', buffering=0) as stderr: mock_run_playbook.return_value.__enter__.return_value.stdout = stdout mock_run_playbook.return_value.__enter__.return_value.stderr = stderr mock_run_playbook.return_value.__enter__.return_value.returncode = 0 os.write(stdout_w, b'Hello\n') os.close(stdout_w) os.write(stderr_w, b'Hi\n') os.close(stderr_w) instance = OpenEdXInstanceFactory() log, returncode = instance._run_playbook("requirements", "playbook") self.assertCountEqual(log, ['Hello', 'Hi']) self.assertEqual(returncode, 0)