Skip to content

Commit 17b3ea8

Browse files
authored
Update test_dependency_analyzer.py
1 parent 2a8153d commit 17b3ea8

1 file changed

Lines changed: 34 additions & 28 deletions

File tree

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,43 @@
11
import unittest
22
from pathlib import Path
3+
from unittest.mock import patch, MagicMock
34
from ai_core.dependency_analyzer import DependencyAnalyzer
45

56
class TestDependencyAnalyzer(unittest.TestCase):
6-
def setUp(self):
7-
self.analyzer = DependencyAnalyzer()
8-
self.test_data_dir = Path(__file__).parent / "test_data"
9-
self.test_data_dir.mkdir(exist_ok=True)
7+
@classmethod
8+
def setUpClass(cls):
9+
cls.test_data_dir = Path(__file__).parent / "test_data"
1010

11-
# Ejemplo de test adicional para edge cases
12-
def test_empty_requirements_file(self):
13-
empty_file = self.test_data_dir / "empty.txt"
14-
empty_file.touch()
15-
result = self.analyzer.parse_requirements_txt(empty_file)
16-
self.assertEqual(len(result), 0)
17-
18-
# Crear archivo de prueba
19-
self.test_file = self.test_data_dir / "requirements_sample.txt"
20-
with open(self.test_file, "w") as f:
21-
f.write("numpy\npandas\n# Esto es un comentario\n\n")
22-
2311
def test_parse_requirements_txt(self):
24-
"""Test para parse_requirements_txt"""
25-
result = self.analyzer.parse_requirements_txt(self.test_file)
26-
self.assertEqual(len(result), 2)
27-
self.assertIn("numpy", result)
28-
self.assertIn("pandas", result)
29-
self.assertNotIn("# Esto es un comentario", result)
30-
31-
def test_get_package_dependencies(self):
32-
"""Test para _get_package_dependencies"""
33-
result = self.analyzer._get_package_dependencies("pip")
34-
self.assertTrue("Name: pip" in result or "Error" in result)
12+
"""Test parsing standard requirements.txt"""
13+
analyzer = DependencyAnalyzer()
14+
test_file = self.test_data_dir / "requirements_sample.txt"
15+
16+
with patch.object(analyzer, '_get_package_dependencies') as mock_deps:
17+
mock_deps.return_value = {}
18+
analyzer._parse_dependencies(test_file)
19+
20+
self.assertIn("numpy", analyzer.dependency_graph)
21+
self.assertEqual(
22+
analyzer.dependency_graph["numpy"]["version"],
23+
">=1.19.0,<2.0.0"
24+
)
25+
26+
@patch('subprocess.run')
27+
def test_package_dependencies(self, mock_run):
28+
"""Test getting package dependencies"""
29+
mock_result = MagicMock()
30+
mock_result.returncode = 0
31+
mock_result.stdout = "Requires: pandas, scipy\nVersion: 1.2.3"
32+
mock_run.return_value = mock_result
33+
34+
analyzer = DependencyAnalyzer()
35+
deps = analyzer._get_package_dependencies("numpy")
36+
37+
self.assertIn("pandas", deps)
38+
self.assertIn("scipy", deps)
39+
40+
# [...] Additional test cases
3541

36-
if __name__ == "__main__":
42+
if __name__ == '__main__':
3743
unittest.main()

0 commit comments

Comments
 (0)