Add Python 3.10 support to CLI

This commit is contained in:
Thiago Moretto
2024-08-29 10:22:54 -03:00
parent 172758020c
commit fa937bf3a7
2 changed files with 107 additions and 10 deletions

View File

@@ -1,9 +1,10 @@
import unittest
from io import StringIO
from unittest.mock import MagicMock, patch
import sys
from crewai.cli.deploy.main import DeployCommand
from crewai.cli.deploy.utils import parse_toml
class TestDeployCommand(unittest.TestCase):
@patch("crewai.cli.deploy.main.get_auth_token")
@@ -151,3 +152,62 @@ class TestDeployCommand(unittest.TestCase):
self.assertIn(
"Crew 'test_project' removed successfully", fake_out.getvalue()
)
@patch('crewai.cli.deploy.utils.sys.version_info', (3, 10))
def test_parse_toml_python_310(self):
toml_content = """
[tool.poetry]
name = "test_project"
version = "0.1.0"
[tool.poetry.dependencies]
python = "^3.10"
crewai = "^0.1.0"
"""
parsed = parse_toml(toml_content)
self.assertEqual(parsed['tool']['poetry']['name'], 'test_project')
self.assertEqual(parsed['tool']['poetry']['dependencies']['crewai'], '^0.1.0')
@unittest.skipIf(sys.version_info < (3, 11), "Requires Python 3.11+")
def test_parse_toml_python_311_plus(self):
toml_content = """
[tool.poetry]
name = "test_project"
version = "0.1.0"
[tool.poetry.dependencies]
python = "^3.11"
crewai = "^0.1.0"
"""
parsed = parse_toml(toml_content)
self.assertEqual(parsed['tool']['poetry']['name'], 'test_project')
self.assertEqual(parsed['tool']['poetry']['dependencies']['crewai'], '^0.1.0')
@patch('builtins.open', new_callable=unittest.mock.mock_open, read_data="""
[tool.poetry]
name = "test_project"
version = "0.1.0"
[tool.poetry.dependencies]
python = "^3.10"
crewai = "^0.1.0"
""")
def test_get_project_name_python_310(self, mock_open):
from crewai.cli.deploy.utils import get_project_name
project_name = get_project_name()
self.assertEqual(project_name, 'test_project')
@unittest.skipIf(sys.version_info < (3, 11), "Requires Python 3.11+")
@patch('builtins.open', new_callable=unittest.mock.mock_open, read_data="""
[tool.poetry]
name = "test_project"
version = "0.1.0"
[tool.poetry.dependencies]
python = "^3.11"
crewai = "^0.1.0"
""")
def test_get_project_name_python_311_plus(self, mock_open):
from crewai.cli.deploy.utils import get_project_name
project_name = get_project_name()
self.assertEqual(project_name, 'test_project')