Files
cleveragents-core/robot/semantic_validation.robot

108 lines
5.6 KiB
Plaintext

*** Settings ***
Documentation Integration tests for the semantic validation service
Library Process
Library OperatingSystem
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER_SCRIPT} robot/helper_semantic_validation.py
*** Test Cases ***
Semantic Validation Models Are Valid
[Documentation] Verify SemanticCheckResult and SemanticValidationSeverity models
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} models cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} models-ok
Semantic Validation Syntax Check Passes For Valid Code
[Documentation] SyntaxCheckRule passes for valid Python source
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} syntax_pass cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} syntax-pass-ok
Semantic Validation Syntax Check Fails For Invalid Code
[Documentation] SyntaxCheckRule fails for code with syntax errors
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} syntax_fail cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} syntax-fail-ok
Semantic Validation Registry Has Built-in Rules
[Documentation] Default registry contains all six built-in rules
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} registry cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} registry-ok
Semantic Validation Cache Works Correctly
[Documentation] Cache stores and retrieves results by rule name and hash
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} cache cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} cache-ok
Semantic Validation Service Runs All Rules
[Documentation] SemanticValidationService.check_file runs all registered rules
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} service_check cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} service-check-ok
Semantic Validation Severity Mapping
[Documentation] Severity levels map correctly to validation modes
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} severity_mapping cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} severity-mapping-ok
Semantic Validation Pipeline Integration
[Documentation] as_pipeline_results returns normalised dicts with expected keys
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} pipeline_integration cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} pipeline-integration-ok
Semantic Validation Config Disabled
[Documentation] Service returns empty results when disabled via config
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} config_disabled cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} config-disabled-ok
Semantic Validation API Misuse Detection
[Documentation] APIMisuseRule detects eval() usage
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} api_misuse cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} api-misuse-ok
Semantic Validation Broken Reference Scope Aware
[Documentation] BrokenReferenceRule does not false-positive on function-local variables
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} broken_ref_scope cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} broken-ref-scope-ok
Semantic Validation Missing Symbol Detects Class Methods
[Documentation] MissingSymbolRule detects undefined symbols inside class methods
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} missing_symbol_class cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} missing-symbol-class-ok
Semantic Validation Cache LRU Eviction
[Documentation] Cache evicts least-recently-used entries when max_size exceeded
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} cache_lru cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} cache-lru-ok
Semantic Validation Non Python Files Skipped
[Documentation] Service returns empty results for non-Python files
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} non_python_skip cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} non-python-skip-ok
Semantic Validation Duplicate Import Rule Alias
[Documentation] DuplicateImportRule is accessible via DependencyCycleRule backward-compat alias
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} duplicate_import_alias cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} duplicate-import-alias-ok
Semantic Validation Unknown Command Returns Error
[Documentation] Running with unknown command exits with code 1
${result}= Run Process ${PYTHON} ${HELPER_SCRIPT} nonexistent_cmd cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stderr} Unknown command