From 2dbb193d7aacd2793c04625f6225226a98ae7a30 Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Tue, 3 Sep 2024 20:24:49 +0200 Subject: [PATCH] refactor: rai_ws() into pytest fixture --- tests/core/test_rai_cli.py | 39 ++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/tests/core/test_rai_cli.py b/tests/core/test_rai_cli.py index 2bf3f1930..3a2fd1d08 100644 --- a/tests/core/test_rai_cli.py +++ b/tests/core/test_rai_cli.py @@ -1,27 +1,34 @@ import os +import uuid from pathlib import Path -from tempfile import TemporaryDirectory from unittest.mock import MagicMock, patch +import pytest + from rai.cli.rai_cli import create_rai_ws -def test_create_rai_ws(): - with TemporaryDirectory() as directory: - # Mock ArgumentParser and its methods - mock_parser = MagicMock() - mock_args = MagicMock() - mock_args.name = "test_package" - mock_args.destination_directory = directory - mock_parser.parse_args.return_value = mock_args +@pytest.fixture +def rai_ws(): + directory = Path("/tmp/" + str(uuid.uuid4())) + os.mkdir(directory) + mock_parser = MagicMock() + mock_args = MagicMock() + mock_args.name = "test_package" + mock_args.destination_directory = directory + mock_parser.parse_args.return_value = mock_args + + # Patch argparse.ArgumentParser to return our mock + with patch("argparse.ArgumentParser", return_value=mock_parser): + create_rai_ws() + + return directory - # Patch argparse.ArgumentParser to return our mock - with patch("argparse.ArgumentParser", return_value=mock_parser): - create_rai_ws() - whoami_directory = Path(directory) / "test_package_whoami" +def test_create_rai_ws(rai_ws: Path): + whoami_directory = Path(rai_ws) / "test_package_whoami" - assert os.path.exists(whoami_directory), "Description folder is missing" + assert os.path.exists(whoami_directory), "Description folder is missing" - description_files = os.listdir(whoami_directory / "description") - assert "robot_constitution.txt" in description_files + description_files = os.listdir(whoami_directory / "description") + assert "robot_constitution.txt" in description_files