Fix master branch breakage #103
@@ -15,6 +15,7 @@ from sqlalchemy.orm import sessionmaker
|
||||
from cleveragents.domain.models.core.project import NamespacedProject
|
||||
from cleveragents.infrastructure.database.models import (
|
||||
Base,
|
||||
NamespacedProjectModel,
|
||||
ResourceModel,
|
||||
ResourceTypeModel,
|
||||
)
|
||||
@@ -96,8 +97,13 @@ class LinkRepositoryCRUD:
|
||||
session.commit()
|
||||
|
||||
# Project
|
||||
project_repo = NamespacedProjectRepository(session_factory=self.sf)
|
||||
project_repo.create(NamespacedProject(name="link-bench", namespace="bench"))
|
||||
proj = NamespacedProjectModel()
|
||||
proj.namespaced_name = "bench/link-bench" # type: ignore[assignment]
|
||||
proj.namespace = "bench" # type: ignore[assignment]
|
||||
proj.tags_json = "[]" # type: ignore[assignment]
|
||||
proj.created_at = _now_iso() # type: ignore[assignment]
|
||||
proj.updated_at = _now_iso() # type: ignore[assignment]
|
||||
session.add(proj)
|
||||
session.commit()
|
||||
|
||||
# Resources
|
||||
|
||||
@@ -32,7 +32,7 @@ def _bench_ulid() -> str:
|
||||
_BENCH_CTR += 1
|
||||
n = _BENCH_CTR
|
||||
suffix = ""
|
||||
for _ in range(8):
|
||||
for _ in range(7):
|
||||
suffix = _CB32[n % 32] + suffix
|
||||
n //= 32
|
||||
return f"01HDAGBNCH0AQDYTR4B{suffix:>7s}"[:26]
|
||||
@@ -40,6 +40,7 @@ def _bench_ulid() -> str:
|
||||
|
||||
def _seed_types(
|
||||
rt_repo: Any,
|
||||
session_factory: Any,
|
||||
parent_name: str = "bench/dag-parent",
|
||||
child_name: str = "bench/dag-child",
|
||||
) -> None:
|
||||
@@ -94,12 +95,16 @@ def _seed_types(
|
||||
built_in=False,
|
||||
)
|
||||
rt_repo.create(parent_spec)
|
||||
rt_repo.create(child_spec)
|
||||
if child_name != parent_name:
|
||||
rt_repo.create(child_spec)
|
||||
# Commit so types survive across session boundaries (StaticPool).
|
||||
session_factory().commit()
|
||||
|
||||
|
||||
def _make_resource(
|
||||
res_repo: Any,
|
||||
type_name: str,
|
||||
session_factory: Any,
|
||||
) -> str:
|
||||
"""Create a resource and return its ID."""
|
||||
from cleveragents.domain.models.core.resource import (
|
||||
@@ -124,6 +129,8 @@ def _make_resource(
|
||||
updated_at=datetime.now(tz=UTC),
|
||||
)
|
||||
res_repo.create(res)
|
||||
# Commit so the resource survives across session boundaries.
|
||||
session_factory().commit()
|
||||
return rid
|
||||
|
||||
|
||||
@@ -139,12 +146,12 @@ class TimeLinkChild:
|
||||
self.factory = _setup_db()
|
||||
self.rt_repo = ResourceTypeRepository(self.factory)
|
||||
self.res_repo = ResourceRepository(self.factory)
|
||||
_seed_types(self.rt_repo)
|
||||
self.parent_id = _make_resource(self.res_repo, "bench/dag-parent")
|
||||
_seed_types(self.rt_repo, self.factory)
|
||||
self.parent_id = _make_resource(self.res_repo, "bench/dag-parent", self.factory)
|
||||
self._child_ctr = 0
|
||||
|
||||
def time_link_child(self) -> None:
|
||||
child_id = _make_resource(self.res_repo, "bench/dag-child")
|
||||
child_id = _make_resource(self.res_repo, "bench/dag-child", self.factory)
|
||||
self.res_repo.link_child(self.parent_id, child_id)
|
||||
|
||||
|
||||
@@ -160,10 +167,11 @@ class TimeUnlinkChild:
|
||||
self.factory = _setup_db()
|
||||
self.rt_repo = ResourceTypeRepository(self.factory)
|
||||
self.res_repo = ResourceRepository(self.factory)
|
||||
_seed_types(self.rt_repo)
|
||||
self.parent_id = _make_resource(self.res_repo, "bench/dag-parent")
|
||||
self.child_id = _make_resource(self.res_repo, "bench/dag-child")
|
||||
_seed_types(self.rt_repo, self.factory)
|
||||
self.parent_id = _make_resource(self.res_repo, "bench/dag-parent", self.factory)
|
||||
self.child_id = _make_resource(self.res_repo, "bench/dag-child", self.factory)
|
||||
self.res_repo.link_child(self.parent_id, self.child_id)
|
||||
self.factory().commit()
|
||||
|
||||
def time_unlink_child(self) -> None:
|
||||
self.res_repo.unlink_child(self.parent_id, self.child_id)
|
||||
@@ -183,8 +191,8 @@ class TimeAutoDiscoverChildren:
|
||||
self.factory = _setup_db()
|
||||
self.rt_repo = ResourceTypeRepository(self.factory)
|
||||
self.res_repo = ResourceRepository(self.factory)
|
||||
_seed_types(self.rt_repo)
|
||||
self.parent_id = _make_resource(self.res_repo, "bench/dag-parent")
|
||||
_seed_types(self.rt_repo, self.factory)
|
||||
self.parent_id = _make_resource(self.res_repo, "bench/dag-parent", self.factory)
|
||||
|
||||
def time_auto_discover_children(self) -> None:
|
||||
self.res_repo.auto_discover_children(self.parent_id)
|
||||
@@ -207,6 +215,7 @@ class TimeCycleDetection:
|
||||
self.res_repo = ResourceRepository(self.factory)
|
||||
_seed_types(
|
||||
self.rt_repo,
|
||||
self.factory,
|
||||
"bench/chain-type",
|
||||
"bench/chain-type",
|
||||
)
|
||||
@@ -214,7 +223,7 @@ class TimeCycleDetection:
|
||||
# Build a chain: r0 -> r1 -> ... -> rN
|
||||
self.chain_ids: list[str] = []
|
||||
for _ in range(chain_depth + 1):
|
||||
rid = _make_resource(self.res_repo, "bench/chain-type")
|
||||
rid = _make_resource(self.res_repo, "bench/chain-type", self.factory)
|
||||
self.chain_ids.append(rid)
|
||||
|
||||
for i in range(chain_depth):
|
||||
@@ -222,6 +231,7 @@ class TimeCycleDetection:
|
||||
self.chain_ids[i],
|
||||
self.chain_ids[i + 1],
|
||||
)
|
||||
self.factory().commit()
|
||||
|
||||
def time_cycle_detection(self, chain_depth: int) -> None:
|
||||
"""Attempt to close the cycle (should raise)."""
|
||||
|
||||
@@ -31,7 +31,7 @@ V2 Actor Config Produces Provider And Graph Descriptor
|
||||
... ${SPACE*4}publications:
|
||||
... ${SPACE*6}- __output__
|
||||
Create File ${config} ${content}
|
||||
${result}= Run Process ${PYTHON} robot/helper_actor_config.py ${config} stdout=PIPE stderr=PIPE
|
||||
${result}= Run Process ${PYTHON} robot/helper_actor_config.py ${config}
|
||||
Should Be Equal As Integers ${result.rc} 0
|
||||
${payload}= Evaluate __import__('json').loads('''${result.stdout.strip()}''')
|
||||
Should Be Equal ${payload['provider']} openai
|
||||
|
||||
@@ -13,7 +13,6 @@ File Write Produces ChangeSet Entry
|
||||
... verify the resulting ChangeSet contains the entry.
|
||||
${result}= Run Process ${PYTHON} -c
|
||||
... ${CHANGESET_SCRIPT}
|
||||
... stdout=PIPE stderr=PIPE
|
||||
Log ${result.stdout}
|
||||
Log ${result.stderr}
|
||||
Should Be Equal As Integers ${result.rc} 0
|
||||
@@ -24,7 +23,6 @@ ChangeSet Summary Counts Match
|
||||
[Documentation] Verify summary counts after multiple operations.
|
||||
${result}= Run Process ${PYTHON} -c
|
||||
... ${SUMMARY_SCRIPT}
|
||||
... stdout=PIPE stderr=PIPE
|
||||
Log ${result.stdout}
|
||||
Log ${result.stderr}
|
||||
Should Be Equal As Integers ${result.rc} 0
|
||||
@@ -36,7 +34,6 @@ InMemoryChangeSetStore Round Trip
|
||||
[Documentation] Verify start/record/get via InMemoryChangeSetStore.
|
||||
${result}= Run Process ${PYTHON} -c
|
||||
... ${STORE_SCRIPT}
|
||||
... stdout=PIPE stderr=PIPE
|
||||
Log ${result.stdout}
|
||||
Log ${result.stderr}
|
||||
Should Be Equal As Integers ${result.rc} 0
|
||||
|
||||
@@ -7,7 +7,7 @@ Library OperatingSystem
|
||||
Nox Lists All Required Sessions
|
||||
[Documentation] Verify that nox can list sessions and the required CI sessions are present
|
||||
[Tags] ci quality slow
|
||||
${result}= Run Process nox --list stdout=PIPE stderr=PIPE
|
||||
${result}= Run Process nox --list
|
||||
Should Be Equal As Integers ${result.rc} 0 msg=nox --list failed with: ${result.stderr}
|
||||
# Verify required sessions exist in nox output
|
||||
Should Contain ${result.stdout} lint
|
||||
@@ -28,5 +28,5 @@ CI Workflow File Exists
|
||||
Nox Lint Session Runs Successfully
|
||||
[Documentation] Verify that nox lint session can be invoked
|
||||
[Tags] ci quality slow
|
||||
${result}= Run Process nox -s lint stdout=PIPE stderr=PIPE timeout=120s
|
||||
${result}= Run Process nox -s lint timeout=120s
|
||||
Should Be Equal As Integers ${result.rc} 0 msg=nox -s lint failed: ${result.stderr}
|
||||
|
||||
@@ -11,7 +11,7 @@ ${PYTHON} python
|
||||
Plan Lifecycle Persistence Via Helper Script
|
||||
[Documentation] Create action + plan, verify persistence through transitions
|
||||
${result}= Run Process ${PYTHON} ${CURDIR}/helper_plan_lifecycle_persistence.py
|
||||
... stdout=STDOUT stderr=STDOUT timeout=30s
|
||||
... stderr=STDOUT timeout=30s
|
||||
Log ${result.stdout}
|
||||
Should Contain ${result.stdout} PASS: plan_lifecycle_persistence smoke test
|
||||
Should Be Equal As Integers ${result.rc} 0
|
||||
|
||||
@@ -11,7 +11,7 @@ ${PYTHON} python
|
||||
Plan Repository CRUD Via Helper Script
|
||||
[Documentation] Create, retrieve, list, count, and delete a plan via LifecyclePlanRepository
|
||||
${result}= Run Process ${PYTHON} ${CURDIR}/helper_plan_repository.py
|
||||
... stdout=STDOUT stderr=STDOUT timeout=30s
|
||||
... stderr=STDOUT timeout=30s
|
||||
Log ${result.stdout}
|
||||
Should Contain ${result.stdout} PASS: plan_repository smoke test
|
||||
Should Be Equal As Integers ${result.rc} 0
|
||||
|
||||
@@ -11,7 +11,7 @@ ${PYTHON} python
|
||||
UoW Lifecycle Action And Plan Via Helper Script
|
||||
[Documentation] Create action + plan via UoW, verify retrieval in new session
|
||||
${result}= Run Process ${PYTHON} ${CURDIR}/helper_uow_lifecycle.py
|
||||
... stdout=STDOUT stderr=STDOUT timeout=30s
|
||||
... stderr=STDOUT timeout=30s
|
||||
Log ${result.stdout}
|
||||
Should Contain ${result.stdout} PASS: uow_lifecycle smoke test
|
||||
Should Be Equal As Integers ${result.rc} 0
|
||||
|
||||
Reference in New Issue
Block a user