108 lines
5.6 KiB
Plaintext
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
|