Files
cleveragents-core/robot/security_templates.robot
2026-02-25 10:06:27 +00:00

83 lines
3.8 KiB
Plaintext

*** Settings ***
Documentation Integration tests for secure template rendering
Resource common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Test Cases ***
Safe Template Renders Correctly
[Documentation] Verify a safe template renders with correct output
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... render Hello {name} name\=World
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sec-render-ok: Hello World
Unsafe Template Is Rejected
[Documentation] Verify attribute access template is rejected
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... reject {obj.__class__}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sec-reject-ok
Template Validation Passes Clean Template
[Documentation] Verify validation succeeds on a clean template
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... validate {name} is {role}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sec-validate-ok
Template Validation Fails Unsafe Template
[Documentation] Verify validation rejects unsafe template
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... validate {obj.__class__}
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stdout} sec-validate-err
Render Rejects Index Access
[Documentation] Verify index access in template is rejected
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... reject {items[0]}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} sec-reject-ok
Reject Command Fails For Safe Template
[Documentation] Verify reject command reports failure for safe template
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... reject {name}
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stdout} sec-reject-fail
Helper Shows Usage On No Command
[Documentation] Verify helper prints usage when no command given
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stdout} Usage
Helper Rejects Unknown Command
[Documentation] Verify helper rejects an unknown sub-command
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... bogus
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stdout} Unknown command
Render Shows Usage On No Args
[Documentation] Verify render sub-command prints usage with no arguments
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... render
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stdout} Usage
Validate Shows Usage On No Args
[Documentation] Verify validate sub-command prints usage with no arguments
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... validate
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stdout} Usage
Reject Shows Usage On No Args
[Documentation] Verify reject sub-command prints usage with no arguments
${result}= Run Process ${PYTHON} ${WORKSPACE}/robot/helper_security_templates.py
... reject
Should Be Equal As Integers ${result.rc} 1
Should Contain ${result.stdout} Usage