File size: 2,454 Bytes
638c806 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | from __future__ import annotations
from conftest import (
call_with_supported_kwargs,
install_fake_adapter,
maybe_import,
resolve_callable,
sqlite_contains_text,
sqlite_user_tables,
text_blob,
unload_promptboost_modules,
)
BOOST_MODULES = (
"promptboost",
"promptboost.core",
"promptboost.boost",
)
BOOST_FUNCS = (
"boost",
"boost_prompt",
)
def _patch_guards_to_pass(monkeypatch):
for module_name in (
"promptboost.guards",
"promptboost.guardrails",
"promptboost.rules.guards",
"promptboost.rules",
"promptboost.core",
"promptboost.boost",
):
module = maybe_import(module_name)
if module is None:
continue
for attr_name in (
"ensure_no_new_facts",
"check_no_new_facts",
"validate_no_new_facts",
"guard_no_new_facts",
):
monkeypatch.setattr(module, attr_name, lambda *_args, **_kwargs: True, raising=False)
def _call_boost(raw_prompt: str, target_harness: str, target_model: str):
boost = resolve_callable(BOOST_MODULES, BOOST_FUNCS)
return call_with_supported_kwargs(
boost,
raw_prompt=raw_prompt,
prompt=raw_prompt,
text=raw_prompt,
target_harness=target_harness,
harness=target_harness,
target_model=target_model,
model=target_model,
)
def test_boost_persists_run_to_local_sqlite(promptboost_db_path, monkeypatch):
unload_promptboost_modules()
raw_prompt = (
"Create a PromptBoost test prompt about FastAPI, local SQLite, and no paid API calls."
)
boosted_prompt = (
"Create a focused PromptBoost test prompt about FastAPI, local SQLite, "
"and no paid API calls."
)
resolve_callable(BOOST_MODULES, BOOST_FUNCS)
install_fake_adapter(monkeypatch, boosted_prompt)
_patch_guards_to_pass(monkeypatch)
result = _call_boost(raw_prompt, target_harness="codex", target_model="test-model")
assert boosted_prompt.lower() in text_blob(result)
assert promptboost_db_path.exists()
assert sqlite_user_tables(promptboost_db_path)
assert sqlite_contains_text(promptboost_db_path, raw_prompt)
assert sqlite_contains_text(promptboost_db_path, boosted_prompt)
assert sqlite_contains_text(promptboost_db_path, "codex")
assert sqlite_contains_text(promptboost_db_path, "test-model")
|