forked from cleveragents/cleveragents-core
9704281bdd
Wire SkillService to use SkillRepository for database persistence, fixing the bug where `agents skill add` stored skills only in an in-memory OrderedDict that was lost when the CLI process exited. Changes: - SkillService now accepts optional skill_repo and session_factory parameters. When provided, add_skill() persists to the database and the constructor pre-loads existing skills from DB rows. - _get_skill_service() in the CLI now creates a DB-backed service following the same engine/sessionmaker/repository pattern used by the tool CLI (tool.py). - _reset_skill_service() now installs a fresh in-memory SkillService (instead of setting None) to avoid DB side-effects during unit testing with parallel runners. - remove_skill() also persists the deletion to the database. Test coverage: - Behave BDD: features/skill_add_persist.feature (4 scenarios) - Robot Framework: robot/skill_add_persist.robot (3 smoke tests) - ASV benchmark: benchmarks/skill_add_persist_bench.py ISSUES CLOSED: #620
34 lines
1.5 KiB
Plaintext
34 lines
1.5 KiB
Plaintext
*** Settings ***
|
|
Documentation Smoke tests for skill add persistence (issue #620)
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_skill_add_persist.py
|
|
|
|
*** Test Cases ***
|
|
Skill Add Persists Across Service Instances
|
|
[Documentation] Verify that a skill added via SkillService is visible from a fresh instance
|
|
${result}= Run Process ${PYTHON} ${HELPER} persist-round-trip cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-add-persist-round-trip-ok
|
|
|
|
Multiple Skills Persist
|
|
[Documentation] Verify that multiple added skills are all visible from a fresh instance
|
|
${result}= Run Process ${PYTHON} ${HELPER} persist-multiple cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-add-persist-multiple-ok
|
|
|
|
Skill Remove Persists Deletion
|
|
[Documentation] Verify that removing a skill is reflected in fresh service instances
|
|
${result}= Run Process ${PYTHON} ${HELPER} persist-remove cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-add-persist-remove-ok
|