Skip to content

Commit 0436d04

Browse files
authored
Merge pull request #263 from tcdent/test-frameworks-dependencies
Create separate test environments for each framework.
2 parents a8a0987 + d006f1a commit 0436d04

16 files changed

Lines changed: 70 additions & 39 deletions

.github/workflows/python-testing.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,17 @@ jobs:
2525

2626
strategy:
2727
matrix:
28-
python-version: [3.10,3.11,3.12]
28+
python-version: ["3.10","3.11","3.12"] # versions need to be strings
2929

3030
steps:
3131
- uses: actions/checkout@v2
3232
- name: Set up Python
33-
uses: actions/setup-python@v2
33+
uses: actions/setup-python@v5
3434
with:
35-
python-version: '3.11' # Use a default Python version for running tox
35+
python-version: ${{ matrix.python-version }}
3636
- name: Install tox
3737
run: pip install tox
38+
- name: Install tox-gh-actions
39+
run: pip install tox-gh-actions # allows tox to get the current python version
3840
- name: Run tests with tox
39-
run: tox
41+
run: tox # we can't pass arguments to tox when using tox-gh-actions, so all frameworks happen in one run

pyproject.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,12 @@ test = [
4646
crewai = [
4747
"crewai==0.100.0",
4848
"crewai-tools==0.33.0",
49+
"shapely==2.0.6" # crewai-tools needs this, but 2.0.7 is broken
4950
]
5051
langgraph = [
5152
"langgraph>=0.2.61",
5253
"langchain>=0.3.14",
5354
]
54-
all = [
55-
"agentstack[dev,test,crewai,langgraph]",
56-
]
5755

5856
[tool.setuptools.package-data]
5957
agentstack = ["templates/**/*"]

tests/test_cli_templates.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
class CLITemplatesTest(unittest.TestCase):
1313
def setUp(self):
14-
self.project_dir = Path(BASE_PATH / 'tmp/cli_templates')
14+
self.framework = os.getenv('TEST_FRAMEWORK')
15+
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'cli_templates'
1516
os.makedirs(self.project_dir, exist_ok=True)
1617
os.chdir(self.project_dir)
1718

tests/test_cli_tools.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
# TODO parameterized framework
1818
class CLIToolsTest(unittest.TestCase):
1919
def setUp(self):
20-
self.project_dir = Path(BASE_PATH / 'tmp/cli_tools')
20+
self.framework = os.getenv('TEST_FRAMEWORK')
21+
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'cli_tools'
2122
os.makedirs(self.project_dir, exist_ok=True)
2223
os.chdir(self.project_dir)
2324

tests/test_frameworks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pathlib import Path
44
import shutil
55
import unittest
6-
from parameterized import parameterized, parameterized_class
6+
from parameterized import parameterized
77

88
from agentstack.conf import ConfigFile, set_path
99
from agentstack.exceptions import ValidationError
@@ -16,9 +16,9 @@
1616
BASE_PATH = Path(__file__).parent
1717

1818

19-
@parameterized_class([{"framework": framework} for framework in frameworks.SUPPORTED_FRAMEWORKS])
2019
class TestFrameworks(unittest.TestCase):
2120
def setUp(self):
21+
self.framework = os.getenv('TEST_FRAMEWORK')
2222
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'test_frameworks'
2323

2424
os.makedirs(self.project_dir)

tests/test_frameworks_langgraph.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818

1919
class FrameworksLanggraphTest(unittest.TestCase):
2020
def setUp(self):
21-
self.project_dir = BASE_PATH / 'tmp/frameworks/langgraph'
21+
self.framework = os.getenv('TEST_FRAMEWORK')
22+
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'langgraph'
2223
conf.set_path(self.project_dir)
2324
os.makedirs(self.project_dir / 'src/config')
2425

tests/test_generation_agent.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from pathlib import Path
33
import shutil
44
import unittest
5-
from parameterized import parameterized_class
65
import ast
76

87
from agentstack.conf import ConfigFile, set_path
@@ -15,10 +14,10 @@
1514
BASE_PATH = Path(__file__).parent
1615

1716

18-
@parameterized_class([{"framework": framework} for framework in frameworks.SUPPORTED_FRAMEWORKS])
1917
class TestGenerationAgent(unittest.TestCase):
2018
def setUp(self):
21-
self.project_dir = BASE_PATH / 'tmp' / 'agent_generation'
19+
self.framework = os.getenv('TEST_FRAMEWORK')
20+
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'agent_generation'
2221

2322
os.makedirs(self.project_dir)
2423
os.makedirs(self.project_dir / 'src')

tests/test_generation_files.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
# TODO copy files to working directory
1919
class GenerationFilesTest(unittest.TestCase):
2020
def setUp(self):
21-
self.project_dir = BASE_PATH / "tmp" / "generation_files"
21+
self.framework = os.getenv('TEST_FRAMEWORK')
22+
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'generation_files'
2223
os.makedirs(self.project_dir)
2324

2425
shutil.copy(BASE_PATH / "fixtures/agentstack.json", self.project_dir / "agentstack.json")

tests/test_generation_tasks.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from pathlib import Path
33
import shutil
44
import unittest
5-
from parameterized import parameterized_class
65
import ast
76

87
from agentstack.conf import ConfigFile, set_path
@@ -16,10 +15,10 @@
1615
BASE_PATH = Path(__file__).parent
1716

1817

19-
@parameterized_class([{"framework": framework} for framework in frameworks.SUPPORTED_FRAMEWORKS])
2018
class TestGenerationAgent(unittest.TestCase):
2119
def setUp(self):
22-
self.project_dir = BASE_PATH / 'tmp' / 'agent_generation'
20+
self.framework = os.getenv('TEST_FRAMEWORK')
21+
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'agent_generation'
2322

2423
os.makedirs(self.project_dir)
2524
os.makedirs(self.project_dir / 'src')

tests/test_generation_tool.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515

1616

1717
# TODO parameterize all tools
18-
@parameterized_class([{"framework": framework} for framework in frameworks.SUPPORTED_FRAMEWORKS])
1918
class TestGenerationTool(unittest.TestCase):
2019
def setUp(self):
21-
self.project_dir = BASE_PATH / 'tmp' / 'tool_generation'
20+
self.framework = os.getenv('TEST_FRAMEWORK')
21+
self.project_dir = BASE_PATH / 'tmp' / self.framework / 'tool_generation'
2222

2323
os.makedirs(self.project_dir)
2424
os.makedirs(self.project_dir / 'src')

0 commit comments

Comments
 (0)