Skip to main content
Glama
test_nsccn_phase1_mutates_context.py2.38 kB
#!/usr/bin/env python3 """ Phase 1 Tests: MUTATES Edge Context Verification This test suite specifically validates the format and content of the context string attached to MUTATES edges. Format spec: "line:<line_number> type:<mutation_type>" """ import unittest import sys import os import tempfile import re from pathlib import Path # Add src to path for imports sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'src')) from nsccn.parser import CodeParser class TestMutatesContext(unittest.TestCase): def setUp(self): self.parser = CodeParser() self.temp_dir = tempfile.mkdtemp() def tearDown(self): import shutil shutil.rmtree(self.temp_dir) def _parse_code(self, code: str) -> dict: test_file = Path(self.temp_dir) / "test_context.py" test_file.write_text(code) return self.parser.parse_file(str(test_file)) def test_assignment_context(self): """Verify context for simple assignment.""" code = """ def func(x): x = 1 # line 3 """ result = self._parse_code(code) mutates = [e for e in result['edges'] if e[1] == 'MUTATES'] self.assertTrue(mutates, "Should detect assignment") context = mutates[0][3] # Expect: "line:3 type:assignment" self.assertRegex(context, r"line:3 type:assignment") def test_augmented_assignment_context(self): """Verify context for augmented assignment.""" code = """ def func(x): x += 1 # line 3 """ result = self._parse_code(code) mutates = [e for e in result['edges'] if e[1] == 'MUTATES'] self.assertTrue(mutates) context = mutates[0][3] # Expect: "line:3 type:augmented_assignment" self.assertRegex(context, r"line:3 type:augmented_assignment") def test_method_call_context(self): """Verify context for mutating method call.""" code = """ def func(lst): lst.append(1) # line 3 """ result = self._parse_code(code) mutates = [e for e in result['edges'] if e[1] == 'MUTATES'] self.assertTrue(mutates) context = mutates[0][3] # Expect: "line:3 type:method_call" self.assertRegex(context, r"line:3 type:method_call") if __name__ == '__main__': unittest.main()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itstanner5216/EliteMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server