From 948872eb97286dd96f70d9b71554fe6e9365e047 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Wed, 21 Feb 2024 17:14:23 -0600 Subject: [PATCH] fix up units --- test/units/mock/procenv.py | 10 +++++----- test/units/module_utils/conftest.py | 9 +++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/test/units/mock/procenv.py b/test/units/mock/procenv.py index f82f4354d8b..57c4587d9d6 100644 --- a/test/units/mock/procenv.py +++ b/test/units/mock/procenv.py @@ -22,8 +22,9 @@ import sys import json from contextlib import contextmanager -from io import BytesIO, StringIO +from io import BytesIO, TextIOWrapper import unittest +from unittest.mock import patch from ansible.module_utils.common.text.converters import to_bytes @@ -35,14 +36,13 @@ def swap_stdin_and_argv(stdin_data='', argv_data=tuple()): real_stdin = sys.stdin real_argv = sys.argv - fake_stream = StringIO(stdin_data) - fake_stream.buffer = BytesIO(to_bytes(stdin_data)) + fake_stream = TextIOWrapper(BytesIO(to_bytes(stdin_data))) try: sys.stdin = fake_stream sys.argv = argv_data - - yield + with patch('select.select', return_value=([sys.stdin], [], [])): + yield finally: sys.stdin = real_stdin sys.argv = real_argv diff --git a/test/units/module_utils/conftest.py b/test/units/module_utils/conftest.py index 41921f12e2d..011f651d8fb 100644 --- a/test/units/module_utils/conftest.py +++ b/test/units/module_utils/conftest.py @@ -5,7 +5,7 @@ from __future__ import annotations import json import sys -from io import BytesIO +from io import BytesIO, TextIOWrapper import pytest @@ -34,10 +34,11 @@ def stdin(mocker, request): else: raise Exception('Malformed data to the stdin pytest fixture') - fake_stdin = BytesIO(to_bytes(args, errors='surrogate_or_strict')) + fake_stdin = TextIOWrapper(BytesIO(to_bytes(args, errors='surrogate_or_strict'))) - mocker.patch('ansible.module_utils.basic.sys.stdin', mocker.MagicMock()) - mocker.patch('ansible.module_utils.basic.sys.stdin.buffer', fake_stdin) + mocker.patch('ansible.module_utils.basic.sys.stdin', fake_stdin) + + mocker.patch('select.select', return_value=([fake_stdin], [], [])) yield fake_stdin